diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/acl.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/acl.sql index 0a78a1c9c..1cd156772 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/acl.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/acl.sql @@ -27,3 +27,4 @@ FROM LEFT JOIN pg_catalog.pg_roles g ON (d.grantor = g.oid) LEFT JOIN pg_catalog.pg_roles gt ON (d.grantee = gt.oid) GROUP BY g.rolname, gt.rolname +ORDER BY grantee diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/update.sql index cf5948918..dff5700b5 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/update.sql @@ -35,7 +35,7 @@ SELECT setval({{ seqname|qtLiteral }}, {{ data.current_value }}, true); {% set defquery = defquery+'\n NO CYCLE' %} {% endif %} {% if defquery and defquery != '' %} -ALTER SEQUENCE {{ conn|qtIdent(o_data.schema, data.name) }} {{ defquery }}; +ALTER SEQUENCE {{ conn|qtIdent(o_data.schema, data.name) }}{{ defquery }}; {% endif %} {% if data.schema and data.schema != o_data.schema %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/test.json deleted file mode 100644 index 6a56038ae..000000000 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/test.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "scenarios": [ - { - "type": "create", - "name": "Create Sequence", - "endpoint": "NODE-sequence.obj", - "sql_endpoint": "NODE-sequence.sql_id", - "data": { - "name": "Seq1_$%{}[]()&*^!@\"'`\\/#", - "seqowner": "postgres", - "schema": "public", - "increment": "5", - "start": "5", - "maximum": "999", - "minimum": "5", - "cache": "1", - "cycled": false, - "relacl": [], - "securities": [] - }, - "expected_sql_file": "create_sequence.sql" - },{ - "type": "alter", - "name": "Alter Sequence comment", - "endpoint": "NODE-sequence.obj_id", - "sql_endpoint": "NODE-sequence.sql_id", - "data": { - "comment": "Some comment" - }, - "expected_sql_file": "alter_seq_comment.sql" - },{ - "type": "alter", - "name": "Alter Sequence properties", - "endpoint": "NODE-sequence.obj_id", - "sql_endpoint": "NODE-sequence.sql_id", - "data": { - "current_value": "7", "increment": "12", "minimum": "2", "maximum": "9992", "cache": "2", "cycled": true - }, - "expected_sql_file": "alter_seq_props.sql" - },{ - "type": "delete", - "name": "Drop sequence", - "endpoint": "NODE-sequence.delete_id", - "data": { - "name": "Seq1_$%{}[]()&*^!@\"'`\\/#" - } - } - ] -} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_comment_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_comment_msql.sql new file mode 100644 index 000000000..7a5efbd92 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_comment_msql.sql @@ -0,0 +1,2 @@ +COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + IS 'Some comment'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_add.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_add.sql new file mode 100644 index 000000000..bd25682b9 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_add.sql @@ -0,0 +1,21 @@ +-- SEQUENCE: public."Seq1_$%{}[]()&*^!@""'`\/#" + +-- DROP SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#"; + +CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + CYCLE + INCREMENT 12 + START 7 + MINVALUE 2 + MAXVALUE 9992 + CACHE 2; + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + OWNER TO postgres; + +COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + IS 'Some comment'; + +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO PUBLIC; + +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO postgres; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_add_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_add_msql.sql new file mode 100644 index 000000000..66d9aa002 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_add_msql.sql @@ -0,0 +1 @@ +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO PUBLIC; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_remove.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_remove.sql new file mode 100644 index 000000000..71da83b5f --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_remove.sql @@ -0,0 +1,19 @@ +-- SEQUENCE: public."Seq1_$%{}[]()&*^!@""'`\/#" + +-- DROP SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#"; + +CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + CYCLE + INCREMENT 12 + START 7 + MINVALUE 2 + MAXVALUE 9992 + CACHE 2; + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + OWNER TO postgres; + +COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + IS 'Some comment'; + +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO postgres; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_remove_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_remove_msql.sql new file mode 100644 index 000000000..e8b94bad8 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_remove_msql.sql @@ -0,0 +1 @@ +REVOKE ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" FROM PUBLIC; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_update.sql new file mode 100644 index 000000000..ba9e2a2a6 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_update.sql @@ -0,0 +1,21 @@ +-- SEQUENCE: public."Seq1_$%{}[]()&*^!@""'`\/#" + +-- DROP SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#"; + +CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + CYCLE + INCREMENT 12 + START 7 + MINVALUE 2 + MAXVALUE 9992 + CACHE 2; + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + OWNER TO postgres; + +COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + IS 'Some comment'; + +GRANT SELECT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO PUBLIC; + +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO postgres; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_update_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_update_msql.sql new file mode 100644 index 000000000..c3c2a5b9a --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_privs_update_msql.sql @@ -0,0 +1,2 @@ +REVOKE ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" FROM PUBLIC; +GRANT SELECT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO PUBLIC; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_props_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_props_msql.sql new file mode 100644 index 000000000..3ed0c8c1d --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_props_msql.sql @@ -0,0 +1,8 @@ +SELECT setval('public."Seq1_$%{}[]()&*^!@""''`\/#"', 7, true); + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + INCREMENT 12 + MINVALUE 2 + MAXVALUE 9992 + CACHE 2 + CYCLE; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/create_sequence_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/create_sequence_msql.sql new file mode 100644 index 000000000..67e09cd68 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/create_sequence_msql.sql @@ -0,0 +1,9 @@ +CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + INCREMENT 5 + START 5 + MINVALUE 5 + MAXVALUE 999 + CACHE 1; + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + OWNER TO postgres; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/test.json deleted file mode 100644 index 6a56038ae..000000000 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/test.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "scenarios": [ - { - "type": "create", - "name": "Create Sequence", - "endpoint": "NODE-sequence.obj", - "sql_endpoint": "NODE-sequence.sql_id", - "data": { - "name": "Seq1_$%{}[]()&*^!@\"'`\\/#", - "seqowner": "postgres", - "schema": "public", - "increment": "5", - "start": "5", - "maximum": "999", - "minimum": "5", - "cache": "1", - "cycled": false, - "relacl": [], - "securities": [] - }, - "expected_sql_file": "create_sequence.sql" - },{ - "type": "alter", - "name": "Alter Sequence comment", - "endpoint": "NODE-sequence.obj_id", - "sql_endpoint": "NODE-sequence.sql_id", - "data": { - "comment": "Some comment" - }, - "expected_sql_file": "alter_seq_comment.sql" - },{ - "type": "alter", - "name": "Alter Sequence properties", - "endpoint": "NODE-sequence.obj_id", - "sql_endpoint": "NODE-sequence.sql_id", - "data": { - "current_value": "7", "increment": "12", "minimum": "2", "maximum": "9992", "cache": "2", "cycled": true - }, - "expected_sql_file": "alter_seq_props.sql" - },{ - "type": "delete", - "name": "Drop sequence", - "endpoint": "NODE-sequence.delete_id", - "data": { - "name": "Seq1_$%{}[]()&*^!@\"'`\\/#" - } - } - ] -} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/test_sequences_pg.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/test_sequences_pg.json new file mode 100644 index 000000000..646794a4b --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/test_sequences_pg.json @@ -0,0 +1,134 @@ +{ + "scenarios": [ + { + "type": "create", + "name": "Create Sequence", + "endpoint": "NODE-sequence.obj", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql", + "data": { + "name": "Seq1_$%{}[]()&*^!@\"'`\\/#", + "seqowner": "postgres", + "schema": "public", + "increment": "5", + "start": "5", + "maximum": "999", + "minimum": "5", + "cache": "1", + "cycled": false, + "relacl": [], + "securities": [] + }, + "expected_sql_file": "create_sequence.sql", + "expected_msql_file": "create_sequence_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence comment", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "comment": "Some comment" + }, + "expected_sql_file": "alter_seq_comment.sql", + "expected_msql_file": "alter_seq_comment_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence properties", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "current_value": "7", "increment": "12", "minimum": "2", "maximum": "9992", "cache": "2", "cycled": true + }, + "expected_sql_file": "alter_seq_props.sql", + "expected_msql_file": "alter_seq_props_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence add privileges", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "relacl": { + "added":[{ + "grantee": "PUBLIC", + "grantor": "postgres", + "privileges":[{ + "privilege_type": "r", + "privilege": true, + "with_grant": false + },{ + "privilege_type": "U", + "privilege": true, + "with_grant": false + },{ + "privilege_type": "w", + "privilege": true, + "with_grant": false + }] + }] + } + }, + "expected_sql_file": "alter_seq_privs_add.sql", + "expected_msql_file": "alter_seq_privs_add_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence update privileges", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "relacl": { + "changed":[{ + "grantee": "PUBLIC", + "grantor": "postgres", + "privileges":[{ + "privilege_type": "r", + "privilege": true, + "with_grant": false + }] + }] + } + }, + "expected_sql_file": "alter_seq_privs_update.sql", + "expected_msql_file": "alter_seq_privs_update_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence remove privileges", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "relacl": { + "deleted":[{ + "grantee": "PUBLIC", + "grantor": "postgres", + "privileges":[{ + "privilege_type": "r", + "privilege": true, + "with_grant": false + },{ + "privilege_type": "U", + "privilege": true, + "with_grant": false + },{ + "privilege_type": "w", + "privilege": true, + "with_grant": false + }] + }] + } + }, + "expected_sql_file": "alter_seq_privs_remove.sql", + "expected_msql_file": "alter_seq_privs_remove_msql.sql" + },{ + "type": "delete", + "name": "Drop sequence", + "endpoint": "NODE-sequence.delete_id", + "data": { + "name": "Seq1_$%{}[]()&*^!@\"'`\\/#" + } + } + ] +} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/alter_seq_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_comment.sql similarity index 92% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/alter_seq_comment.sql rename to web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_comment.sql index abb620824..536a4b905 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/alter_seq_comment.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_comment.sql @@ -10,7 +10,7 @@ CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" CACHE 1; ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" - OWNER TO postgres; + OWNER TO enterprisedb; COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" IS 'Some comment'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_comment_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_comment_msql.sql new file mode 100644 index 000000000..7a5efbd92 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_comment_msql.sql @@ -0,0 +1,2 @@ +COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + IS 'Some comment'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_add.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_add.sql new file mode 100644 index 000000000..7a46a3556 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_add.sql @@ -0,0 +1,21 @@ +-- SEQUENCE: public."Seq1_$%{}[]()&*^!@""'`\/#" + +-- DROP SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#"; + +CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + CYCLE + INCREMENT 12 + START 7 + MINVALUE 2 + MAXVALUE 9992 + CACHE 2; + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + OWNER TO enterprisedb; + +COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + IS 'Some comment'; + +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO PUBLIC; + +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO enterprisedb; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_add_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_add_msql.sql new file mode 100644 index 000000000..66d9aa002 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_add_msql.sql @@ -0,0 +1 @@ +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO PUBLIC; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_remove.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_remove.sql new file mode 100644 index 000000000..c9794c037 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_remove.sql @@ -0,0 +1,19 @@ +-- SEQUENCE: public."Seq1_$%{}[]()&*^!@""'`\/#" + +-- DROP SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#"; + +CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + CYCLE + INCREMENT 12 + START 7 + MINVALUE 2 + MAXVALUE 9992 + CACHE 2; + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + OWNER TO enterprisedb; + +COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + IS 'Some comment'; + +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO enterprisedb; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_remove_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_remove_msql.sql new file mode 100644 index 000000000..e8b94bad8 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_remove_msql.sql @@ -0,0 +1 @@ +REVOKE ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" FROM PUBLIC; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_update.sql new file mode 100644 index 000000000..a414c8db6 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_update.sql @@ -0,0 +1,21 @@ +-- SEQUENCE: public."Seq1_$%{}[]()&*^!@""'`\/#" + +-- DROP SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#"; + +CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + CYCLE + INCREMENT 12 + START 7 + MINVALUE 2 + MAXVALUE 9992 + CACHE 2; + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + OWNER TO enterprisedb; + +COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + IS 'Some comment'; + +GRANT SELECT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO PUBLIC; + +GRANT ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO enterprisedb; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_update_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_update_msql.sql new file mode 100644 index 000000000..c3c2a5b9a --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_privs_update_msql.sql @@ -0,0 +1,2 @@ +REVOKE ALL ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" FROM PUBLIC; +GRANT SELECT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" TO PUBLIC; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/alter_seq_props.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props.sql similarity index 93% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/alter_seq_props.sql rename to web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props.sql index 9b29c67d9..3c5f254a6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/alter_seq_props.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props.sql @@ -11,7 +11,7 @@ CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" CACHE 2; ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" - OWNER TO postgres; + OWNER TO enterprisedb; COMMENT ON SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" IS 'Some comment'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props_msql.sql new file mode 100644 index 000000000..3ed0c8c1d --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props_msql.sql @@ -0,0 +1,8 @@ +SELECT setval('public."Seq1_$%{}[]()&*^!@""''`\/#"', 7, true); + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + INCREMENT 12 + MINVALUE 2 + MAXVALUE 9992 + CACHE 2 + CYCLE; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/create_sequence.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/create_sequence.sql similarity index 91% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/create_sequence.sql rename to web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/create_sequence.sql index 6d79f516b..25aa799a2 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/10_plus/create_sequence.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/create_sequence.sql @@ -10,4 +10,4 @@ CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" CACHE 1; ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" - OWNER TO postgres; + OWNER TO enterprisedb; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/create_sequence_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/create_sequence_msql.sql new file mode 100644 index 000000000..f926dbec2 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/create_sequence_msql.sql @@ -0,0 +1,9 @@ +CREATE SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + INCREMENT 5 + START 5 + MINVALUE 5 + MAXVALUE 999 + CACHE 1; + +ALTER SEQUENCE public."Seq1_$%{}[]()&*^!@""'`\/#" + OWNER TO enterprisedb; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/test_sequences_ppas.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/test_sequences_ppas.json new file mode 100644 index 000000000..f1404f516 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/test_sequences_ppas.json @@ -0,0 +1,134 @@ +{ + "scenarios": [ + { + "type": "create", + "name": "Create Sequence", + "endpoint": "NODE-sequence.obj", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql", + "data": { + "name": "Seq1_$%{}[]()&*^!@\"'`\\/#", + "seqowner": "enterprisedb", + "schema": "public", + "increment": "5", + "start": "5", + "maximum": "999", + "minimum": "5", + "cache": "1", + "cycled": false, + "relacl": [], + "securities": [] + }, + "expected_sql_file": "create_sequence.sql", + "expected_msql_file": "create_sequence_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence comment", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "comment": "Some comment" + }, + "expected_sql_file": "alter_seq_comment.sql", + "expected_msql_file": "alter_seq_comment_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence properties", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "current_value": "7", "increment": "12", "minimum": "2", "maximum": "9992", "cache": "2", "cycled": true + }, + "expected_sql_file": "alter_seq_props.sql", + "expected_msql_file": "alter_seq_props_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence add privileges", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "relacl": { + "added":[{ + "grantee": "PUBLIC", + "grantor": "enterprisedb", + "privileges":[{ + "privilege_type": "r", + "privilege": true, + "with_grant": false + },{ + "privilege_type": "U", + "privilege": true, + "with_grant": false + },{ + "privilege_type": "w", + "privilege": true, + "with_grant": false + }] + }] + } + }, + "expected_sql_file": "alter_seq_privs_add.sql", + "expected_msql_file": "alter_seq_privs_add_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence update privileges", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "relacl": { + "changed":[{ + "grantee": "PUBLIC", + "grantor": "enterprisedb", + "privileges":[{ + "privilege_type": "r", + "privilege": true, + "with_grant": false + }] + }] + } + }, + "expected_sql_file": "alter_seq_privs_update.sql", + "expected_msql_file": "alter_seq_privs_update_msql.sql" + },{ + "type": "alter", + "name": "Alter Sequence remove privileges", + "endpoint": "NODE-sequence.obj_id", + "sql_endpoint": "NODE-sequence.sql_id", + "msql_endpoint": "NODE-sequence.msql_id", + "data": { + "relacl": { + "deleted":[{ + "grantee": "PUBLIC", + "grantor": "enterprisedb", + "privileges":[{ + "privilege_type": "r", + "privilege": true, + "with_grant": false + },{ + "privilege_type": "U", + "privilege": true, + "with_grant": false + },{ + "privilege_type": "w", + "privilege": true, + "with_grant": false + }] + }] + } + }, + "expected_sql_file": "alter_seq_privs_remove.sql", + "expected_msql_file": "alter_seq_privs_remove_msql.sql" + },{ + "type": "delete", + "name": "Drop sequence", + "endpoint": "NODE-sequence.delete_id", + "data": { + "name": "Seq1_$%{}[]()&*^!@\"'`\\/#" + } + } + ] +} diff --git a/web/regression/re_sql/tests/test_resql.py b/web/regression/re_sql/tests/test_resql.py index ef8692ad0..aa3df5ed5 100644 --- a/web/regression/re_sql/tests/test_resql.py +++ b/web/regression/re_sql/tests/test_resql.py @@ -210,6 +210,8 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator): print_msg = print_msg + "... FAIL" print(print_msg) continue + else: + print(scenario['name'] + " (MSQL) ... ok") if 'type' in scenario and scenario['type'] == 'create': # Get the url and create the specific node. @@ -329,7 +331,15 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator): msql_url = self.get_url(scenario['msql_endpoint'], object_id) - params = urllib.parse.urlencode(scenario['data']) + # As msql data is passed as URL params, dict, list types data has to + # be converted to string using json.dumps before passing it to + # urlencode + msql_data = { + key: json.dumps(val) + if isinstance(val, dict) or isinstance(val, list) else val + for key, val in scenario['data'].items()} + + params = urllib.parse.urlencode(msql_data) params = params.replace('False', 'false').replace('True', 'true') url = msql_url + "?%s" % params response = self.tester.get(url,