--create resource pool success.
select count(*) from pg_total_user_resource_info;

--\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp_error WITH(control_group='DefaultClass');" > /dev/null 2>&1
CREATE RESOURCE POOL respool_temp_default WITH(mem_percent=101);
CREATE RESOURCE POOL respool_temp_default WITH(mem_percent=10, mem_percent=20);
CREATE RESOURCE POOL respool_temp_default;
SELECT * FROM pg_resource_pool order by respool_name;

\! export GAUSSHOME=@abs_bindir@/.. && @abs_bindir@/gs_cgroup -S class1 -c > /dev/null 2>&1
\! export GAUSSHOME=@abs_bindir@/.. && @abs_bindir@/gs_cgroup -S class2 -c > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp14 WITH(CONTROL_GROUP='class1');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp15 WITH(control_group='class1:Medium');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp16 WITH(control_group='class1:High', mem_percent=20,active_statements=5);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp17 WITH(control_group='class1:Medium', mem_percent=20,active_statements=5);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp17 WITH(control_group='class1:Low', mem_percent=90,active_statements=5);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp18 WITH(control_group='class2');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp19 WITH(control_group='class2:Medium', mem_percent=0);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp19 WITH(control_group='class2:Medium');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp20 WITH(parent='');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "SELECT count(*) FROM pg_resource_pool where parentid=0;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "SELECT count(*) FROM pg_resource_pool;" > /dev/null 2>&1

\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp21 with(active_statements=20, active_statements=20);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp21 with(active_statements=-2);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp21 with(max_dop=20, max_dop=20);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp21 with(mem_percent=20, memory_limit='2GB', active_statements=-1);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE RESOURCE POOL respool_temp22abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz with(control_group='class2:High');" > /dev/null 2>&1

--alter resource pool 
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER RESOURCE POOL respool_temp_default WITH(control_group='class2');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER RESOURCE POOL respool_temp14 WITH(mem_percent=90);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER RESOURCE POOL respool_temp14 WITH(control_group='class2:Low');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER RESOURCE POOL respool_temp16 with(control_group='class1:Low', mem_percent=20);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER RESOURCE POOL respool_temp16 WITH(control_group='class1:Medium');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER RESOURCE POOL respool_temp16 WITH(mem_percent=0);" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "SELECT count(*) from gs_wlm_resource_pool;" > /dev/null 2>&1

--create role
--success
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role1 resource pool 'respool_temp14' password 'Gauss_234' perm space '2G';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role2 resource pool 'RESPOOL_temp16' password 'Gauss_234' USER GROUP 'TEMP_ROLE1';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role2abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz resource pool 'respool_temp18' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "create user temp_role3 resource pool 'respool_temp22abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz' password 'Gauss_234' user group 'temp_role2abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "DROP USER temp_role2abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyza;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role4 password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role5 resource pool 'respool_temp_default' password 'Gauss_234';" > /dev/null 2>&1

--error cases
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'respool_temp14' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'respool_error' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'respool_temp14' password 'Gauss_234' resource pool 'respool_temp14';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role user group default resource pool 'RESPOOL_temp16' password 'Gauss_234' USER GROUP 'TEMP_ROLE1';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'RESPOOL_temp16' password 'Gauss_234' USER GROUP 'TEMP_ROLE1' USER GROUP 'TEMP_ROLE1';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'respool_temp_default' password 'Gauss_234' nologin;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role user group 'temp_role' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role user group 'temp_error' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role user group 'temp_role4' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role user group 'TEMP_ROLE1' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'RESPOOL_temp16' password 'Gauss@123';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'RESPOOL_temp1' password 'Gauss@123';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'respool_temp18' USER GROUP 'TEMP_ROLE1' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role resource pool 'respool_temp19' USER GROUP 'TEMP_ROLE1' password 'Gauss_234';" > /dev/null 2>&1

--alter role success
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role2 resource pool 'respool_temp15' USER GROUP 'temp_role1';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "CREATE USER temp_role2abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz resource pool 'respool_temp18' password 'Gauss_234';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role2 resource pool 'respool_temp22abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz' user group 'temp_role2abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "DROP USER temp_role2abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "DROP RESOURCE POOL respool_temp22abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 user group 'temp_role1' resource pool 'respool_temp15';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role5 user group 'temp_role1' resource pool 'respool_temp15';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role5 resource pool 'respool_temp_default' user group default;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role5 nologin;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "select * from gs_wlm_user_info;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "select * from gs_wlm_resource_pool;" > /dev/null 2>&1

--alter role error cases
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 resource pool 'respool_temp15' USER GROUP 'temp_role1' resource pool 'respool_temp15';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 resource pool 'respool_temp15' USER GROUP 'temp_role1' USER GROUP 'temp_role1';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 resource pool 'respool_temp15' USER GROUP 'temp_role1' USER GROUP DEFAULT;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 USER GROUP 'temp_role4';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 USER GROUP 'role_error';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 resource pool 'respool_error';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 user group default;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 nologin;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role1 resource pool 'respool_temp_default';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 resource pool 'respool_temp_default';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 sysadmin;" > /dev/null 2>&1

--transaction cases
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "start transaction;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 resource pool 'respool_temp_default' user group default;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role1 resource pool 'respool_temp_default' user group default;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role4 resource pool 'respool_temp14';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "ALTER USER temp_role1 resource pool 'respool_temp15' user group 'temp_role4';" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "COMMIT;" > /dev/null 2>&1

--views
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "select * from gs_all_control_group_info;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "select * from gs_respool_exception_info('respool_temp15');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "select * from gs_respool_exception_info('respool_temp14');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "select * from gs_control_group_info('respool_temp15');" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "select * from gs_control_group_info('respool_temp14');" > /dev/null 2>&1

--drop process
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "DROP RESOURCE POOL respool_temp14;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "DROP USER temp_role4;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "DROP USER temp_role5;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "SELECT *from pg_user where usesysid !=10;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "drop resource pool respool_temp14;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "drop resource pool respool_temp18;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "drop resource pool respool_temp21;" > /dev/null 2>&1
\! @abs_bindir@/gsql -r -p @portstring@ -d regression -c "drop resource pool respool_temp_default;" > /dev/null 2>&1
\! export GAUSSHOME=@abs_bindir@/.. && @abs_bindir@/gs_cgroup --revert > /dev/null 2>&1

--resource pool IO info error cases 
CREATE RESOURCE POOL respool_error01 with(io_priority='haha');
CREATE RESOURCE POOL respool_error01 with(io_priority='None', io_priority='High');
CREATE RESOURCE POOL respool_error01 with(io_limits=-1);
CREATE RESOURCE POOL respool_error01 with(io_limits=0, io_limits=20);
CREATE RESOURCE POOL invalid_pool;
CREATE RESOURCE POOL respool_for_alter01;
ALTER RESOURCE POOL respool_for_alter01 with(io_limits=10);
ALTER RESOURCE POOL respool_for_alter01 with(io_priority='High');
SET session_respool = respool_for_alter01;
SET session_respool = invalid_pool;
SET session_respool = haha;
DROP resource pool respool_for_alter01;