mirror of https://github.com/citusdata/citus.git
84 lines
2.8 KiB
Plaintext
84 lines
2.8 KiB
Plaintext
CREATE SCHEMA "extension'test";
|
|
-- use a schema name with escape character
|
|
SET search_path TO "extension'test";
|
|
-- test if citus can escape the extension name
|
|
-- this output will help us to understand why we have alternative outputs for this test
|
|
-- print true if uuid-ossp is available false otherwise
|
|
SELECT CASE WHEN COUNT(*) > 0
|
|
THEN 'CREATE EXTENSION "uuid-ossp"'
|
|
ELSE 'SELECT false AS uuid_ossp_present'
|
|
END AS uuid_present_command
|
|
FROM pg_available_extensions()
|
|
WHERE name = 'uuid-ossp'
|
|
\gset
|
|
:uuid_present_command;
|
|
uuid_ossp_present
|
|
---------------------------------------------------------------------
|
|
f
|
|
(1 row)
|
|
|
|
-- show that the extension is created on both nodes
|
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_extension WHERE extname = 'uuid-ossp'$$);
|
|
run_command_on_workers
|
|
---------------------------------------------------------------------
|
|
(localhost,57637,t,0)
|
|
(localhost,57638,t,0)
|
|
(2 rows)
|
|
|
|
SET client_min_messages TO WARNING;
|
|
DROP EXTENSION "uuid-ossp";
|
|
ERROR: extension "uuid-ossp" does not exist
|
|
RESET client_min_messages;
|
|
-- show that the extension is dropped from both nodes
|
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_extension WHERE extname = 'uuid-ossp'$$);
|
|
run_command_on_workers
|
|
---------------------------------------------------------------------
|
|
(localhost,57637,t,0)
|
|
(localhost,57638,t,0)
|
|
(2 rows)
|
|
|
|
-- show that extension recreation on new nodes works also fine with extension names that require escaping
|
|
SELECT 1 from master_remove_node('localhost', :worker_2_port);
|
|
?column?
|
|
---------------------------------------------------------------------
|
|
1
|
|
(1 row)
|
|
|
|
-- this output will help us to understand why we have alternative outputs for this test
|
|
-- print true if uuid-ossp is available false otherwise
|
|
SELECT CASE WHEN COUNT(*) > 0
|
|
THEN 'CREATE EXTENSION "uuid-ossp"'
|
|
ELSE 'SELECT false AS uuid_ossp_present'
|
|
END AS uuid_present_command
|
|
FROM pg_available_extensions()
|
|
WHERE name = 'uuid-ossp'
|
|
\gset
|
|
:uuid_present_command;
|
|
uuid_ossp_present
|
|
---------------------------------------------------------------------
|
|
f
|
|
(1 row)
|
|
|
|
-- and add the other node
|
|
SELECT 1 from master_add_node('localhost', :worker_2_port);
|
|
?column?
|
|
---------------------------------------------------------------------
|
|
1
|
|
(1 row)
|
|
|
|
-- show that the extension exists on both nodes
|
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_extension WHERE extname = 'uuid-ossp'$$);
|
|
run_command_on_workers
|
|
---------------------------------------------------------------------
|
|
(localhost,57637,t,0)
|
|
(localhost,57638,t,0)
|
|
(2 rows)
|
|
|
|
SET client_min_messages TO WARNING;
|
|
DROP EXTENSION "uuid-ossp";
|
|
ERROR: extension "uuid-ossp" does not exist
|
|
RESET client_min_messages;
|
|
-- drop the schema and all the objects
|
|
SET client_min_messages TO WARNING;
|
|
DROP SCHEMA "extension'test" CASCADE;
|