Improve extension command propagation logic and tests

* Improve extension command propagation tests

* patch for hardcoded citus extension name

(cherry picked from commit 0bb3dbac0afabda10e8928f9c17eda048dc4361a)
pull/3181/head
Onur TIRTIR 2019-11-21 11:24:39 +03:00 committed by Hanefi Onaldi
parent 7d2813f799
commit 9961297d7b
5 changed files with 188 additions and 197 deletions

View File

@ -639,7 +639,7 @@ IsCreateAlterExtensionUpdateCitusStmt(Node *parseTree)
* Now that we have CreateExtensionStmt or AlterExtensionStmt, * Now that we have CreateExtensionStmt or AlterExtensionStmt,
* check if it is run for/on citus * check if it is run for/on citus
*/ */
return (strncasecmp(extensionName, CITUS_NAME, NAMEDATALEN) == 0); return (strncasecmp(extensionName, "citus", NAMEDATALEN) == 0);
} }
@ -663,7 +663,7 @@ IsDropCitusStmt(Node *parseTree)
{ {
const char *extensionName = strVal(lfirst(objectCell)); const char *extensionName = strVal(lfirst(objectCell));
if (strncasecmp(extensionName, CITUS_NAME, NAMEDATALEN) == 0) if (strncasecmp(extensionName, "citus", NAMEDATALEN) == 0)
{ {
return true; return true;
} }
@ -696,7 +696,7 @@ IsAlterExtensionSetSchemaCitus(Node *parseTree)
* Now that we have AlterObjectSchemaStmt for an extension, * Now that we have AlterObjectSchemaStmt for an extension,
* check if it is run for/on citus * check if it is run for/on citus
*/ */
return (strncasecmp(extensionName, CITUS_NAME, NAMEDATALEN) == 0); return (strncasecmp(extensionName, "citus", NAMEDATALEN) == 0);
} }
} }

View File

@ -169,7 +169,7 @@ CitusExtensionObject(const ObjectAddress *objectAddress)
extensionName = get_extension_name(objectAddress->objectId); extensionName = get_extension_name(objectAddress->objectId);
if (extensionName != NULL && if (extensionName != NULL &&
strncasecmp(extensionName, CITUS_NAME, NAMEDATALEN) == 0) strncasecmp(extensionName, "citus", NAMEDATALEN) == 0)
{ {
return true; return true;
} }

View File

@ -29,11 +29,11 @@ step detector-dump-wait-edges:
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
340 339 f 357 356 f
transactionnumberwaitingtransactionnumbers transactionnumberwaitingtransactionnumbers
339 356
340 339 357 356
step s1-abort: step s1-abort:
ABORT; ABORT;
@ -77,14 +77,14 @@ step detector-dump-wait-edges:
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
344 343 f 361 360 f
345 343 f 362 360 f
345 344 t 362 361 t
transactionnumberwaitingtransactionnumbers transactionnumberwaitingtransactionnumbers
343 360
344 343 361 360
345 343,344 362 360,361
step s1-abort: step s1-abort:
ABORT; ABORT;

View File

@ -1,9 +1,6 @@
Parsed test spec with 2 sessions Parsed test spec with 2 sessions
starting permutation: s1-begin s1-add-node-1 s2-create-extension-version-11 s1-commit s1-print starting permutation: s1-begin s1-add-node-1 s2-create-extension-version-11 s1-commit s1-print
?column?
1
step s1-begin: step s1-begin:
BEGIN; BEGIN;
@ -22,7 +19,7 @@ step s1-commit:
step s2-create-extension-version-11: <... completed> step s2-create-extension-version-11: <... completed>
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
@ -32,8 +29,6 @@ count
1 1
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
seg 1.1 public seg 1.1 public
run_command_on_workers run_command_on_workers
@ -53,9 +48,6 @@ master_remove_node
starting permutation: s1-begin s1-add-node-1 s2-alter-extension-update-to-version-12 s1-commit s1-print starting permutation: s1-begin s1-add-node-1 s2-alter-extension-update-to-version-12 s1-commit s1-print
?column?
1
step s1-begin: step s1-begin:
BEGIN; BEGIN;
@ -74,7 +66,7 @@ step s1-commit:
step s2-alter-extension-update-to-version-12: <... completed> step s2-alter-extension-update-to-version-12: <... completed>
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
@ -84,8 +76,6 @@ count
1 1
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
seg 1.2 public seg 1.2 public
run_command_on_workers run_command_on_workers
@ -105,9 +95,6 @@ master_remove_node
starting permutation: s1-add-node-1 s1-begin s1-remove-node-1 s2-drop-extension s1-commit s1-print starting permutation: s1-add-node-1 s1-begin s1-remove-node-1 s2-drop-extension s1-commit s1-print
?column?
1
step s1-add-node-1: step s1-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637); SELECT 1 FROM master_add_node('localhost', 57637);
@ -132,7 +119,7 @@ step s1-commit:
step s2-drop-extension: <... completed> step s2-drop-extension: <... completed>
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
@ -142,8 +129,6 @@ count
0 0
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,"")
@ -158,9 +143,6 @@ master_remove_node
starting permutation: s1-begin s1-add-node-1 s2-create-extension-with-schema1 s1-commit s1-print starting permutation: s1-begin s1-add-node-1 s2-create-extension-with-schema1 s1-commit s1-print
?column?
1
step s1-begin: step s1-begin:
BEGIN; BEGIN;
@ -171,48 +153,43 @@ step s1-add-node-1:
1 1
step s2-create-extension-with-schema1: step s2-create-extension-with-schema1:
create schema if not exists schema1;
CREATE extension seg with schema schema1; CREATE extension seg with schema schema1;
<waiting ...>
step s1-commit: step s1-commit:
COMMIT; COMMIT;
step s2-create-extension-with-schema1: <... completed>
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 2
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
seg 1.3 schema1 seg 1.3 schema1
run_command_on_workers run_command_on_workers
(localhost,57637,t,seg) (localhost,57637,t,seg)
(localhost,57638,t,"") (localhost,57638,t,seg)
run_command_on_workers run_command_on_workers
(localhost,57637,t,1.2) (localhost,57637,t,1.2)
(localhost,57638,t,"") (localhost,57638,t,1.3)
run_command_on_workers run_command_on_workers
(localhost,57637,t,public) (localhost,57637,t,public)
(localhost,57638,t,"") (localhost,57638,t,schema1)
master_remove_node master_remove_node
starting permutation: s1-begin s1-add-node-1 s2-drop-extension-cascade s1-commit s1-print starting permutation: s1-begin s1-add-node-1 s2-drop-extension s1-commit s1-print
?column?
1
step s1-begin: step s1-begin:
BEGIN; BEGIN;
@ -222,47 +199,43 @@ step s1-add-node-1:
?column? ?column?
1 1
step s2-drop-extension-cascade: step s2-drop-extension:
drop extension seg cascade; drop extension seg;
<waiting ...>
step s1-commit: step s1-commit:
COMMIT; COMMIT;
step s2-drop-extension: <... completed>
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 1
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
run_command_on_workers run_command_on_workers
(localhost,57637,t,seg) (localhost,57637,t,"")
(localhost,57638,t,"") (localhost,57638,t,"")
run_command_on_workers run_command_on_workers
(localhost,57637,t,1.2) (localhost,57637,t,"")
(localhost,57638,t,"") (localhost,57638,t,"")
run_command_on_workers run_command_on_workers
(localhost,57637,t,public) (localhost,57637,t,"")
(localhost,57638,t,"") (localhost,57638,t,"")
master_remove_node master_remove_node
starting permutation: s1-add-node-1 s1-create-extension-with-schema2 s1-begin s1-remove-node-1 s2-alter-extension-set-schema4 s1-commit s1-print starting permutation: s1-add-node-1 s1-create-extension-with-schema2 s1-begin s1-remove-node-1 s2-alter-extension-set-schema3 s1-commit s1-print
?column?
1
step s1-add-node-1: step s1-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637); SELECT 1 FROM master_add_node('localhost', 57637);
@ -270,7 +243,6 @@ step s1-add-node-1:
1 1
step s1-create-extension-with-schema2: step s1-create-extension-with-schema2:
create schema if not exists schema2;
CREATE extension seg with schema schema2; CREATE extension seg with schema schema2;
step s1-begin: step s1-begin:
@ -282,53 +254,49 @@ step s1-remove-node-1:
?column? ?column?
1 1
step s2-alter-extension-set-schema4: step s2-alter-extension-set-schema3:
CREATE schema if not exists schema4; alter extension seg set schema schema3;
alter extension seg set schema schema4;
<waiting ...> <waiting ...>
step s1-commit: step s1-commit:
COMMIT; COMMIT;
step s2-alter-extension-set-schema4: <... completed> step s2-alter-extension-set-schema3: <... completed>
error in steps s1-commit s2-alter-extension-set-schema4: ERROR: extension "seg" does not exist
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 4
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog seg 1.3 schema3
plpgsql 1.0 pg_catalog
seg 1.3 schema2
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,seg)
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,1.3)
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,schema3)
master_remove_node master_remove_node
starting permutation: s1-add-node-1 s1-begin s1-remove-node-1 s2-create-extension-with-schema1 s1-commit s1-print starting permutation: s1-add-node-1 s2-drop-extension s1-begin s1-remove-node-1 s2-create-extension-with-schema1 s1-commit s1-print
?column?
1
step s1-add-node-1: step s1-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637); SELECT 1 FROM master_add_node('localhost', 57637);
?column? ?column?
1 1
step s2-drop-extension:
drop extension seg;
step s1-begin: step s1-begin:
BEGIN; BEGIN;
@ -339,48 +307,54 @@ step s1-remove-node-1:
1 1
step s2-create-extension-with-schema1: step s2-create-extension-with-schema1:
create schema if not exists schema1;
CREATE extension seg with schema schema1; CREATE extension seg with schema schema1;
<waiting ...>
ERROR: extension "seg" already exists
step s1-commit: step s1-commit:
COMMIT; COMMIT;
step s2-create-extension-with-schema1: <... completed>
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 4
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog seg 1.3 schema1
plpgsql 1.0 pg_catalog
seg 1.3 schema2
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,seg)
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,1.3)
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,schema1)
master_remove_node master_remove_node
starting permutation: s2-drop-extension s2-begin s2-create-extension-version-11 s1-add-node-1 s2-commit s1-print starting permutation: s2-add-node-1 s2-drop-extension s2-remove-node-1 s2-begin s2-create-extension-version-11 s1-add-node-1 s2-commit s1-print
step s2-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637);
?column? ?column?
1 1
step s2-drop-extension: step s2-drop-extension:
drop extension seg; drop extension seg;
step s2-remove-node-1:
SELECT 1 FROM master_remove_node('localhost', 57637);
?column?
1
step s2-begin: step s2-begin:
BEGIN; BEGIN;
@ -398,46 +372,53 @@ step s2-commit:
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 3
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
seg 1.1 public seg 1.1 public
run_command_on_workers run_command_on_workers
(localhost,57637,t,seg) (localhost,57637,t,"")
(localhost,57638,t,"") (localhost,57638,t,"")
run_command_on_workers run_command_on_workers
(localhost,57637,t,1.2) (localhost,57637,t,"")
(localhost,57638,t,"") (localhost,57638,t,"")
run_command_on_workers run_command_on_workers
(localhost,57637,t,public) (localhost,57637,t,"")
(localhost,57638,t,"") (localhost,57638,t,"")
master_remove_node master_remove_node
starting permutation: s2-drop-extension s2-create-extension-version-11 s2-begin s2-alter-extension-update-to-version-12 s1-add-node-1 s2-commit s1-print starting permutation: s2-drop-extension s2-add-node-1 s2-create-extension-version-11 s2-remove-node-1 s2-begin s2-alter-extension-update-to-version-12 s1-add-node-1 s2-commit s1-print
?column?
1
step s2-drop-extension: step s2-drop-extension:
drop extension seg; drop extension seg;
step s2-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637);
?column?
1
step s2-create-extension-version-11: step s2-create-extension-version-11:
CREATE extension seg VERSION "1.1"; CREATE extension seg VERSION "1.1";
step s2-remove-node-1:
SELECT 1 FROM master_remove_node('localhost', 57637);
?column?
1
step s2-begin: step s2-begin:
BEGIN; BEGIN;
@ -456,18 +437,16 @@ step s1-add-node-1: <... completed>
1 1
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
1 4
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
seg 1.2 public seg 1.2 public
run_command_on_workers run_command_on_workers
@ -475,7 +454,7 @@ run_command_on_workers
(localhost,57638,t,seg) (localhost,57638,t,seg)
run_command_on_workers run_command_on_workers
(localhost,57637,t,1.2) (localhost,57637,t,1.1)
(localhost,57638,t,1.2) (localhost,57638,t,1.2)
run_command_on_workers run_command_on_workers
@ -487,9 +466,6 @@ master_remove_node
starting permutation: s2-add-node-1 s2-begin s2-drop-extension s1-remove-node-1 s2-commit s1-print starting permutation: s2-add-node-1 s2-begin s2-drop-extension s1-remove-node-1 s2-commit s1-print
?column?
1
step s2-add-node-1: step s2-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637); SELECT 1 FROM master_add_node('localhost', 57637);
@ -514,18 +490,16 @@ step s1-remove-node-1: <... completed>
1 1
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 3
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,"")
@ -540,14 +514,10 @@ master_remove_node
starting permutation: s2-begin s2-create-extension-with-schema1 s1-add-node-1 s2-commit s1-print starting permutation: s2-begin s2-create-extension-with-schema1 s1-add-node-1 s2-commit s1-print
?column?
1
step s2-begin: step s2-begin:
BEGIN; BEGIN;
step s2-create-extension-with-schema1: step s2-create-extension-with-schema1:
create schema if not exists schema1;
CREATE extension seg with schema schema1; CREATE extension seg with schema schema1;
step s1-add-node-1: step s1-add-node-1:
@ -561,18 +531,16 @@ step s2-commit:
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 3
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
seg 1.3 schema1 seg 1.3 schema1
run_command_on_workers run_command_on_workers
@ -591,21 +559,17 @@ master_remove_node
starting permutation: s2-add-node-1 s2-drop-extension-cascade s2-create-extension-with-schema2 s2-begin s2-alter-extension-version-13 s1-remove-node-1 s2-commit s1-print starting permutation: s2-drop-extension s2-add-node-1 s2-create-extension-with-schema2 s2-begin s2-alter-extension-version-13 s1-remove-node-1 s2-commit s1-print
?column? step s2-drop-extension:
drop extension seg;
1
step s2-add-node-1: step s2-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637); SELECT 1 FROM master_add_node('localhost', 57637);
?column? ?column?
1 1
step s2-drop-extension-cascade:
drop extension seg cascade;
step s2-create-extension-with-schema2: step s2-create-extension-with-schema2:
create schema if not exists schema2;
CREATE extension seg with schema schema2; CREATE extension seg with schema schema2;
step s2-begin: step s2-begin:
@ -614,48 +578,43 @@ step s2-begin:
step s2-alter-extension-version-13: step s2-alter-extension-version-13:
ALTER extension seg update to "1.3"; ALTER extension seg update to "1.3";
ERROR: extension "seg" does not exist
step s1-remove-node-1: step s1-remove-node-1:
SELECT 1 FROM master_remove_node('localhost', 57637); SELECT 1 FROM master_remove_node('localhost', 57637);
<waiting ...>
?column?
1
step s2-commit: step s2-commit:
COMMIT; COMMIT;
step s1-remove-node-1: <... completed>
?column?
1
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 4
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
seg 1.3 schema2 seg 1.3 schema2
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,seg)
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,1.3)
run_command_on_workers run_command_on_workers
(localhost,57638,t,"") (localhost,57638,t,schema2)
master_remove_node master_remove_node
starting permutation: s2-drop-extension s2-add-node-1 s2-begin s2-create-extension-version-11 s1-remove-node-1 s2-commit s1-print starting permutation: s2-drop-extension s2-add-node-1 s2-begin s2-create-extension-version-11 s1-remove-node-1 s2-commit s1-print
?column?
1
step s2-drop-extension: step s2-drop-extension:
drop extension seg; drop extension seg;
@ -682,18 +641,16 @@ step s2-commit:
step s1-print: step s1-print:
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count count
0 3
extname extversion nspname extname extversion nspname
citus 9.1-1 pg_catalog
plpgsql 1.0 pg_catalog
seg 1.1 public seg 1.1 public
run_command_on_workers run_command_on_workers
@ -707,3 +664,67 @@ run_command_on_workers
master_remove_node master_remove_node
starting permutation: s2-drop-extension s2-add-node-1 s2-create-extension-version-11 s2-remove-node-1 s2-begin s2-drop-extension s1-add-node-1 s2-commit s1-print
step s2-drop-extension:
drop extension seg;
step s2-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637);
?column?
1
step s2-create-extension-version-11:
CREATE extension seg VERSION "1.1";
step s2-remove-node-1:
SELECT 1 FROM master_remove_node('localhost', 57637);
?column?
1
step s2-begin:
BEGIN;
step s2-drop-extension:
drop extension seg;
step s1-add-node-1:
SELECT 1 FROM master_add_node('localhost', 57637);
<waiting ...>
step s2-commit:
COMMIT;
step s1-add-node-1: <... completed>
?column?
1
step s1-print:
select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
count
3
extname extversion nspname
run_command_on_workers
(localhost,57637,t,seg)
(localhost,57638,t,"")
run_command_on_workers
(localhost,57637,t,1.3)
(localhost,57638,t,"")
run_command_on_workers
(localhost,57637,t,schema2)
(localhost,57638,t,"")
master_remove_node

View File

@ -1,6 +1,10 @@
setup setup
{ {
SELECT 1 FROM master_add_node('localhost', 57638); SELECT 1 FROM master_add_node('localhost', 57638);
create schema if not exists schema1;
create schema if not exists schema2;
CREATE schema if not exists schema3;
} }
teardown teardown
@ -20,16 +24,6 @@ step "s1-add-node-1"
SELECT 1 FROM master_add_node('localhost', 57637); SELECT 1 FROM master_add_node('localhost', 57637);
} }
step "s1-activate-node-1"
{
SELECT 1 FROM master_activate_node('localhost', 57637);
}
step "s1-disable-node-1"
{
SELECT 1 FROM master_disable_node('localhost', 57637);
}
step "s1-remove-node-1" step "s1-remove-node-1"
{ {
SELECT 1 FROM master_remove_node('localhost', 57637); SELECT 1 FROM master_remove_node('localhost', 57637);
@ -40,32 +34,15 @@ step "s1-commit"
COMMIT; COMMIT;
} }
step "s1-alter-extension-12"
{
alter extension seg update to "1.2";
}
step "s1-drop-extension-cascade"
{
drop extension seg cascade;
}
step "s1-create-extension-with-schema2" step "s1-create-extension-with-schema2"
{ {
create schema if not exists schema2;
CREATE extension seg with schema schema2; CREATE extension seg with schema schema2;
} }
step "s1-alter-extension-set-schema2"
{
create schema if not exists schema2;
alter extension seg set schema schema2;
}
step "s1-print" step "s1-print"
{ {
select count(*) from citus.pg_dist_object ; select count(*) from citus.pg_dist_object ;
select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace order by 1,2,3; select extname, extversion, nspname from pg_extension, pg_namespace where pg_namespace.oid=pg_extension.extnamespace and extname='seg';
SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extname from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$); SELECT run_command_on_workers($$select extversion from pg_extension where extname='seg'$$);
SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$); SELECT run_command_on_workers($$select nspname from pg_extension, pg_namespace where extname='seg' and pg_extension.extnamespace=pg_namespace.oid$$);
@ -95,13 +72,11 @@ step "s2-alter-extension-version-13"
step "s2-create-extension-with-schema1" step "s2-create-extension-with-schema1"
{ {
create schema if not exists schema1;
CREATE extension seg with schema schema1; CREATE extension seg with schema schema1;
} }
step "s2-create-extension-with-schema2" step "s2-create-extension-with-schema2"
{ {
create schema if not exists schema2;
CREATE extension seg with schema schema2; CREATE extension seg with schema schema2;
} }
@ -110,25 +85,14 @@ step "s2-drop-extension"
drop extension seg; drop extension seg;
} }
step "s2-drop-extension-cascade"
{
drop extension seg cascade;
}
step "s2-alter-extension-update-to-version-12" step "s2-alter-extension-update-to-version-12"
{ {
ALTER extension seg update to "1.2"; ALTER extension seg update to "1.2";
} }
step "s2-alter-extension-set-schema4" step "s2-alter-extension-set-schema3"
{ {
CREATE schema if not exists schema4; alter extension seg set schema schema3;
alter extension seg set schema schema4;
}
step "s2-alter-extension-set-schema-public"
{
alter extension seg set schema public;
} }
step "s2-commit" step "s2-commit"
@ -136,19 +100,25 @@ step "s2-commit"
COMMIT; COMMIT;
} }
step "s2-remove-node-1"
{
SELECT 1 FROM master_remove_node('localhost', 57637);
}
# master_#_node vs extension command # master_#_node vs extension command
permutation "s1-begin" "s1-add-node-1" "s2-create-extension-version-11" "s1-commit" "s1-print" permutation "s1-begin" "s1-add-node-1" "s2-create-extension-version-11" "s1-commit" "s1-print"
permutation "s1-begin" "s1-add-node-1" "s2-alter-extension-update-to-version-12" "s1-commit" "s1-print" permutation "s1-begin" "s1-add-node-1" "s2-alter-extension-update-to-version-12" "s1-commit" "s1-print"
permutation "s1-add-node-1" "s1-begin" "s1-remove-node-1" "s2-drop-extension" "s1-commit" "s1-print" permutation "s1-add-node-1" "s1-begin" "s1-remove-node-1" "s2-drop-extension" "s1-commit" "s1-print"
permutation "s1-begin" "s1-add-node-1" "s2-create-extension-with-schema1" "s1-commit" "s1-print" permutation "s1-begin" "s1-add-node-1" "s2-create-extension-with-schema1" "s1-commit" "s1-print"
permutation "s1-begin" "s1-add-node-1" "s2-drop-extension-cascade" "s1-commit" "s1-print" permutation "s1-begin" "s1-add-node-1" "s2-drop-extension" "s1-commit" "s1-print"
permutation "s1-add-node-1" "s1-create-extension-with-schema2" "s1-begin" "s1-remove-node-1" "s2-alter-extension-set-schema4" "s1-commit" "s1-print" permutation "s1-add-node-1" "s1-create-extension-with-schema2" "s1-begin" "s1-remove-node-1" "s2-alter-extension-set-schema3" "s1-commit" "s1-print"
permutation "s1-add-node-1" "s1-begin" "s1-remove-node-1" "s2-create-extension-with-schema1" "s1-commit" "s1-print" permutation "s1-add-node-1" "s2-drop-extension" "s1-begin" "s1-remove-node-1" "s2-create-extension-with-schema1" "s1-commit" "s1-print"
# extension command vs master_#_node # extension command vs master_#_node
permutation "s2-drop-extension" "s2-begin" "s2-create-extension-version-11" "s1-add-node-1" "s2-commit" "s1-print" permutation "s2-add-node-1" "s2-drop-extension" "s2-remove-node-1" "s2-begin" "s2-create-extension-version-11" "s1-add-node-1" "s2-commit" "s1-print"
permutation "s2-drop-extension" "s2-create-extension-version-11" "s2-begin" "s2-alter-extension-update-to-version-12" "s1-add-node-1" "s2-commit" "s1-print" permutation "s2-drop-extension" "s2-add-node-1" "s2-create-extension-version-11" "s2-remove-node-1" "s2-begin" "s2-alter-extension-update-to-version-12" "s1-add-node-1" "s2-commit" "s1-print"
permutation "s2-add-node-1" "s2-begin" "s2-drop-extension" "s1-remove-node-1" "s2-commit" "s1-print" permutation "s2-add-node-1" "s2-begin" "s2-drop-extension" "s1-remove-node-1" "s2-commit" "s1-print"
permutation "s2-begin" "s2-create-extension-with-schema1" "s1-add-node-1" "s2-commit" "s1-print" permutation "s2-begin" "s2-create-extension-with-schema1" "s1-add-node-1" "s2-commit" "s1-print"
permutation "s2-add-node-1" "s2-drop-extension-cascade" "s2-create-extension-with-schema2" "s2-begin" "s2-alter-extension-version-13" "s1-remove-node-1" "s2-commit" "s1-print" permutation "s2-drop-extension" "s2-add-node-1" "s2-create-extension-with-schema2" "s2-begin" "s2-alter-extension-version-13" "s1-remove-node-1" "s2-commit" "s1-print"
permutation "s2-drop-extension" "s2-add-node-1" "s2-begin" "s2-create-extension-version-11" "s1-remove-node-1" "s2-commit" "s1-print" permutation "s2-drop-extension" "s2-add-node-1" "s2-begin" "s2-create-extension-version-11" "s1-remove-node-1" "s2-commit" "s1-print"
permutation "s2-drop-extension" "s2-add-node-1" "s2-create-extension-version-11" "s2-remove-node-1" "s2-begin" "s2-drop-extension" "s1-add-node-1" "s2-commit" "s1-print"