@@ -89,6 +89,14 @@ CREATE FOREIGN DATA WRAPPER foo VALIDATOR postgresql_fdw_validator;
89
89
postgresql | regress_foreign_data_user | - | postgresql_fdw_validator | | |
90
90
(3 rows)
91
91
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;
92
100
-- ALTER FOREIGN DATA WRAPPER
93
101
ALTER FOREIGN DATA WRAPPER foo; -- ERROR
94
102
ERROR: syntax error at or near ";"
@@ -188,18 +196,26 @@ ALTER FOREIGN DATA WRAPPER foo RENAME TO foo1;
188
196
(3 rows)
189
197
190
198
ALTER 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();
191
207
-- DROP FOREIGN DATA WRAPPER
192
208
DROP FOREIGN DATA WRAPPER nonexistent; -- ERROR
193
209
ERROR: foreign-data wrapper "nonexistent" does not exist
194
210
DROP FOREIGN DATA WRAPPER IF EXISTS nonexistent;
195
211
NOTICE: foreign-data wrapper "nonexistent" does not exist, skipping
196
212
\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 | | |
203
219
(3 rows)
204
220
205
221
DROP ROLE regress_test_role_super; -- ERROR
0 commit comments