mirror of https://github.com/citusdata/citus.git
Add tests for non-default schema owner
parent
5a3a32d6df
commit
577ffb2bf2
|
@ -1084,3 +1084,62 @@ SET search_path TO public;
|
||||||
ALTER TABLE test_schema_support.nation_hash SET SCHEMA public;
|
ALTER TABLE test_schema_support.nation_hash SET SCHEMA public;
|
||||||
WARNING: not propagating ALTER ... SET SCHEMA commands to worker nodes
|
WARNING: not propagating ALTER ... SET SCHEMA commands to worker nodes
|
||||||
HINT: Connect to worker nodes directly to manually change schemas of affected objects.
|
HINT: Connect to worker nodes directly to manually change schemas of affected objects.
|
||||||
|
-- we will use this function in next test
|
||||||
|
CREATE FUNCTION run_command_on_coordinator_and_workers(p_sql text)
|
||||||
|
RETURNS void LANGUAGE plpgsql AS $$
|
||||||
|
BEGIN
|
||||||
|
EXECUTE p_sql;
|
||||||
|
PERFORM run_command_on_workers(p_sql);
|
||||||
|
END;$$;
|
||||||
|
-- test schema propagation with user other than current user
|
||||||
|
SELECT run_command_on_coordinator_and_workers('CREATE USER "test-user"');
|
||||||
|
NOTICE: not propagating CREATE ROLE/USER commands to worker nodes
|
||||||
|
HINT: Connect to worker nodes directly to manually create all necessary users and roles.
|
||||||
|
CONTEXT: SQL statement "CREATE USER "test-user""
|
||||||
|
PL/pgSQL function run_command_on_coordinator_and_workers(text) line 3 at EXECUTE
|
||||||
|
run_command_on_coordinator_and_workers
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT run_command_on_coordinator_and_workers('GRANT ALL ON DATABASE postgres to "test-user"');
|
||||||
|
run_command_on_coordinator_and_workers
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
CREATE SCHEMA schema_with_user AUTHORIZATION "test-user";
|
||||||
|
CREATE TABLE schema_with_user.test_table(column1 int);
|
||||||
|
SELECT create_reference_table('schema_with_user.test_table');
|
||||||
|
create_reference_table
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- verify that owner of the created schema is test-user
|
||||||
|
\c - - - :worker_1_port
|
||||||
|
\dn schema_with_user
|
||||||
|
List of schemas
|
||||||
|
Name | Owner
|
||||||
|
------------------+-----------
|
||||||
|
schema_with_user | test-user
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\c - - - :master_port
|
||||||
|
-- we do not use run_command_on_coordinator_and_workers here because when there is CASCADE, it causes deadlock
|
||||||
|
DROP OWNED BY "test-user" CASCADE;
|
||||||
|
NOTICE: drop cascades to table schema_with_user.test_table
|
||||||
|
SELECT run_command_on_workers('DROP OWNED BY "test-user" CASCADE');
|
||||||
|
run_command_on_workers
|
||||||
|
----------------------------------
|
||||||
|
(localhost,57637,t,"DROP OWNED")
|
||||||
|
(localhost,57638,t,"DROP OWNED")
|
||||||
|
(2 rows)
|
||||||
|
|
||||||
|
SELECT run_command_on_coordinator_and_workers('DROP USER "test-user"');
|
||||||
|
run_command_on_coordinator_and_workers
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
DROP FUNCTION run_command_on_coordinator_and_workers(p_sql text);
|
||||||
|
|
|
@ -737,3 +737,31 @@ SET citus.task_executor_type TO "real-time";
|
||||||
-- we expect that it will warn out
|
-- we expect that it will warn out
|
||||||
SET search_path TO public;
|
SET search_path TO public;
|
||||||
ALTER TABLE test_schema_support.nation_hash SET SCHEMA public;
|
ALTER TABLE test_schema_support.nation_hash SET SCHEMA public;
|
||||||
|
|
||||||
|
-- we will use this function in next test
|
||||||
|
CREATE FUNCTION run_command_on_coordinator_and_workers(p_sql text)
|
||||||
|
RETURNS void LANGUAGE plpgsql AS $$
|
||||||
|
BEGIN
|
||||||
|
EXECUTE p_sql;
|
||||||
|
PERFORM run_command_on_workers(p_sql);
|
||||||
|
END;$$;
|
||||||
|
|
||||||
|
-- test schema propagation with user other than current user
|
||||||
|
SELECT run_command_on_coordinator_and_workers('CREATE USER "test-user"');
|
||||||
|
SELECT run_command_on_coordinator_and_workers('GRANT ALL ON DATABASE postgres to "test-user"');
|
||||||
|
|
||||||
|
CREATE SCHEMA schema_with_user AUTHORIZATION "test-user";
|
||||||
|
CREATE TABLE schema_with_user.test_table(column1 int);
|
||||||
|
SELECT create_reference_table('schema_with_user.test_table');
|
||||||
|
|
||||||
|
-- verify that owner of the created schema is test-user
|
||||||
|
\c - - - :worker_1_port
|
||||||
|
\dn schema_with_user
|
||||||
|
|
||||||
|
\c - - - :master_port
|
||||||
|
-- we do not use run_command_on_coordinator_and_workers here because when there is CASCADE, it causes deadlock
|
||||||
|
DROP OWNED BY "test-user" CASCADE;
|
||||||
|
SELECT run_command_on_workers('DROP OWNED BY "test-user" CASCADE');
|
||||||
|
SELECT run_command_on_coordinator_and_workers('DROP USER "test-user"');
|
||||||
|
|
||||||
|
DROP FUNCTION run_command_on_coordinator_and_workers(p_sql text);
|
||||||
|
|
Loading…
Reference in New Issue