@ -16,11 +16,11 @@ CREATE ROLE unprivileged_role;
CREATE FOREIGN DATA WRAPPER dummy;
CREATE FOREIGN DATA WRAPPER postgresql VALIDATOR postgresql_fdw_validator;
-- At this point we should have 2 built-in wrappers and no servers.
SELECT fdwname, fdwvalidator::regproc, fdwoptions FROM pg_foreign_data_wrapper ORDER BY 1, 2, 3;
fdwname | fdwvalidator | fdwoptions
------------+--------------------------+------------
dummy | - |
postgresql | postgresql_fdw_validator |
SELECT fdwname, fdwhandler::regproc, fdw validator::regproc, fdwoptions FROM pg_foreign_data_wrapper ORDER BY 1, 2, 3;
fdwname | fdwhandler | fdwvalidator | fdwoptions
------------+------------+------------ --------------+------------
dummy | - | - |
postgresql | - | postgresql_fdw_validator |
(2 rows)
SELECT srvname, srvoptions FROM pg_foreign_server;
@ -38,12 +38,12 @@ CREATE FOREIGN DATA WRAPPER foo VALIDATOR bar; -- ERROR
ERROR: function bar(text[], oid) does not exist
CREATE FOREIGN DATA WRAPPER foo;
\dew
List of foreign-data wrappers
Name | Owner | Validator
------------+-------------------+--------------------------
dummy | foreign_data_user | -
foo | foreign_data_user | -
postgresql | foreign_data_user | postgresql_fdw_validator
List of foreign-data wrappers
Name | Owner | Handler | Validator
------------+-------------------+---------+--------- -----------------
dummy | foreign_data_user | - | -
foo | foreign_data_user | - | -
postgresql | foreign_data_user | - | postgresql_fdw_validator
(3 rows)
CREATE FOREIGN DATA WRAPPER foo; -- duplicate
@ -51,12 +51,12 @@ ERROR: foreign-data wrapper "foo" already exists
DROP FOREIGN DATA WRAPPER foo;
CREATE FOREIGN DATA WRAPPER foo OPTIONS (testing '1');
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+-------------
dummy | foreign_data_user | - | |
foo | foreign_data_user | - | | {testing=1}
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+-------------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | - | | {testing=1}
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
DROP FOREIGN DATA WRAPPER foo;
@ -64,12 +64,12 @@ CREATE FOREIGN DATA WRAPPER foo OPTIONS (testing '1', testing '2'); -- ERROR
ERROR: option "testing" provided more than once
CREATE FOREIGN DATA WRAPPER foo OPTIONS (testing '1', another '2');
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+-----------------------
dummy | foreign_data_user | - | |
foo | foreign_data_user | - | | {testing=1,another=2}
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+-----------------------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | - | | {testing=1,another=2}
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
DROP FOREIGN DATA WRAPPER foo;
@ -80,12 +80,12 @@ HINT: Must be superuser to create a foreign-data wrapper.
RESET ROLE;
CREATE FOREIGN DATA WRAPPER foo VALIDATOR postgresql_fdw_validator;
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+---------
dummy | foreign_data_user | - | |
foo | foreign_data_user | postgresql_fdw_validator | |
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+---------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | postgresql_fdw_validator | |
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
-- ALTER FOREIGN DATA WRAPPER
@ -97,12 +97,12 @@ ALTER FOREIGN DATA WRAPPER foo VALIDATOR bar; -- ERROR
ERROR: function bar(text[], oid) does not exist
ALTER FOREIGN DATA WRAPPER foo NO VALIDATOR;
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+---------
dummy | foreign_data_user | - | |
foo | foreign_data_user | - | |
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+---------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | - | |
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
ALTER FOREIGN DATA WRAPPER foo OPTIONS (a '1', b '2');
@ -112,34 +112,34 @@ ALTER FOREIGN DATA WRAPPER foo OPTIONS (DROP c); -- ERROR
ERROR: option "c" not found
ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD x '1', DROP x);
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+-----------
dummy | foreign_data_user | - | |
foo | foreign_data_user | - | | {a=1,b=2}
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+-----------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | - | | {a=1,b=2}
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
ALTER FOREIGN DATA WRAPPER foo OPTIONS (DROP a, SET b '3', ADD c '4');
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+-----------
dummy | foreign_data_user | - | |
foo | foreign_data_user | - | | {b=3,c=4}
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+-----------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | - | | {b=3,c=4}
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
ALTER FOREIGN DATA WRAPPER foo OPTIONS (a '2');
ALTER FOREIGN DATA WRAPPER foo OPTIONS (b '4'); -- ERROR
ERROR: option "b" provided more than once
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+---------------
dummy | foreign_data_user | - | |
foo | foreign_data_user | - | | {b=3,c=4,a=2}
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+---------------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | - | | {b=3,c=4,a=2}
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
SET ROLE regress_test_role;
@ -149,12 +149,12 @@ HINT: Must be superuser to alter a foreign-data wrapper.
SET ROLE regress_test_role_super;
ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+-------------------
dummy | foreign_data_user | - | |
foo | foreign_data_user | - | | {b=3,c=4,a=2,d=5}
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+-------------------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | - | | {b=3,c=4,a=2,d=5}
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_test_role; -- ERROR
@ -168,12 +168,12 @@ ERROR: permission denied to alter foreign-data wrapper "foo"
HINT: Must be superuser to alter a foreign-data wrapper.
RESET ROLE;
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------------+--------------------------+-------------------+-------------------
dummy | foreign_data_user | - | |
foo | regress_test_role_super | - | | {b=3,c=4,a=2,d=5}
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------------+---------+--------- -----------------+-------------------+-------------------
dummy | foreign_data_user | - | - | |
foo | regress_test_role_super | - | - | | {b=3,c=4,a=2,d=5}
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
-- DROP FOREIGN DATA WRAPPER
@ -182,12 +182,12 @@ ERROR: foreign-data wrapper "nonexistent" does not exist
DROP FOREIGN DATA WRAPPER IF EXISTS nonexistent;
NOTICE: foreign-data wrapper "nonexistent" does not exist, skipping
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------------+--------------------------+-------------------+-------------------
dummy | foreign_data_user | - | |
foo | regress_test_role_super | - | | {b=3,c=4,a=2,d=5}
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------------+---------+--------- -----------------+-------------------+-------------------
dummy | foreign_data_user | - | - | |
foo | regress_test_role_super | - | - | | {b=3,c=4,a=2,d=5}
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
DROP ROLE regress_test_role_super; -- ERROR
@ -202,23 +202,23 @@ ALTER ROLE regress_test_role_super SUPERUSER;
DROP FOREIGN DATA WRAPPER foo;
DROP ROLE regress_test_role_super;
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+---------
dummy | foreign_data_user | - | |
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+---------
dummy | foreign_data_user | - | - | |
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(2 rows)
CREATE FOREIGN DATA WRAPPER foo;
CREATE SERVER s1 FOREIGN DATA WRAPPER foo;
CREATE USER MAPPING FOR current_user SERVER s1;
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+---------
dummy | foreign_data_user | - | |
foo | foreign_data_user | - | |
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+---------
dummy | foreign_data_user | - | - | |
foo | foreign_data_user | - | - | |
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(3 rows)
\des+
@ -250,11 +250,11 @@ NOTICE: drop cascades to 2 other objects
DETAIL: drop cascades to server s1
drop cascades to user mapping for foreign_data_user
\dew+
List of foreign-data wrappers
Name | Owner | Validator | Access privileges | Options
------------+-------------------+--------------------------+-------------------+---------
dummy | foreign_data_user | - | |
postgresql | foreign_data_user | postgresql_fdw_validator | |
List of foreign-data wrappers
Name | Owner | Handler | Validator | Access privileges | Options
------------+-------------------+---------+--------- -----------------+-------------------+---------
dummy | foreign_data_user | - | - | |
postgresql | foreign_data_user | - | postgresql_fdw_validator | |
(2 rows)
\des+
@ -669,6 +669,10 @@ Has OIDs: no
CREATE INDEX id_ft1_c2 ON ft1 (c2); -- ERROR
ERROR: "ft1" is not a table
SELECT * FROM ft1; -- ERROR
ERROR: foreign table scans are not yet supported
EXPLAIN SELECT * FROM ft1; -- ERROR
ERROR: foreign table scans are not yet supported
-- ALTER FOREIGN TABLE
COMMENT ON FOREIGN TABLE ft1 IS 'foreign table';
COMMENT ON FOREIGN TABLE ft1 IS NULL;
@ -1105,9 +1109,9 @@ NOTICE: drop cascades to server sc
\c
DROP ROLE foreign_data_user;
-- At this point we should have no wrappers, no servers, and no mappings.
SELECT fdwname, fdwvalidator, fdwoptions FROM pg_foreign_data_wrapper;
fdwname | fdwvalidator | fdwoptions
---------+--------------+------------
SELECT fdwname, fdwhandler, fdw validator, fdwoptions FROM pg_foreign_data_wrapper;
fdwname | fdwhandler | fdw validator | fdwoptions
---------+------------+------------ --+------------
(0 rows)
SELECT srvname, srvoptions FROM pg_foreign_server;