public inbox for [email protected]  
help / color / mirror / Atom feed
From: Aditya Toshniwal <[email protected]>
To: pgadmin-hackers <[email protected]>
Subject: [pgAdmin][RE-SQL] Foregin Data Wrappers
Date: Fri, 5 Jul 2019 15:05:25 +0530
Message-ID: <CAM9w-_mFRz1-K_FdWG9pMQKNrw-s1HmXvzgUkmaDQyuvi5mu0Q@mail.gmail.com> (raw)

Hi Hackers,

Attached is the patch to add RE-SQL test cases for foreign data wrappers.
Test cases include:
Create
Add COMMENT,
Add Option 1,
Add Option 2,
Change Option 2 value,
Remove Option 2,
Rename FDW
Add validator
Drop

Kindly review.

-- 
Thanks and Regards,
Aditya Toshniwal
Software Engineer | EnterpriseDB India | Pune
"Don't Complain about Heat, Plant a TREE"


Attachments:

  [application/octet-stream] resql.fdw.patch (16.6K, 3-resql.fdw.patch)
  download | inline diff:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_change_opt2.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_change_opt2.sql
new file mode 100644
index 00000000..3b6adf66
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_change_opt2.sql
@@ -0,0 +1,12 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw"
+    OPTIONS (opt1 'val1', opt2 'valopt2');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_comment.sql
new file mode 100644
index 00000000..e2f5a0a4
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_comment.sql
@@ -0,0 +1,11 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw";
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_opt1.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_opt1.sql
new file mode 100644
index 00000000..a2c8a7f9
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_opt1.sql
@@ -0,0 +1,12 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw"
+    OPTIONS (opt1 'val1');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_opt2.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_opt2.sql
new file mode 100644
index 00000000..e8368b2c
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_opt2.sql
@@ -0,0 +1,12 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw"
+    OPTIONS (opt1 'val1', opt2 'val2');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_rename.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_rename.sql
new file mode 100644
index 00000000..a199cf16
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_rename.sql
@@ -0,0 +1,13 @@
+-- Foreign Data Wrapper: sample/fdw&new
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw&new
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw&new"
+    VALIDATOR pg_catalog.postgresql_fdw_validator
+    OPTIONS (opt1 'val1');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw&new"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw&new"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_validator.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_validator.sql
new file mode 100644
index 00000000..db244b5f
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/alter_fdw_validator.sql
@@ -0,0 +1,13 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw"
+    VALIDATOR pg_catalog.postgresql_fdw_validator
+    OPTIONS (opt1 'val1');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/create_fdw.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/create_fdw.sql
new file mode 100644
index 00000000..16b8f58d
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/create_fdw.sql
@@ -0,0 +1,8 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw";
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/test.json b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/test.json
new file mode 100644
index 00000000..cdb7f4a1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/9.3_plus/test.json
@@ -0,0 +1,104 @@
+{
+  "scenarios": [
+    {
+      "type": "create",
+      "name": "Create FDW",
+      "endpoint": "NODE-foreign_data_wrapper.obj",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "name": "sample/fdw",
+        "fdwowner": "postgres",
+        "fdwacl": [],
+        "fdwoptions": []
+      },
+      "expected_sql_file": "create_fdw.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW add comment",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "description": "a comment"
+      },
+      "expected_sql_file": "alter_fdw_comment.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW add option 1",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwoptions": {
+          "added": [{
+            "fdwoption": "opt1",
+            "fdwvalue": "val1"
+          }]
+        }
+      },
+      "expected_sql_file": "alter_fdw_opt1.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW add option 2",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwoptions": {
+          "added": [{
+            "fdwoption": "opt2",
+            "fdwvalue": "val2"
+          }]
+        }
+      },
+      "expected_sql_file": "alter_fdw_opt2.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW change option 2 value",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwoptions": {
+          "changed": [{
+            "fdwoption": "opt2",
+            "fdwvalue": "valopt2"
+          }]
+        }
+      },
+      "expected_sql_file": "alter_fdw_change_opt2.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW remove option 2",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwoptions": {
+          "deleted": [{
+            "fdwoption": "opt2",
+            "fdwvalue": "valopt2"
+          }]
+        }
+      },
+      "expected_sql_file": "alter_fdw_opt1.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW add validator",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwvalue": "pg_catalog.postgresql_fdw_validator"
+      },
+      "expected_sql_file": "alter_fdw_validator.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW rename",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "name": "sample/fdw&new"
+      },
+      "expected_sql_file": "alter_fdw_rename.sql"
+    },{
+      "type": "delete",
+      "name": "Drop FDW",
+      "endpoint": "NODE-foreign_data_wrapper.delete_id"
+    }
+  ]
+}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_change_opt2.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_change_opt2.sql
new file mode 100644
index 00000000..3b6adf66
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_change_opt2.sql
@@ -0,0 +1,12 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw"
+    OPTIONS (opt1 'val1', opt2 'valopt2');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_comment.sql
new file mode 100644
index 00000000..e2f5a0a4
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_comment.sql
@@ -0,0 +1,11 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw";
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_opt1.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_opt1.sql
new file mode 100644
index 00000000..a2c8a7f9
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_opt1.sql
@@ -0,0 +1,12 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw"
+    OPTIONS (opt1 'val1');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_opt2.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_opt2.sql
new file mode 100644
index 00000000..e8368b2c
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_opt2.sql
@@ -0,0 +1,12 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw"
+    OPTIONS (opt1 'val1', opt2 'val2');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_rename.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_rename.sql
new file mode 100644
index 00000000..a199cf16
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_rename.sql
@@ -0,0 +1,13 @@
+-- Foreign Data Wrapper: sample/fdw&new
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw&new
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw&new"
+    VALIDATOR pg_catalog.postgresql_fdw_validator
+    OPTIONS (opt1 'val1');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw&new"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw&new"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_validator.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_validator.sql
new file mode 100644
index 00000000..db244b5f
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/alter_fdw_validator.sql
@@ -0,0 +1,13 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw"
+    VALIDATOR pg_catalog.postgresql_fdw_validator
+    OPTIONS (opt1 'val1');
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
+
+COMMENT ON FOREIGN DATA WRAPPER "sample/fdw"
+    IS 'a comment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/create_fdw.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/create_fdw.sql
new file mode 100644
index 00000000..16b8f58d
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/create_fdw.sql
@@ -0,0 +1,8 @@
+-- Foreign Data Wrapper: sample/fdw
+
+-- DROP FOREIGN DATA WRAPPER sample/fdw
+
+CREATE FOREIGN DATA WRAPPER "sample/fdw";
+
+ALTER FOREIGN DATA WRAPPER "sample/fdw"
+    OWNER TO postgres;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/test.json b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/test.json
new file mode 100644
index 00000000..cdb7f4a1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/tests/default/test.json
@@ -0,0 +1,104 @@
+{
+  "scenarios": [
+    {
+      "type": "create",
+      "name": "Create FDW",
+      "endpoint": "NODE-foreign_data_wrapper.obj",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "name": "sample/fdw",
+        "fdwowner": "postgres",
+        "fdwacl": [],
+        "fdwoptions": []
+      },
+      "expected_sql_file": "create_fdw.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW add comment",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "description": "a comment"
+      },
+      "expected_sql_file": "alter_fdw_comment.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW add option 1",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwoptions": {
+          "added": [{
+            "fdwoption": "opt1",
+            "fdwvalue": "val1"
+          }]
+        }
+      },
+      "expected_sql_file": "alter_fdw_opt1.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW add option 2",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwoptions": {
+          "added": [{
+            "fdwoption": "opt2",
+            "fdwvalue": "val2"
+          }]
+        }
+      },
+      "expected_sql_file": "alter_fdw_opt2.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW change option 2 value",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwoptions": {
+          "changed": [{
+            "fdwoption": "opt2",
+            "fdwvalue": "valopt2"
+          }]
+        }
+      },
+      "expected_sql_file": "alter_fdw_change_opt2.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW remove option 2",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwoptions": {
+          "deleted": [{
+            "fdwoption": "opt2",
+            "fdwvalue": "valopt2"
+          }]
+        }
+      },
+      "expected_sql_file": "alter_fdw_opt1.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW add validator",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "fdwvalue": "pg_catalog.postgresql_fdw_validator"
+      },
+      "expected_sql_file": "alter_fdw_validator.sql"
+    },{
+      "type": "alter",
+      "name": "Alter FDW rename",
+      "endpoint": "NODE-foreign_data_wrapper.obj_id",
+      "sql_endpoint": "NODE-foreign_data_wrapper.sql_id",
+      "data": {
+        "name": "sample/fdw&new"
+      },
+      "expected_sql_file": "alter_fdw_rename.sql"
+    },{
+      "type": "delete",
+      "name": "Drop FDW",
+      "endpoint": "NODE-foreign_data_wrapper.delete_id"
+    }
+  ]
+}


view thread (2+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: [pgAdmin][RE-SQL] Foregin Data Wrappers
  In-Reply-To: <CAM9w-_mFRz1-K_FdWG9pMQKNrw-s1HmXvzgUkmaDQyuvi5mu0Q@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox