Skip to content

Commit 749a787

Browse files
committed
Handle contrib's GIN/GIST support function signature changes honestly.
In commits 9ff6027 and dbe2328 I (tgl) fixed the signatures of a bunch of contrib's GIN and GIST support functions so that they would pass validation by the recently-added amvalidate functions. The backend does not actually consult or check those signatures otherwise, so I figured this was basically cosmetic and did not require an extension version bump. However, Alexander Korotkov pointed out that that would leave us in a pretty messy situation if we ever wanted to redefine those functions later, because there wouldn't be a unique way to name them. Since we're going to be bumping these extensions' versions anyway for parallel-query cleanups, let's take care of this now. Andreas Karlsson, adjusted for more search-path-safety by me
1 parent b12fd41 commit 749a787

28 files changed

+230
-22
lines changed

contrib/btree_gist/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ OBJS = btree_gist.o btree_utils_num.o btree_utils_var.o btree_int2.o \
99
btree_numeric.o $(WIN32RES)
1010

1111
EXTENSION = btree_gist
12-
DATA = btree_gist--1.1.sql btree_gist--unpackaged--1.0.sql \
13-
btree_gist--1.0--1.1.sql
12+
DATA = btree_gist--1.2.sql btree_gist--1.1--1.2.sql btree_gist--1.0--1.1.sql \
13+
btree_gist--unpackaged--1.0.sql
1414
PGFILEDESC = "btree_gist - B-tree equivalent GiST operator classes"
1515

1616
REGRESS = init int2 int4 int8 float4 float8 cash oid timestamp timestamptz \
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/* contrib/btree_gist/btree_gist--1.1--1.2.sql */
2+
3+
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
4+
\echo Use "ALTER EXTENSION btree_gist UPDATE TO '1.2'" to load this file. \quit
5+
6+
-- Update procedure signatures the hard way.
7+
-- We use to_regprocedure() so that query doesn't fail if run against 9.6beta1 definitions,
8+
-- wherein the signatures have been updated already. In that case to_regprocedure() will
9+
-- return NULL and no updates will happen.
10+
11+
UPDATE pg_catalog.pg_proc SET
12+
proargtypes = pg_catalog.array_to_string(newtypes::pg_catalog.oid[], ' ')::pg_catalog.oidvector,
13+
pronargs = pg_catalog.array_length(newtypes, 1)
14+
FROM (VALUES
15+
(NULL::pg_catalog.text, NULL::pg_catalog.regtype[]), -- establish column types
16+
('gbt_oid_distance(internal,oid,int2,oid)', '{internal,oid,int2,oid,internal}'),
17+
('gbt_oid_union(bytea,internal)', '{internal,internal}'),
18+
('gbt_oid_same(internal,internal,internal)', '{gbtreekey8,gbtreekey8,internal}'),
19+
('gbt_int2_distance(internal,int2,int2,oid)', '{internal,int2,int2,oid,internal}'),
20+
('gbt_int2_union(bytea,internal)', '{internal,internal}'),
21+
('gbt_int2_same(internal,internal,internal)', '{gbtreekey4,gbtreekey4,internal}'),
22+
('gbt_int4_distance(internal,int4,int2,oid)', '{internal,int4,int2,oid,internal}'),
23+
('gbt_int4_union(bytea,internal)', '{internal,internal}'),
24+
('gbt_int4_same(internal,internal,internal)', '{gbtreekey8,gbtreekey8,internal}'),
25+
('gbt_int8_distance(internal,int8,int2,oid)', '{internal,int8,int2,oid,internal}'),
26+
('gbt_int8_union(bytea,internal)', '{internal,internal}'),
27+
('gbt_int8_same(internal,internal,internal)', '{gbtreekey16,gbtreekey16,internal}'),
28+
('gbt_float4_distance(internal,float4,int2,oid)', '{internal,float4,int2,oid,internal}'),
29+
('gbt_float4_union(bytea,internal)', '{internal,internal}'),
30+
('gbt_float4_same(internal,internal,internal)', '{gbtreekey8,gbtreekey8,internal}'),
31+
('gbt_float8_distance(internal,float8,int2,oid)', '{internal,float8,int2,oid,internal}'),
32+
('gbt_float8_union(bytea,internal)', '{internal,internal}'),
33+
('gbt_float8_same(internal,internal,internal)', '{gbtreekey16,gbtreekey16,internal}'),
34+
('gbt_ts_distance(internal,timestamp,int2,oid)', '{internal,timestamp,int2,oid,internal}'),
35+
('gbt_tstz_distance(internal,timestamptz,int2,oid)', '{internal,timestamptz,int2,oid,internal}'),
36+
('gbt_ts_union(bytea,internal)', '{internal,internal}'),
37+
('gbt_ts_same(internal,internal,internal)', '{gbtreekey16,gbtreekey16,internal}'),
38+
('gbt_time_distance(internal,time,int2,oid)', '{internal,time,int2,oid,internal}'),
39+
('gbt_time_union(bytea,internal)', '{internal,internal}'),
40+
('gbt_time_same(internal,internal,internal)', '{gbtreekey16,gbtreekey16,internal}'),
41+
('gbt_date_distance(internal,date,int2,oid)', '{internal,date,int2,oid,internal}'),
42+
('gbt_date_union(bytea,internal)', '{internal,internal}'),
43+
('gbt_date_same(internal,internal,internal)', '{gbtreekey8,gbtreekey8,internal}'),
44+
('gbt_intv_distance(internal,interval,int2,oid)', '{internal,interval,int2,oid,internal}'),
45+
('gbt_intv_union(bytea,internal)', '{internal,internal}'),
46+
('gbt_intv_same(internal,internal,internal)', '{gbtreekey32,gbtreekey32,internal}'),
47+
('gbt_cash_distance(internal,money,int2,oid)', '{internal,money,int2,oid,internal}'),
48+
('gbt_cash_union(bytea,internal)', '{internal,internal}'),
49+
('gbt_cash_same(internal,internal,internal)', '{gbtreekey16,gbtreekey16,internal}'),
50+
('gbt_macad_union(bytea,internal)', '{internal,internal}'),
51+
('gbt_macad_same(internal,internal,internal)', '{gbtreekey16,gbtreekey16,internal}'),
52+
('gbt_text_union(bytea,internal)', '{internal,internal}'),
53+
('gbt_text_same(internal,internal,internal)', '{gbtreekey_var,gbtreekey_var,internal}'),
54+
('gbt_bytea_union(bytea,internal)', '{internal,internal}'),
55+
('gbt_bytea_same(internal,internal,internal)', '{gbtreekey_var,gbtreekey_var,internal}'),
56+
('gbt_numeric_union(bytea,internal)', '{internal,internal}'),
57+
('gbt_numeric_same(internal,internal,internal)', '{gbtreekey_var,gbtreekey_var,internal}'),
58+
('gbt_bit_union(bytea,internal)', '{internal,internal}'),
59+
('gbt_bit_same(internal,internal,internal)', '{gbtreekey_var,gbtreekey_var,internal}'),
60+
('gbt_inet_union(bytea,internal)', '{internal,internal}'),
61+
('gbt_inet_same(internal,internal,internal)', '{gbtreekey16,gbtreekey16,internal}')
62+
) AS update_data (oldproc, newtypes)
63+
WHERE oid = pg_catalog.to_regprocedure(oldproc);

contrib/btree_gist/btree_gist--1.1.sql renamed to contrib/btree_gist/btree_gist--1.2.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* contrib/btree_gist/btree_gist--1.0.sql */
1+
/* contrib/btree_gist/btree_gist--1.2.sql */
22

33
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
44
\echo Use "CREATE EXTENSION btree_gist" to load this file. \quit

contrib/btree_gist/btree_gist.control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# btree_gist extension
22
comment = 'support for indexing common datatypes in GiST'
3-
default_version = '1.1'
3+
default_version = '1.2'
44
module_pathname = '$libdir/btree_gist'
55
relocatable = true

contrib/cube/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ MODULE_big = cube
44
OBJS= cube.o cubeparse.o $(WIN32RES)
55

66
EXTENSION = cube
7-
DATA = cube--1.1.sql cube--1.0--1.1.sql cube--unpackaged--1.0.sql
7+
DATA = cube--1.2.sql cube--1.1--1.2.sql cube--1.0--1.1.sql \
8+
cube--unpackaged--1.0.sql
89
PGFILEDESC = "cube - multidimensional cube data type"
910

1011
REGRESS = cube

contrib/cube/cube--1.1--1.2.sql

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* contrib/cube/cube--1.1--1.2.sql */
2+
3+
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
4+
\echo Use "ALTER EXTENSION cube UPDATE TO '1.2'" to load this file. \quit
5+
6+
-- Update procedure signatures the hard way.
7+
-- We use to_regprocedure() so that query doesn't fail if run against 9.6beta1 definitions,
8+
-- wherein the signatures have been updated already. In that case to_regprocedure() will
9+
-- return NULL and no updates will happen.
10+
11+
UPDATE pg_catalog.pg_proc SET
12+
proargtypes = pg_catalog.array_to_string(newtypes::pg_catalog.oid[], ' ')::pg_catalog.oidvector,
13+
pronargs = pg_catalog.array_length(newtypes, 1)
14+
FROM (VALUES
15+
(NULL::pg_catalog.text, NULL::pg_catalog.regtype[]), -- establish column types
16+
('g_cube_consistent(internal,cube,int4,oid,internal)', '{internal,cube,int2,oid,internal}'),
17+
('g_cube_distance(internal,cube,smallint,oid)', '{internal,cube,smallint,oid,internal}')
18+
) AS update_data (oldproc, newtypes)
19+
WHERE oid = pg_catalog.to_regprocedure(oldproc);

contrib/cube/cube--1.1.sql renamed to contrib/cube/cube--1.2.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* contrib/cube/cube--1.1.sql */
1+
/* contrib/cube/cube--1.2.sql */
22

33
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
44
\echo Use "CREATE EXTENSION cube" to load this file. \quit

contrib/cube/cube.control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# cube extension
22
comment = 'data type for multidimensional cubes'
3-
default_version = '1.1'
3+
default_version = '1.2'
44
module_pathname = '$libdir/cube'
55
relocatable = true

contrib/hstore/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ OBJS = hstore_io.o hstore_op.o hstore_gist.o hstore_gin.o hstore_compat.o \
55
$(WIN32RES)
66

77
EXTENSION = hstore
8-
DATA = hstore--1.3.sql hstore--1.2--1.3.sql \
8+
DATA = hstore--1.4.sql hstore--1.3--1.4.sql hstore--1.2--1.3.sql \
99
hstore--1.1--1.2.sql hstore--1.0--1.1.sql \
1010
hstore--unpackaged--1.0.sql
1111
PGFILEDESC = "hstore - key/value pair data type"

contrib/hstore/hstore--1.3--1.4.sql

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/* contrib/hstore/hstore--1.3--1.4.sql */
2+
3+
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
4+
\echo Use "ALTER EXTENSION hstore UPDATE TO '1.4'" to load this file. \quit
5+
6+
-- Update procedure signatures the hard way.
7+
-- We use to_regprocedure() so that query doesn't fail if run against 9.6beta1 definitions,
8+
-- wherein the signatures have been updated already. In that case to_regprocedure() will
9+
-- return NULL and no updates will happen.
10+
11+
UPDATE pg_catalog.pg_proc SET
12+
proargtypes = pg_catalog.array_to_string(newtypes::pg_catalog.oid[], ' ')::pg_catalog.oidvector,
13+
pronargs = pg_catalog.array_length(newtypes, 1)
14+
FROM (VALUES
15+
(NULL::pg_catalog.text, NULL::pg_catalog.regtype[]), -- establish column types
16+
('ghstore_same(internal,internal,internal)', '{ghstore,ghstore,internal}'),
17+
('ghstore_consistent(internal,internal,int4,oid,internal)', '{internal,hstore,int2,oid,internal}'),
18+
('gin_extract_hstore(internal,internal)', '{hstore,internal}'),
19+
('gin_extract_hstore_query(internal,internal,int2,internal,internal)', '{hstore,internal,int2,internal,internal}'),
20+
('gin_consistent_hstore(internal,int2,internal,int4,internal,internal)', '{internal,int2,hstore,int4,internal,internal}')
21+
) AS update_data (oldproc, newtypes)
22+
WHERE oid = pg_catalog.to_regprocedure(oldproc);
23+
24+
UPDATE pg_catalog.pg_proc SET
25+
prorettype = 'ghstore'::pg_catalog.regtype
26+
WHERE oid = pg_catalog.to_regprocedure('ghstore_union(internal,internal)');

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy