Merge pull request #5847 from citusdata/alter_collation_encoding_does_not_exist_bug

Fixes ALTER COLLATION encoding does not exist bug
pull/5851/head
Halil Ozan Akgül 2022-03-22 18:30:49 +03:00 committed by GitHub
commit 37aefec537
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 51 additions and 1 deletions

View File

@ -124,7 +124,6 @@ QualifyCollationName(List *name)
(Form_pg_collation) GETSTRUCT(colltup);
schemaName = get_namespace_name(collationForm->collnamespace);
collationName = NameStr(collationForm->collname);
name = list_make2(makeString(schemaName), makeString(collationName));
ReleaseSysCache(colltup);
}

View File

@ -184,3 +184,36 @@ SET citus.enable_ddl_propagation TO on;
CREATE COLLATION pg_temp.temp_collation (provider = icu, locale = 'de-u-co-phonebk');
WARNING: "collation pg_temp_xxx.temp_collation" has dependency on unsupported object "schema pg_temp_xxx"
DETAIL: "collation pg_temp_xxx.temp_collation" will be created only locally
SET client_min_messages TO ERROR;
CREATE USER alter_collation_user;
SELECT 1 FROM run_command_on_workers('CREATE USER alter_collation_user');
?column?
---------------------------------------------------------------------
1
1
(2 rows)
RESET client_min_messages;
CREATE COLLATION alter_collation FROM "C";
ALTER COLLATION alter_collation OWNER TO alter_collation_user;
SELECT result FROM run_command_on_all_nodes('
SELECT collowner::regrole FROM pg_collation WHERE collname = ''alter_collation'';
');
result
---------------------------------------------------------------------
alter_collation_user
alter_collation_user
alter_collation_user
(3 rows)
DROP COLLATION alter_collation;
SET client_min_messages TO ERROR;
DROP USER alter_collation_user;
SELECT 1 FROM run_command_on_workers('DROP USER alter_collation_user');
?column?
---------------------------------------------------------------------
1
1
(2 rows)
RESET client_min_messages;

View File

@ -114,3 +114,21 @@ SET citus.enable_ddl_propagation TO on;
-- will skip trying to propagate the collation due to temp schema
CREATE COLLATION pg_temp.temp_collation (provider = icu, locale = 'de-u-co-phonebk');
SET client_min_messages TO ERROR;
CREATE USER alter_collation_user;
SELECT 1 FROM run_command_on_workers('CREATE USER alter_collation_user');
RESET client_min_messages;
CREATE COLLATION alter_collation FROM "C";
ALTER COLLATION alter_collation OWNER TO alter_collation_user;
SELECT result FROM run_command_on_all_nodes('
SELECT collowner::regrole FROM pg_collation WHERE collname = ''alter_collation'';
');
DROP COLLATION alter_collation;
SET client_min_messages TO ERROR;
DROP USER alter_collation_user;
SELECT 1 FROM run_command_on_workers('DROP USER alter_collation_user');
RESET client_min_messages;