blob: f32527713f7cfbebf7ead480fdef8b9ca4c9a582 [file]
CREATE RESOURCE GROUP rg_test_catalog WITH (CONCURRENCY=2, CPU_MAX_PERCENT=10);
CREATE
CREATE ROLE role_test_catalog RESOURCE GROUP rg_test_catalog;
CREATE
CREATE FUNCTION rg_test_udf() RETURNS integer AS $$ return 1 $$ LANGUAGE plpython3u;
CREATE
-- take 1 slot
1: SET ROLE role_test_catalog;
SET
1: BEGIN;
BEGIN
-- take another slot
2: SET ROLE role_test_catalog;
SET
2: BEGIN;
BEGIN
-- two slot have all been taken, so this query will be hung up.
3: SET ROLE role_test_catalog;
SET
3&: BEGIN; <waiting ...>
-- It's a catalog only query, so it will be bypassed.
4: SET ROLE role_test_catalog;
SET
4: SELECT 1 FROM pg_catalog.pg_rules;
?column?
----------
1
1
(2 rows)
-- It's a udf only query, will be hung up.
-- Because there is no RangeVar, it doesn't belong to catalog only query.
5: SET ROLE role_test_catalog;
SET
5&: SELECT rg_test_udf(); <waiting ...>
-- turn of bypass catalog query
6: SET ROLE role_test_catalog;
SET
6: SET gp_resource_group_bypass_catalog_query = false;
SET
6&: SELECT 1 FROM pg_catalog.pg_rules; <waiting ...>
1: COMMIT;
COMMIT
2: COMMIT;
COMMIT
3<: <... completed>
BEGIN
3: COMMIT;
COMMIT
5<: <... completed>
rg_test_udf
-------------
1
(1 row)
5: COMMIT;
COMMIT
6<: <... completed>
?column?
----------
1
1
(2 rows)
-- cleanup
-- start_ignore
DROP ROLE role_test_catalog;
DROP RESOURCE GROUP rg_test_catalog;
DROP FUNCTION rg_test_udf;
-- end_ignore