@@ -89,6 +89,14 @@ CREATE FOREIGN DATA WRAPPER foo VALIDATOR postgresql_fdw_validator;
8989 postgresql | regress_foreign_data_user | - | postgresql_fdw_validator | | |
9090(3 rows)
9191
92+ -- HANDLER related checks
93+ CREATE FUNCTION invalid_fdw_handler() RETURNS int LANGUAGE SQL AS 'SELECT 1;';
94+ CREATE FOREIGN DATA WRAPPER test_fdw HANDLER invalid_fdw_handler; -- ERROR
95+ ERROR: function invalid_fdw_handler must return type fdw_handler
96+ CREATE FOREIGN DATA WRAPPER test_fdw HANDLER test_fdw_handler HANDLER invalid_fdw_handler; -- ERROR
97+ ERROR: conflicting or redundant options
98+ CREATE FOREIGN DATA WRAPPER test_fdw HANDLER test_fdw_handler;
99+ DROP FOREIGN DATA WRAPPER test_fdw;
92100-- ALTER FOREIGN DATA WRAPPER
93101ALTER FOREIGN DATA WRAPPER foo; -- ERROR
94102ERROR: syntax error at or near ";"
@@ -188,18 +196,26 @@ ALTER FOREIGN DATA WRAPPER foo RENAME TO foo1;
188196(3 rows)
189197
190198ALTER FOREIGN DATA WRAPPER foo1 RENAME TO foo;
199+ -- HANDLER related checks
200+ ALTER FOREIGN DATA WRAPPER foo HANDLER invalid_fdw_handler; -- ERROR
201+ ERROR: function invalid_fdw_handler must return type fdw_handler
202+ ALTER FOREIGN DATA WRAPPER foo HANDLER test_fdw_handler HANDLER anything; -- ERROR
203+ ERROR: conflicting or redundant options
204+ ALTER FOREIGN DATA WRAPPER foo HANDLER test_fdw_handler;
205+ WARNING: changing the foreign-data wrapper handler can change behavior of existing foreign tables
206+ DROP FUNCTION invalid_fdw_handler();
191207-- DROP FOREIGN DATA WRAPPER
192208DROP FOREIGN DATA WRAPPER nonexistent; -- ERROR
193209ERROR: foreign-data wrapper "nonexistent" does not exist
194210DROP FOREIGN DATA WRAPPER IF EXISTS nonexistent;
195211NOTICE: foreign-data wrapper "nonexistent" does not exist, skipping
196212\dew+
197- List of foreign-data wrappers
198- Name | Owner | Handler | Validator | Access privileges | FDW options | Description
199- ------------+---------------------------+---------+--------------------------+-------------------+------------------------------+-------------
200- dummy | regress_foreign_data_user | - | - | | | useless
201- foo | regress_test_role_super | - | - | | (b '3', c '4', a '2', d '5') |
202- postgresql | regress_foreign_data_user | - | postgresql_fdw_validator | | |
213+ List of foreign-data wrappers
214+ Name | Owner | Handler | Validator | Access privileges | FDW options | Description
215+ ------------+---------------------------+------------------ +--------------------------+-------------------+------------------------------+-------------
216+ dummy | regress_foreign_data_user | - | - | | | useless
217+ foo | regress_test_role_super | test_fdw_handler | - | | (b '3', c '4', a '2', d '5') |
218+ postgresql | regress_foreign_data_user | - | postgresql_fdw_validator | | |
203219(3 rows)
204220
205221DROP ROLE regress_test_role_super; -- ERROR
0 commit comments