Re: RM 4463 - RESQL test cases for domain node

Neel Patel <[email protected]>
Newsgroups gmane.comp.db.postgresql.pgadmin.devel
Message-ID <CACCA4P3Enjd+gubO8gWGn-sKfrVotz29gU5w_DZqPVMAPt7Bag@mail.gmail.com>
Hi,

Please find attached patch that will add more resql 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 am sending separate
patch for the same.

Thanks,
Neel Patel

On Fri, Jul 12, 2019 at 7:10 PM Dave Page <[email protected]> wrote:

> Thanks, applied.
>
> On Fri, Jul 12, 2019 at 12:31 PM Neel Patel <[email protected]>
> wrote:
>
>> Hi,
>>
>> Please find attached patch for reverse engineering test cases for domain
>> node ( RM #4463 )
>> Do review it and let me know for comments.
>>
>> Thanks,
>> Neel Patel
>>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
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.