@@ -32,6 +32,9 @@ CREATE SERVER "integer" FOREIGN DATA WRAPPER addr_fdw;
32
32
CREATE USER MAPPING FOR regtest_addr_user SERVER "integer";
33
33
ALTER DEFAULT PRIVILEGES FOR ROLE regtest_addr_user IN SCHEMA public GRANT ALL ON TABLES TO regtest_addr_user;
34
34
ALTER DEFAULT PRIVILEGES FOR ROLE regtest_addr_user REVOKE DELETE ON TABLES FROM regtest_addr_user;
35
+ CREATE TRANSFORM FOR int LANGUAGE SQL (
36
+ FROM SQL WITH FUNCTION varchar_transform(internal),
37
+ TO SQL WITH FUNCTION int4recv(internal));
35
38
-- test some error cases
36
39
SELECT pg_get_object_address('stone', '{}', '{}');
37
40
ERROR: unrecognized object type "stone"
76
79
('operator'), ('operator class'), ('operator family'), ('rule'), ('trigger'),
77
80
('text search parser'), ('text search dictionary'),
78
81
('text search template'), ('text search configuration'),
79
- ('policy'), ('user mapping'), ('default acl'),
82
+ ('policy'), ('user mapping'), ('default acl'), ('transform'),
80
83
('operator of access method'), ('function of access method')
81
84
LOOP
82
85
FOR names IN VALUES ('{eins}'), ('{addr_nsp, zwei}'), ('{eins, zwei, drei}')
@@ -261,6 +264,12 @@ WARNING: error for default acl,{addr_nsp,zwei},{}: argument list length must be
261
264
WARNING: error for default acl,{addr_nsp,zwei},{integer}: unrecognized default ACL object type i
262
265
WARNING: error for default acl,{eins,zwei,drei},{}: argument list length must be exactly 1
263
266
WARNING: error for default acl,{eins,zwei,drei},{integer}: unrecognized default ACL object type i
267
+ WARNING: error for transform,{eins},{}: argument list length must be exactly 1
268
+ WARNING: error for transform,{eins},{integer}: type "eins" does not exist
269
+ WARNING: error for transform,{addr_nsp,zwei},{}: name list length must be exactly 1
270
+ WARNING: error for transform,{addr_nsp,zwei},{integer}: name list length must be exactly 1
271
+ WARNING: error for transform,{eins,zwei,drei},{}: name list length must be exactly 1
272
+ WARNING: error for transform,{eins,zwei,drei},{integer}: name list length must be exactly 1
264
273
WARNING: error for operator of access method,{eins},{}: name list length must be at least 3
265
274
WARNING: error for operator of access method,{eins},{integer}: name list length must be at least 3
266
275
WARNING: error for operator of access method,{addr_nsp,zwei},{}: name list length must be at least 3
@@ -363,7 +372,8 @@ WITH objects (type, name, args) AS (VALUES
363
372
('default acl', '{regtest_addr_user}', '{r}'),
364
373
-- extension
365
374
-- event trigger
366
- ('policy', '{addr_nsp, gentable, genpol}', '{}')
375
+ ('policy', '{addr_nsp, gentable, genpol}', '{}'),
376
+ ('transform', '{int}', '{sql}')
367
377
)
368
378
SELECT (pg_identify_object(addr1.classid, addr1.objid, addr1.subobjid)).*,
369
379
-- test roundtrip through pg_identify_object_as_address
@@ -411,11 +421,12 @@ SELECT (pg_identify_object(addr1.classid, addr1.objid, addr1.subobjid)).*,
411
421
operator family | pg_catalog | integer_ops | pg_catalog.integer_ops USING btree | t
412
422
policy | | | genpol on addr_nsp.gentable | t
413
423
collation | pg_catalog | "default" | pg_catalog."default" | t
424
+ transform | | | for integer on language sql | t
414
425
text search dictionary | addr_nsp | addr_ts_dict | addr_nsp.addr_ts_dict | t
415
426
text search parser | addr_nsp | addr_ts_prs | addr_nsp.addr_ts_prs | t
416
427
text search configuration | addr_nsp | addr_ts_conf | addr_nsp.addr_ts_conf | t
417
428
text search template | addr_nsp | addr_ts_temp | addr_nsp.addr_ts_temp | t
418
- (40 rows)
429
+ (41 rows)
419
430
420
431
---
421
432
--- Cleanup resources
0 commit comments