mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-01 04:57:25 +02:00
Solve cross-version-upgrade testing problem induced by 1fb57af92
.
Renaming varchar_transform to varchar_support had a side effect I hadn't foreseen: the core regression tests leave around a transform object that relies on that function, so the name change breaks cross-version upgrade tests, because the name used in the older branches doesn't match. Since the dependency on varchar_transform was chosen with the aid of a dartboard anyway (it would surely not work as a language transform support function), fix by just choosing a different random builtin function with the right signature. Also add some comments explaining why this isn't horribly unsafe. I chose to make the same substitution in a couple of other copied-and-pasted test cases, for consistency, though those aren't directly contributing to the testing problem. Per buildfarm. Back-patch, else it doesn't fix the problem.
This commit is contained in:
parent
ef9bf35936
commit
ee6370978f
@ -1936,9 +1936,9 @@ my %tests = (
|
|||||||
'CREATE TRANSFORM FOR int' => {
|
'CREATE TRANSFORM FOR int' => {
|
||||||
create_order => 34,
|
create_order => 34,
|
||||||
create_sql =>
|
create_sql =>
|
||||||
'CREATE TRANSFORM FOR int LANGUAGE SQL (FROM SQL WITH FUNCTION varchar_transform(internal), TO SQL WITH FUNCTION int4recv(internal));',
|
'CREATE TRANSFORM FOR int LANGUAGE SQL (FROM SQL WITH FUNCTION prsd_lextype(internal), TO SQL WITH FUNCTION int4recv(internal));',
|
||||||
regexp =>
|
regexp =>
|
||||||
qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog\.varchar_transform\(internal\), TO SQL WITH FUNCTION pg_catalog\.int4recv\(internal\)\);/m,
|
qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog\.prsd_lextype\(internal\), TO SQL WITH FUNCTION pg_catalog\.int4recv\(internal\)\);/m,
|
||||||
like => { %full_runs, section_pre_data => 1, },
|
like => { %full_runs, section_pre_data => 1, },
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -5,9 +5,11 @@
|
|||||||
-- The function FROM SQL should have internal as single argument as well
|
-- The function FROM SQL should have internal as single argument as well
|
||||||
-- as return type. The function TO SQL should have as single argument
|
-- as return type. The function TO SQL should have as single argument
|
||||||
-- internal and as return argument the datatype of the transform done.
|
-- internal and as return argument the datatype of the transform done.
|
||||||
-- pl/plpgsql does not authorize the use of internal as data type.
|
-- We choose some random built-in functions that have the right signature.
|
||||||
|
-- This won't actually be used, because the SQL function language
|
||||||
|
-- doesn't implement transforms (there would be no point).
|
||||||
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
||||||
FROM SQL WITH FUNCTION varchar_transform(internal),
|
FROM SQL WITH FUNCTION prsd_lextype(internal),
|
||||||
TO SQL WITH FUNCTION int4recv(internal));
|
TO SQL WITH FUNCTION int4recv(internal));
|
||||||
NOTICE: DDL test: type simple, tag CREATE TRANSFORM
|
NOTICE: DDL test: type simple, tag CREATE TRANSFORM
|
||||||
DROP TRANSFORM FOR int LANGUAGE SQL;
|
DROP TRANSFORM FOR int LANGUAGE SQL;
|
||||||
|
@ -6,9 +6,11 @@
|
|||||||
-- The function FROM SQL should have internal as single argument as well
|
-- The function FROM SQL should have internal as single argument as well
|
||||||
-- as return type. The function TO SQL should have as single argument
|
-- as return type. The function TO SQL should have as single argument
|
||||||
-- internal and as return argument the datatype of the transform done.
|
-- internal and as return argument the datatype of the transform done.
|
||||||
-- pl/plpgsql does not authorize the use of internal as data type.
|
-- We choose some random built-in functions that have the right signature.
|
||||||
|
-- This won't actually be used, because the SQL function language
|
||||||
|
-- doesn't implement transforms (there would be no point).
|
||||||
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
||||||
FROM SQL WITH FUNCTION varchar_transform(internal),
|
FROM SQL WITH FUNCTION prsd_lextype(internal),
|
||||||
TO SQL WITH FUNCTION int4recv(internal));
|
TO SQL WITH FUNCTION int4recv(internal));
|
||||||
|
|
||||||
DROP TRANSFORM FOR int LANGUAGE SQL;
|
DROP TRANSFORM FOR int LANGUAGE SQL;
|
||||||
|
@ -37,8 +37,10 @@ CREATE SERVER "integer" FOREIGN DATA WRAPPER addr_fdw;
|
|||||||
CREATE USER MAPPING FOR regress_addr_user SERVER "integer";
|
CREATE USER MAPPING FOR regress_addr_user SERVER "integer";
|
||||||
ALTER DEFAULT PRIVILEGES FOR ROLE regress_addr_user IN SCHEMA public GRANT ALL ON TABLES TO regress_addr_user;
|
ALTER DEFAULT PRIVILEGES FOR ROLE regress_addr_user IN SCHEMA public GRANT ALL ON TABLES TO regress_addr_user;
|
||||||
ALTER DEFAULT PRIVILEGES FOR ROLE regress_addr_user REVOKE DELETE ON TABLES FROM regress_addr_user;
|
ALTER DEFAULT PRIVILEGES FOR ROLE regress_addr_user REVOKE DELETE ON TABLES FROM regress_addr_user;
|
||||||
|
-- this transform would be quite unsafe to leave lying around,
|
||||||
|
-- except that the SQL language pays no attention to transforms:
|
||||||
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
||||||
FROM SQL WITH FUNCTION varchar_transform(internal),
|
FROM SQL WITH FUNCTION prsd_lextype(internal),
|
||||||
TO SQL WITH FUNCTION int4recv(internal));
|
TO SQL WITH FUNCTION int4recv(internal));
|
||||||
CREATE PUBLICATION addr_pub FOR TABLE addr_nsp.gentable;
|
CREATE PUBLICATION addr_pub FOR TABLE addr_nsp.gentable;
|
||||||
CREATE SUBSCRIPTION addr_sub CONNECTION '' PUBLICATION bar WITH (connect = false, slot_name = NONE);
|
CREATE SUBSCRIPTION addr_sub CONNECTION '' PUBLICATION bar WITH (connect = false, slot_name = NONE);
|
||||||
|
@ -40,8 +40,10 @@ CREATE SERVER "integer" FOREIGN DATA WRAPPER addr_fdw;
|
|||||||
CREATE USER MAPPING FOR regress_addr_user SERVER "integer";
|
CREATE USER MAPPING FOR regress_addr_user SERVER "integer";
|
||||||
ALTER DEFAULT PRIVILEGES FOR ROLE regress_addr_user IN SCHEMA public GRANT ALL ON TABLES TO regress_addr_user;
|
ALTER DEFAULT PRIVILEGES FOR ROLE regress_addr_user IN SCHEMA public GRANT ALL ON TABLES TO regress_addr_user;
|
||||||
ALTER DEFAULT PRIVILEGES FOR ROLE regress_addr_user REVOKE DELETE ON TABLES FROM regress_addr_user;
|
ALTER DEFAULT PRIVILEGES FOR ROLE regress_addr_user REVOKE DELETE ON TABLES FROM regress_addr_user;
|
||||||
|
-- this transform would be quite unsafe to leave lying around,
|
||||||
|
-- except that the SQL language pays no attention to transforms:
|
||||||
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
||||||
FROM SQL WITH FUNCTION varchar_transform(internal),
|
FROM SQL WITH FUNCTION prsd_lextype(internal),
|
||||||
TO SQL WITH FUNCTION int4recv(internal));
|
TO SQL WITH FUNCTION int4recv(internal));
|
||||||
CREATE PUBLICATION addr_pub FOR TABLE addr_nsp.gentable;
|
CREATE PUBLICATION addr_pub FOR TABLE addr_nsp.gentable;
|
||||||
CREATE SUBSCRIPTION addr_sub CONNECTION '' PUBLICATION bar WITH (connect = false, slot_name = NONE);
|
CREATE SUBSCRIPTION addr_sub CONNECTION '' PUBLICATION bar WITH (connect = false, slot_name = NONE);
|
||||||
|
Loading…
Reference in New Issue
Block a user