Re: RM 4463 - MSQL test cases for domain node
Neel Patel <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.pgadmin.devel |
|---|---|
| Message-ID | <CACCA4P1kPTG+YK4PAJT5XbDNAt785KgJUHkGuKbtb9vd-+rTCg@mail.gmail.com> |
Hi, Please find attached updated patch. I have tested with PG 9.4, PG 10 & EPAS 10. Do review it and let me know in case of any failures. Thanks, Neel Patel On Fri, Aug 23, 2019 at 1:52 PM Dave Page <[email protected]> wrote: > Hi > > On Wed, Aug 21, 2019 at 8:58 AM Neel Patel <[email protected]> > wrote: > >> Hi, >> >> Please find attached patch that will add more resql test cases and msql >> test cases for domain node. >> >> - Covered test cases for Length, Precision and Collation. >> - Also added msql test cases. >> >> While writing resql test cases for domain node, I found one more issue >> RM-4644 <https://redmine.postgresql.org/issues/4644>. I have sent >> separate patch for the same. >> > > I'm getting the following error with this patch: > > ====================================================================== > ERROR: runTest > (regression.re_sql.tests.test_resql.ReverseEngineeredSQLTestCases) > Reverse Engineered SQL Test Cases > ---------------------------------------------------------------------- > Traceback (most recent call last): > File > "/Users/dpage/git/pgadmin4/web/regression/re_sql/tests/test_resql.py", line > 126, in runTest > self.execute_test_case(scenarios) > File > "/Users/dpage/git/pgadmin4/web/regression/re_sql/tests/test_resql.py", line > 204, in execute_test_case > if not self.check_msql(scenario, object_id): > File > "/Users/dpage/git/pgadmin4/web/regression/re_sql/tests/test_resql.py", line > 329, in check_msql > object_id) > File > "/Users/dpage/git/pgadmin4/web/regression/re_sql/tests/test_resql.py", line > 178, in get_url > object_url = url_for(rule.endpoint, **options) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/flask/helpers.py", > line 356, in url_for > return appctx.app.handle_url_build_error(error, endpoint, values) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/flask/app.py", > line 2061, in handle_url_build_error > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/flask/_compat.py", > line 35, in reraise > raise value > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/flask/helpers.py", > line 345, in url_for > force_external=external) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/werkzeug/routing.py", > line 1776, in build > raise BuildError(endpoint, values, method, self) > werkzeug.routing.BuildError: Could not build url for endpoint > 'NODE-domain.msql_id' with values ['did', 'gid', 'scid', 'sid']. Did you > forget to specify values ['doid']? > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company >
RM_4463_V3.patch
(application/octet-stream, 31.1 KB)
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/test.json
deleted file mode 100644
index fa8b38191..000000000
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/test.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "scenarios": [{
- "type": "create",
- "name": "Create Domain",
- "endpoint": "NODE-domain.obj",
- "sql_endpoint": "NODE-domain.sql_id",
- "data": {
- "name": "Dom1_$%{}[]()&*^!@\"'`\\/#",
- "schema": "public",
- "schema_id": "<SCHEMA_ID>",
- "basensp": "public",
- "description": "test_comment",
- "basetype": "bigint",
- "typdefault": "5",
- "typnotnull": "true",
- "constraints": [{
- "conname": "constraint_1",
- "consrc": "true",
- "convalidated": "true"
- }],
- "seclabels": []
- },
- "expected_sql_file": "create_domain.sql"
- }, {
- "type": "alter",
- "name": "Alter domain comment",
- "endpoint": "NODE-domain.obj_id",
- "sql_endpoint": "NODE-domain.sql_id",
- "data": {
- "description": "test updated domain comment"
- },
- "expected_sql_file": "alter_domain_comment.sql"
- }, {
- "type": "alter",
- "name": "Alter domain null type",
- "endpoint": "NODE-domain.obj_id",
- "sql_endpoint": "NODE-domain.sql_id",
- "data": {
- "typnotnull": "false"
- },
- "expected_sql_file": "alter_domain_null_type.sql"
- }, {
- "type": "alter",
- "name": "Alter domain default expression",
- "endpoint": "NODE-domain.obj_id",
- "sql_endpoint": "NODE-domain.sql_id",
- "data": {
- "typdefault": "3"
- },
- "expected_sql_file": "alter_domain_default_expression.sql"
- }, {
- "type": "alter",
- "name": "Alter domain name",
- "endpoint": "NODE-domain.obj_id",
- "sql_endpoint": "NODE-domain.sql_id",
- "data": {
- "name": "Dom2_$%{}[]()&*^!@\"'`\\/#"
- },
- "expected_sql_file": "alter_domain_name.sql"
- }, {
- "type": "delete",
- "name": "Drop domain",
- "endpoint": "NODE-domain.delete_id",
- "data": {
- "name": "Dom2_$%{}[]()&*^!@\"'`\\/#"
- }
- }
- ]
-}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_comment.sql
similarity index 55%
rename from web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_comment.sql
rename to web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_comment.sql
index 27648cd9a..132f6ba8a 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_comment.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_comment.sql
@@ -3,14 +3,18 @@
-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
- AS bigint
+ AS text
+ COLLATE pg_catalog."C"
DEFAULT 5
NOT NULL;
-ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO <OWNER>;
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
- ADD CONSTRAINT constraint_1 CHECK (true);
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_default_expression.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_default_expression.sql
similarity index 54%
rename from web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_default_expression.sql
rename to web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_default_expression.sql
index 7d9ca3560..6987a3381 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_default_expression.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_default_expression.sql
@@ -3,13 +3,17 @@
-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
- AS bigint
+ AS text
+ COLLATE pg_catalog."C"
DEFAULT 3;
-ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO <OWNER>;
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
- ADD CONSTRAINT constraint_1 CHECK (true);
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_name.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_name.sql
similarity index 54%
rename from web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_name.sql
rename to web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_name.sql
index 5b546dcf7..fad3d0f4c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_name.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_name.sql
@@ -3,13 +3,17 @@
-- DROP DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#";
CREATE DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#"
- AS bigint
+ AS text
+ COLLATE pg_catalog."C"
DEFAULT 3;
-ALTER DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#" OWNER TO <OWNER>;
+ALTER DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
ALTER DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#"
- ADD CONSTRAINT constraint_1 CHECK (true);
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
COMMENT ON DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#"
IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_null_type.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_null_type.sql
similarity index 54%
rename from web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_null_type.sql
rename to web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_null_type.sql
index 1e0747a52..a8d6a3fac 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/alter_domain_null_type.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/alter_domain_null_type.sql
@@ -3,13 +3,17 @@
-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
- AS bigint
+ AS text
+ COLLATE pg_catalog."C"
DEFAULT 5;
-ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO <OWNER>;
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
- ADD CONSTRAINT constraint_1 CHECK (true);
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/create_domain.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/create_domain.sql
new file mode 100644
index 000000000..246cbc1e3
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/create_domain.sql
@@ -0,0 +1,20 @@
+-- DOMAIN: public."Dom1_$%{}[]()&*^!@""'`\/#"
+
+-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
+
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS text
+ COLLATE pg_catalog."C"
+ DEFAULT 5
+ NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/create_domain.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/create_domain_numeric.sql
similarity index 55%
rename from web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/create_domain.sql
rename to web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/create_domain_numeric.sql
index 0d3933521..81d572e22 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/create_domain.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/create_domain_numeric.sql
@@ -3,14 +3,11 @@
-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
- AS bigint
- DEFAULT 5
+ AS numeric(5,2)
+ DEFAULT 3
NOT NULL;
-ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO <OWNER>;
-
-ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
- ADD CONSTRAINT constraint_1 CHECK (true);
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_comment.sql
new file mode 100644
index 000000000..8a4fb8644
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_comment.sql
@@ -0,0 +1,2 @@
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_default_expression.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_default_expression.sql
new file mode 100644
index 000000000..4321f7b56
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_default_expression.sql
@@ -0,0 +1,2 @@
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ SET DEFAULT 3;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_name.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_name.sql
new file mode 100644
index 000000000..51a634176
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_name.sql
@@ -0,0 +1,2 @@
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ RENAME TO "Dom2_$%{}[]()&*^!@""'`\/#";
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_null_type.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_null_type.sql
new file mode 100644
index 000000000..190e94b47
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_alter_domain_null_type.sql
@@ -0,0 +1,2 @@
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ DROP NOT NULL;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_create_domain.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_create_domain.sql
new file mode 100644
index 000000000..5e4da15a3
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_create_domain.sql
@@ -0,0 +1,16 @@
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS text
+ COLLATE pg_catalog."C"
+ DEFAULT 5
+ NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_create_domain_numeric.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_create_domain_numeric.sql
new file mode 100644
index 000000000..9feccd2db
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/msql_create_domain_numeric.sql
@@ -0,0 +1,9 @@
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS numeric(5,2)
+ DEFAULT 3
+ NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/test.json
new file mode 100644
index 000000000..f3d8e238b
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/pg/default/test.json
@@ -0,0 +1,114 @@
+{
+ "scenarios": [{
+ "type": "create",
+ "name": "Create Domain with all options",
+ "endpoint": "NODE-domain.obj",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql",
+ "data": {
+ "name": "Dom1_$%{}[]()&*^!@\"'`\\/#",
+ "schema": "public",
+ "schema_id": "<SCHEMA_ID>",
+ "owner": "postgres",
+ "basensp": "public",
+ "description": "test_comment",
+ "basetype": "text",
+ "collname": "pg_catalog.\"C\"",
+ "typdefault": "5",
+ "typnotnull": "true",
+ "constraints": [{
+ "conname": "constraint_1",
+ "consrc": "3 < 5",
+ "convalidated": true
+ }, {
+ "conname": "constraint_2",
+ "consrc": "4 < 2",
+ "convalidated": false
+ }],
+ "seclabels": []
+ },
+ "expected_sql_file": "create_domain.sql",
+ "expected_msql_file": "msql_create_domain.sql"
+ }, {
+ "type": "alter",
+ "name": "Alter domain comment",
+ "endpoint": "NODE-domain.obj_id",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql_id",
+ "data": {
+ "description": "test updated domain comment"
+ },
+ "expected_sql_file": "alter_domain_comment.sql",
+ "expected_msql_file": "msql_alter_domain_comment.sql"
+ }, {
+ "type": "alter",
+ "name": "Alter domain null type",
+ "endpoint": "NODE-domain.obj_id",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql_id",
+ "data": {
+ "typnotnull": "false"
+ },
+ "expected_sql_file": "alter_domain_null_type.sql",
+ "expected_msql_file": "msql_alter_domain_null_type.sql"
+ }, {
+ "type": "alter",
+ "name": "Alter domain default expression",
+ "endpoint": "NODE-domain.obj_id",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql_id",
+ "data": {
+ "typdefault": "3"
+ },
+ "expected_sql_file": "alter_domain_default_expression.sql",
+ "expected_msql_file": "msql_alter_domain_default_expression.sql"
+ }, {
+ "type": "alter",
+ "name": "Alter domain name",
+ "endpoint": "NODE-domain.obj_id",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql_id",
+ "data": {
+ "name": "Dom2_$%{}[]()&*^!@\"'`\\/#"
+ },
+ "expected_sql_file": "alter_domain_name.sql",
+ "expected_msql_file": "msql_alter_domain_name.sql"
+ }, {
+ "type": "delete",
+ "name": "Drop domain of text data type",
+ "endpoint": "NODE-domain.delete_id",
+ "data": {
+ "name": "Dom2_$%{}[]()&*^!@\"'`\\/#"
+ }
+ }, {
+ "type": "create",
+ "name": "Create Domain with numeric data type",
+ "endpoint": "NODE-domain.obj",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql",
+ "data": {
+ "name": "Dom1_$%{}[]()&*^!@\"'`\\/#",
+ "schema": "public",
+ "schema_id": "<SCHEMA_ID>",
+ "owner": "postgres",
+ "basensp": "public",
+ "description": "test_comment",
+ "basetype": "numeric",
+ "typlen": 5,
+ "precision": 2,
+ "typdefault": "3",
+ "typnotnull": "true",
+ "seclabels": []
+ },
+ "expected_sql_file": "create_domain_numeric.sql",
+ "expected_msql_file": "msql_create_domain_numeric.sql"
+ }, {
+ "type": "delete",
+ "name": "Drop domain of numeric data type",
+ "endpoint": "NODE-domain.delete_id",
+ "data": {
+ "name": "Dom2_$%{}[]()&*^!@\"'`\\/#"
+ }
+ }
+ ]
+}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_comment.sql
new file mode 100644
index 000000000..4e430fc64
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_comment.sql
@@ -0,0 +1,20 @@
+-- DOMAIN: public."Dom1_$%{}[]()&*^!@""'`\/#"
+
+-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
+
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS text
+ COLLATE pg_catalog."C"
+ DEFAULT 5
+ NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_default_expression.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_default_expression.sql
new file mode 100644
index 000000000..d6df44a8d
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_default_expression.sql
@@ -0,0 +1,19 @@
+-- DOMAIN: public."Dom1_$%{}[]()&*^!@""'`\/#"
+
+-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
+
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS text
+ COLLATE pg_catalog."C"
+ DEFAULT 3;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_name.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_name.sql
new file mode 100644
index 000000000..dde706dae
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_name.sql
@@ -0,0 +1,19 @@
+-- DOMAIN: public."Dom2_$%{}[]()&*^!@""'`\/#"
+
+-- DROP DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#";
+
+CREATE DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#"
+ AS text
+ COLLATE pg_catalog."C"
+ DEFAULT 3;
+
+ALTER DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb;
+
+ALTER DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
+
+COMMENT ON DOMAIN public."Dom2_$%{}[]()&*^!@""'`\/#"
+ IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_null_type.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_null_type.sql
new file mode 100644
index 000000000..3ac89e3df
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/alter_domain_null_type.sql
@@ -0,0 +1,19 @@
+-- DOMAIN: public."Dom1_$%{}[]()&*^!@""'`\/#"
+
+-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
+
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS text
+ COLLATE pg_catalog."C"
+ DEFAULT 5;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/create_domain.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/create_domain.sql
new file mode 100644
index 000000000..ba9c72f09
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/create_domain.sql
@@ -0,0 +1,20 @@
+-- DOMAIN: public."Dom1_$%{}[]()&*^!@""'`\/#"
+
+-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
+
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS text
+ COLLATE pg_catalog."C"
+ DEFAULT 5
+ NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/create_domain_numeric.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/create_domain_numeric.sql
new file mode 100644
index 000000000..2462f685e
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/create_domain_numeric.sql
@@ -0,0 +1,13 @@
+-- DOMAIN: public."Dom1_$%{}[]()&*^!@""'`\/#"
+
+-- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
+
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS numeric(5,2)
+ DEFAULT 3
+ NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_comment.sql
new file mode 100644
index 000000000..8a4fb8644
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_comment.sql
@@ -0,0 +1,2 @@
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test updated domain comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_default_expression.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_default_expression.sql
new file mode 100644
index 000000000..4321f7b56
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_default_expression.sql
@@ -0,0 +1,2 @@
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ SET DEFAULT 3;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_name.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_name.sql
new file mode 100644
index 000000000..51a634176
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_name.sql
@@ -0,0 +1,2 @@
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ RENAME TO "Dom2_$%{}[]()&*^!@""'`\/#";
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_null_type.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_null_type.sql
new file mode 100644
index 000000000..190e94b47
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_alter_domain_null_type.sql
@@ -0,0 +1,2 @@
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ DROP NOT NULL;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_create_domain.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_create_domain.sql
new file mode 100644
index 000000000..6eb5affcb
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_create_domain.sql
@@ -0,0 +1,16 @@
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS text
+ COLLATE pg_catalog."C"
+ DEFAULT 5
+ NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_1 CHECK (3 < 5);
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ ADD CONSTRAINT constraint_2 CHECK (4 < 2) NOT VALID;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_create_domain_numeric.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_create_domain_numeric.sql
new file mode 100644
index 000000000..bd21ebc38
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/msql_create_domain_numeric.sql
@@ -0,0 +1,9 @@
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ AS numeric(5,2)
+ DEFAULT 3
+ NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb;
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+ IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/test.json
new file mode 100644
index 000000000..4c6344d92
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/ppas/default/test.json
@@ -0,0 +1,114 @@
+{
+ "scenarios": [{
+ "type": "create",
+ "name": "Create Domain with all options",
+ "endpoint": "NODE-domain.obj",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql",
+ "data": {
+ "name": "Dom1_$%{}[]()&*^!@\"'`\\/#",
+ "schema": "public",
+ "schema_id": "<SCHEMA_ID>",
+ "owner": "enterprisedb",
+ "basensp": "public",
+ "description": "test_comment",
+ "basetype": "text",
+ "collname": "pg_catalog.\"C\"",
+ "typdefault": "5",
+ "typnotnull": "true",
+ "constraints": [{
+ "conname": "constraint_1",
+ "consrc": "3 < 5",
+ "convalidated": true
+ }, {
+ "conname": "constraint_2",
+ "consrc": "4 < 2",
+ "convalidated": false
+ }],
+ "seclabels": []
+ },
+ "expected_sql_file": "create_domain.sql",
+ "expected_msql_file": "msql_create_domain.sql"
+ }, {
+ "type": "alter",
+ "name": "Alter domain comment",
+ "endpoint": "NODE-domain.obj_id",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql_id",
+ "data": {
+ "description": "test updated domain comment"
+ },
+ "expected_sql_file": "alter_domain_comment.sql",
+ "expected_msql_file": "msql_alter_domain_comment.sql"
+ }, {
+ "type": "alter",
+ "name": "Alter domain null type",
+ "endpoint": "NODE-domain.obj_id",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql_id",
+ "data": {
+ "typnotnull": "false"
+ },
+ "expected_sql_file": "alter_domain_null_type.sql",
+ "expected_msql_file": "msql_alter_domain_null_type.sql"
+ }, {
+ "type": "alter",
+ "name": "Alter domain default expression",
+ "endpoint": "NODE-domain.obj_id",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql_id",
+ "data": {
+ "typdefault": "3"
+ },
+ "expected_sql_file": "alter_domain_default_expression.sql",
+ "expected_msql_file": "msql_alter_domain_default_expression.sql"
+ }, {
+ "type": "alter",
+ "name": "Alter domain name",
+ "endpoint": "NODE-domain.obj_id",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql_id",
+ "data": {
+ "name": "Dom2_$%{}[]()&*^!@\"'`\\/#"
+ },
+ "expected_sql_file": "alter_domain_name.sql",
+ "expected_msql_file": "msql_alter_domain_name.sql"
+ }, {
+ "type": "delete",
+ "name": "Drop domain of text data type",
+ "endpoint": "NODE-domain.delete_id",
+ "data": {
+ "name": "Dom2_$%{}[]()&*^!@\"'`\\/#"
+ }
+ }, {
+ "type": "create",
+ "name": "Create Domain with numeric data type",
+ "endpoint": "NODE-domain.obj",
+ "sql_endpoint": "NODE-domain.sql_id",
+ "msql_endpoint": "NODE-domain.msql",
+ "data": {
+ "name": "Dom1_$%{}[]()&*^!@\"'`\\/#",
+ "schema": "public",
+ "schema_id": "<SCHEMA_ID>",
+ "owner": "enterprisedb",
+ "basensp": "public",
+ "description": "test_comment",
+ "basetype": "numeric",
+ "typlen": 5,
+ "precision": 2,
+ "typdefault": "3",
+ "typnotnull": "true",
+ "seclabels": []
+ },
+ "expected_sql_file": "create_domain_numeric.sql",
+ "expected_msql_file": "msql_create_domain_numeric.sql"
+ }, {
+ "type": "delete",
+ "name": "Drop domain of numeric data type",
+ "endpoint": "NODE-domain.delete_id",
+ "data": {
+ "name": "Dom2_$%{}[]()&*^!@\"'`\\/#"
+ }
+ }
+ ]
+}