@@ -32,6 +32,9 @@ CREATE SERVER "integer" FOREIGN DATA WRAPPER addr_fdw;
3232CREATE USER MAPPING FOR regtest_addr_user SERVER "integer";
3333ALTER DEFAULT PRIVILEGES FOR ROLE regtest_addr_user IN SCHEMA public GRANT ALL ON TABLES TO regtest_addr_user;
3434ALTER 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));
3538-- test some error cases
3639SELECT pg_get_object_address('stone', '{}', '{}');
3740ERROR: unrecognized object type "stone"
7679 ('operator'), ('operator class'), ('operator family'), ('rule'), ('trigger'),
7780 ('text search parser'), ('text search dictionary'),
7881 ('text search template'), ('text search configuration'),
79- ('policy'), ('user mapping'), ('default acl'),
82+ ('policy'), ('user mapping'), ('default acl'), ('transform'),
8083 ('operator of access method'), ('function of access method')
8184 LOOP
8285 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
261264WARNING: error for default acl,{addr_nsp,zwei},{integer}: unrecognized default ACL object type i
262265WARNING: error for default acl,{eins,zwei,drei},{}: argument list length must be exactly 1
263266WARNING: 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
264273WARNING: error for operator of access method,{eins},{}: name list length must be at least 3
265274WARNING: error for operator of access method,{eins},{integer}: name list length must be at least 3
266275WARNING: 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
363372 ('default acl', '{regtest_addr_user}', '{r}'),
364373 -- extension
365374 -- event trigger
366- ('policy', '{addr_nsp, gentable, genpol}', '{}')
375+ ('policy', '{addr_nsp, gentable, genpol}', '{}'),
376+ ('transform', '{int}', '{sql}')
367377 )
368378SELECT (pg_identify_object(addr1.classid, addr1.objid, addr1.subobjid)).*,
369379 -- test roundtrip through pg_identify_object_as_address
@@ -411,11 +421,12 @@ SELECT (pg_identify_object(addr1.classid, addr1.objid, addr1.subobjid)).*,
411421 operator family | pg_catalog | integer_ops | pg_catalog.integer_ops USING btree | t
412422 policy | | | genpol on addr_nsp.gentable | t
413423 collation | pg_catalog | "default" | pg_catalog."default" | t
424+ transform | | | for integer on language sql | t
414425 text search dictionary | addr_nsp | addr_ts_dict | addr_nsp.addr_ts_dict | t
415426 text search parser | addr_nsp | addr_ts_prs | addr_nsp.addr_ts_prs | t
416427 text search configuration | addr_nsp | addr_ts_conf | addr_nsp.addr_ts_conf | t
417428 text search template | addr_nsp | addr_ts_temp | addr_nsp.addr_ts_temp | t
418- (40 rows)
429+ (41 rows)
419430
420431---
421432--- Cleanup resources
0 commit comments