RM 4463 - MSQL test cases for domain node

Neel Patel <[email protected]>
Newsgroups gmane.comp.db.postgresql.pgadmin.devel
Message-ID <CACCA4P13s+yZY0sRLP15nPXJGW12s1H+OBhKvBASTeStN_kqCQ@mail.gmail.com>
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.

Thanks,
Neel Patel
RM_4463_v2.patch (application/octet-stream, 12.2 KB)
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/default/alter_domain_comment.sql
index 27648cd9a..cd6ea854f 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/default/alter_domain_comment.sql
@@ -3,7 +3,8 @@
 -- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
 
 CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
-    AS bigint
+    AS text
+    COLLATE pg_catalog."C"
     DEFAULT 5
     NOT NULL;
 
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/default/alter_domain_default_expression.sql
index 7d9ca3560..a9aaff120 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/default/alter_domain_default_expression.sql
@@ -3,7 +3,8 @@
 -- 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>;
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/default/alter_domain_name.sql
index 5b546dcf7..f5e10114e 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/default/alter_domain_name.sql
@@ -3,7 +3,8 @@
 -- 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>;
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/default/alter_domain_null_type.sql
index 1e0747a52..6066156b5 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/default/alter_domain_null_type.sql
@@ -3,7 +3,8 @@
 -- 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>;
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/default/create_domain.sql
index 0d3933521..28aab4512 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/default/create_domain.sql
@@ -3,7 +3,8 @@
 -- DROP DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#";
 
 CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
-    AS bigint
+    AS text
+    COLLATE pg_catalog."C"
     DEFAULT 5
     NOT NULL;
 
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/create_domain_numeric.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/create_domain_numeric.sql
new file mode 100644
index 000000000..4c2d1243f
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/create_domain_numeric.sql
@@ -0,0 +1,16 @@
+-- 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 <OWNER>;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+    ADD CONSTRAINT constraint_1 CHECK (true);
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+    IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/msql_alter_domain_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/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/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/default/msql_alter_domain_default_expression.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/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/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/default/msql_alter_domain_name.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/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/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/default/msql_alter_domain_null_type.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/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/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/default/msql_create_domain.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/msql_create_domain.sql
new file mode 100644
index 000000000..d468f47f8
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/msql_create_domain.sql
@@ -0,0 +1,13 @@
+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 (true);
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+    IS 'test_comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/msql_create_domain_numeric.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/msql_create_domain_numeric.sql
new file mode 100644
index 000000000..bd1dec186
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/tests/default/msql_create_domain_numeric.sql
@@ -0,0 +1,12 @@
+CREATE DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+    AS numeric(5,2)
+    DEFAULT 3
+    NOT NULL;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#" OWNER TO postgres;
+
+ALTER DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+    ADD CONSTRAINT constraint_1 CHECK (true);
+
+COMMENT ON DOMAIN public."Dom1_$%{}[]()&*^!@""'`\/#"
+    IS 'test_comment';
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
index fa8b38191..ff4b11c5e 100644
--- 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
@@ -1,16 +1,18 @@
 {
   "scenarios": [{
       "type": "create",
-      "name": "Create Domain",
+      "name": "Create Domain with text data type",
       "endpoint": "NODE-domain.obj",
       "sql_endpoint": "NODE-domain.sql_id",
+      "msql_endpoint": "NODE-domain.msql_id",
       "data": {
 	"name": "Dom1_$%{}[]()&*^!@\"'`\\/#",
 	"schema": "public",
         "schema_id": "<SCHEMA_ID>",
         "basensp": "public",
         "description": "test_comment",
-        "basetype": "bigint",
+        "basetype": "text",
+	"collname": "pg_catalog.\"C\"",
         "typdefault": "5",
         "typnotnull": "true",
         "constraints": [{
@@ -20,46 +22,88 @@
 	}],
 	"seclabels": []
       },
-      "expected_sql_file": "create_domain.sql"
+      "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_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_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_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_sql_file": "alter_domain_name.sql",
+      "expected_msql_file": "msql_alter_domain_name.sql"
     }, {
       "type": "delete",
-      "name": "Drop domain",
+      "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_id",
+      "data": {
+	"name": "Dom1_$%{}[]()&*^!@\"'`\\/#",
+	"schema": "public",
+        "schema_id": "<SCHEMA_ID>",
+        "basensp": "public",
+        "description": "test_comment",
+        "basetype": "numeric",
+        "typlen": 5,
+        "precision": 2,
+        "typdefault": "3",
+        "typnotnull": "true",
+        "constraints": [{
+		"conname": "constraint_1",
+		"consrc": "true",
+		"convalidated": "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_$%{}[]()&*^!@\"'`\\/#"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.