create_drop_database_propagation

mehmet/pg17-multi-1
Mehmet YILMAZ 2024-11-06 11:59:43 +00:00
parent 6c12b10c3a
commit 91d678db03
3 changed files with 13 additions and 16 deletions

View File

@ -1353,6 +1353,8 @@ convert_aclright_to_string(int aclright)
return "TEMPORARY";
case ACL_CONNECT:
return "CONNECT";
case ACL_MAINTAIN: /* New case for PostgreSQL 17 https://github.com/postgres/postgres/commit/ecb0fd33720fab91df1207e85704f382f55e1eb7 */
return "MAINTAIN";
default:
elog(ERROR, "unrecognized aclright: %d", aclright);
return NULL;

View File

@ -1103,28 +1103,23 @@ DROP ROLE propagated_role, non_propagated_role;
-- test citus_internal.acquire_citus_advisory_object_class_lock with null input
SELECT citus_internal.acquire_citus_advisory_object_class_lock(null, 'regression');
ERROR: object_class cannot be NULL
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), null);
acquire_citus_advisory_object_class_lock
---------------------------------------------------------------------
(1 row)
-- OCLASS_DATABASE
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), NULL);
-- Set oclass_database value based on PostgreSQL version: 25 for < 16, 26 for version 16, and 1262 for version >= 17
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 WHEN substring(version(), '\d+')::integer = 16 THEN 26 ELSE 1262 END AS oclass_database), NULL);
acquire_citus_advisory_object_class_lock
---------------------------------------------------------------------
(1 row)
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), 'regression');
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 WHEN substring(version(), '\d+')::integer = 16 THEN 26 ELSE 1262 END AS oclass_database), 'regression');
acquire_citus_advisory_object_class_lock
---------------------------------------------------------------------
(1 row)
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), '');
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 WHEN substring(version(), '\d+')::integer = 16 THEN 26 ELSE 1262 END AS oclass_database), '');
ERROR: database "" does not exist
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), 'no_such_db');
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 WHEN substring(version(), '\d+')::integer = 16 THEN 26 ELSE 1262 END AS oclass_database), 'no_such_db');
ERROR: database "no_such_db" does not exist
-- invalid OCLASS
SELECT citus_internal.acquire_citus_advisory_object_class_lock(-1, NULL);

View File

@ -663,13 +663,13 @@ DROP ROLE propagated_role, non_propagated_role;
-- test citus_internal.acquire_citus_advisory_object_class_lock with null input
SELECT citus_internal.acquire_citus_advisory_object_class_lock(null, 'regression');
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), null);
-- OCLASS_DATABASE
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), NULL);
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), 'regression');
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), '');
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 ELSE 26 END AS oclass_database), 'no_such_db');
-- Set oclass_database value based on PostgreSQL version: 25 for < 16, 26 for version 16, and 1262 for version >= 17
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 WHEN substring(version(), '\d+')::integer = 16 THEN 26 ELSE 1262 END AS oclass_database), NULL);
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 WHEN substring(version(), '\d+')::integer = 16 THEN 26 ELSE 1262 END AS oclass_database), 'regression');
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 WHEN substring(version(), '\d+')::integer = 16 THEN 26 ELSE 1262 END AS oclass_database), '');
SELECT citus_internal.acquire_citus_advisory_object_class_lock((SELECT CASE WHEN substring(version(), '\d+')::integer < 16 THEN 25 WHEN substring(version(), '\d+')::integer = 16 THEN 26 ELSE 1262 END AS oclass_database), 'no_such_db');
-- invalid OCLASS
SELECT citus_internal.acquire_citus_advisory_object_class_lock(-1, NULL);