Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit d98c08c

Browse files
committed
Update btree_gist extension for parallel query
All functions provided by this extension are PARALLEL SAFE. Discussion: https://postgr.es/m/AM5PR0901MB1587E47B1ACF23C6089DFCA3FD9B0%40AM5PR0901MB1587.eurprd09.prod.outlook.com Author: Steven Winfield
1 parent c3fe108 commit d98c08c

File tree

3 files changed

+194
-2
lines changed

3 files changed

+194
-2
lines changed

contrib/btree_gist/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ OBJS = \
3131
EXTENSION = btree_gist
3232
DATA = btree_gist--1.0--1.1.sql \
3333
btree_gist--1.1--1.2.sql btree_gist--1.2.sql btree_gist--1.2--1.3.sql \
34-
btree_gist--1.3--1.4.sql btree_gist--1.4--1.5.sql
34+
btree_gist--1.3--1.4.sql btree_gist--1.4--1.5.sql \
35+
btree_gist--1.5--1.6.sql
3536
PGFILEDESC = "btree_gist - B-tree equivalent GiST operator classes"
3637

3738
REGRESS = init int2 int4 int8 float4 float8 cash oid timestamp timestamptz \
Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
/* contrib/btree_gist/btree_gist--1.5--1.6.sql */
2+
3+
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
4+
\echo Use "ALTER EXTENSION btree_gist UPDATE TO '1.6'" to load this file. \quit
5+
6+
-- This upgrade script marks all btree_gist functions as parallel safe.
7+
8+
-- Input/output functions for GiST key types (gbtreekey*)
9+
ALTER FUNCTION gbtreekey4_in(cstring) PARALLEL SAFE;
10+
ALTER FUNCTION gbtreekey4_out(gbtreekey4) PARALLEL SAFE;
11+
ALTER FUNCTION gbtreekey8_in(cstring) PARALLEL SAFE;
12+
ALTER FUNCTION gbtreekey8_out(gbtreekey8) PARALLEL SAFE;
13+
ALTER FUNCTION gbtreekey16_in(cstring) PARALLEL SAFE;
14+
ALTER FUNCTION gbtreekey16_out(gbtreekey16) PARALLEL SAFE;
15+
ALTER FUNCTION gbtreekey32_in(cstring) PARALLEL SAFE;
16+
ALTER FUNCTION gbtreekey32_out(gbtreekey32) PARALLEL SAFE;
17+
ALTER FUNCTION gbtreekey_var_in(cstring) PARALLEL SAFE;
18+
ALTER FUNCTION gbtreekey_var_out(gbtreekey_var) PARALLEL SAFE;
19+
20+
-- Functions, which implement distance operators (<->)
21+
ALTER FUNCTION cash_dist(money, money) PARALLEL SAFE;
22+
ALTER FUNCTION date_dist(date, date) PARALLEL SAFE;
23+
ALTER FUNCTION float4_dist(real, real) PARALLEL SAFE;
24+
ALTER FUNCTION float8_dist(double precision, double precision) PARALLEL SAFE;
25+
ALTER FUNCTION int2_dist(smallint, smallint) PARALLEL SAFE;
26+
ALTER FUNCTION int4_dist(integer, integer) PARALLEL SAFE;
27+
ALTER FUNCTION int8_dist(bigint, bigint) PARALLEL SAFE;
28+
ALTER FUNCTION interval_dist(interval, interval) PARALLEL SAFE;
29+
ALTER FUNCTION oid_dist(oid, oid) PARALLEL SAFE;
30+
ALTER FUNCTION time_dist(time without time zone, time without time zone) PARALLEL SAFE;
31+
ALTER FUNCTION ts_dist(timestamp without time zone, timestamp without time zone) PARALLEL SAFE;
32+
ALTER FUNCTION tstz_dist(timestamp with time zone, timestamp with time zone) PARALLEL SAFE;
33+
34+
-- GiST support methods
35+
ALTER FUNCTION gbt_oid_consistent(internal, oid, smallint, oid, internal) PARALLEL SAFE;
36+
ALTER FUNCTION gbt_oid_distance(internal, oid, smallint, oid, internal) PARALLEL SAFE;
37+
ALTER FUNCTION gbt_oid_fetch(internal) PARALLEL SAFE;
38+
ALTER FUNCTION gbt_oid_compress(internal) PARALLEL SAFE;
39+
ALTER FUNCTION gbt_decompress(internal) PARALLEL SAFE;
40+
ALTER FUNCTION gbt_var_decompress(internal) PARALLEL SAFE;
41+
ALTER FUNCTION gbt_var_fetch(internal) PARALLEL SAFE;
42+
ALTER FUNCTION gbt_oid_penalty(internal, internal, internal) PARALLEL SAFE;
43+
ALTER FUNCTION gbt_oid_picksplit(internal, internal) PARALLEL SAFE;
44+
ALTER FUNCTION gbt_oid_union(internal, internal) PARALLEL SAFE;
45+
ALTER FUNCTION gbt_oid_same(gbtreekey8, gbtreekey8, internal) PARALLEL SAFE;
46+
ALTER FUNCTION gbt_int2_consistent(internal, smallint, smallint, oid, internal) PARALLEL SAFE;
47+
ALTER FUNCTION gbt_int2_distance(internal, smallint, smallint, oid, internal) PARALLEL SAFE;
48+
ALTER FUNCTION gbt_int2_compress(internal) PARALLEL SAFE;
49+
ALTER FUNCTION gbt_int2_fetch(internal) PARALLEL SAFE;
50+
ALTER FUNCTION gbt_int2_penalty(internal, internal, internal) PARALLEL SAFE;
51+
ALTER FUNCTION gbt_int2_picksplit(internal, internal) PARALLEL SAFE;
52+
ALTER FUNCTION gbt_int2_union(internal, internal) PARALLEL SAFE;
53+
ALTER FUNCTION gbt_int2_same(gbtreekey4, gbtreekey4, internal) PARALLEL SAFE;
54+
ALTER FUNCTION gbt_int4_consistent(internal, integer, smallint, oid, internal) PARALLEL SAFE;
55+
ALTER FUNCTION gbt_int4_distance(internal, integer, smallint, oid, internal) PARALLEL SAFE;
56+
ALTER FUNCTION gbt_int4_compress(internal) PARALLEL SAFE;
57+
ALTER FUNCTION gbt_int4_fetch(internal) PARALLEL SAFE;
58+
ALTER FUNCTION gbt_int4_penalty(internal, internal, internal) PARALLEL SAFE;
59+
ALTER FUNCTION gbt_int4_picksplit(internal, internal) PARALLEL SAFE;
60+
ALTER FUNCTION gbt_int4_union(internal, internal) PARALLEL SAFE;
61+
ALTER FUNCTION gbt_int4_same(gbtreekey8, gbtreekey8, internal) PARALLEL SAFE;
62+
ALTER FUNCTION gbt_int8_consistent(internal, bigint, smallint, oid, internal) PARALLEL SAFE;
63+
ALTER FUNCTION gbt_int8_distance(internal, bigint, smallint, oid, internal) PARALLEL SAFE;
64+
ALTER FUNCTION gbt_int8_compress(internal) PARALLEL SAFE;
65+
ALTER FUNCTION gbt_int8_fetch(internal) PARALLEL SAFE;
66+
ALTER FUNCTION gbt_int8_penalty(internal, internal, internal) PARALLEL SAFE;
67+
ALTER FUNCTION gbt_int8_picksplit(internal, internal) PARALLEL SAFE;
68+
ALTER FUNCTION gbt_int8_union(internal, internal) PARALLEL SAFE;
69+
ALTER FUNCTION gbt_int8_same(gbtreekey16, gbtreekey16, internal) PARALLEL SAFE;
70+
ALTER FUNCTION gbt_float4_consistent(internal, real, smallint, oid, internal) PARALLEL SAFE;
71+
ALTER FUNCTION gbt_float4_distance(internal, real, smallint, oid, internal) PARALLEL SAFE;
72+
ALTER FUNCTION gbt_float4_compress(internal) PARALLEL SAFE;
73+
ALTER FUNCTION gbt_float4_fetch(internal) PARALLEL SAFE;
74+
ALTER FUNCTION gbt_float4_penalty(internal, internal, internal) PARALLEL SAFE;
75+
ALTER FUNCTION gbt_float4_picksplit(internal, internal) PARALLEL SAFE;
76+
ALTER FUNCTION gbt_float4_union(internal, internal) PARALLEL SAFE;
77+
ALTER FUNCTION gbt_float4_same(gbtreekey8, gbtreekey8, internal) PARALLEL SAFE;
78+
ALTER FUNCTION gbt_float8_consistent(internal, double precision, smallint, oid, internal) PARALLEL SAFE;
79+
ALTER FUNCTION gbt_float8_distance(internal, double precision, smallint, oid, internal) PARALLEL SAFE;
80+
ALTER FUNCTION gbt_float8_compress(internal) PARALLEL SAFE;
81+
ALTER FUNCTION gbt_float8_fetch(internal) PARALLEL SAFE;
82+
ALTER FUNCTION gbt_float8_penalty(internal, internal, internal) PARALLEL SAFE;
83+
ALTER FUNCTION gbt_float8_picksplit(internal, internal) PARALLEL SAFE;
84+
ALTER FUNCTION gbt_float8_union(internal, internal) PARALLEL SAFE;
85+
ALTER FUNCTION gbt_float8_same(gbtreekey16, gbtreekey16, internal) PARALLEL SAFE;
86+
ALTER FUNCTION gbt_ts_consistent(internal, timestamp without time zone, smallint, oid, internal) PARALLEL SAFE;
87+
ALTER FUNCTION gbt_ts_distance(internal, timestamp without time zone, smallint, oid, internal) PARALLEL SAFE;
88+
ALTER FUNCTION gbt_tstz_consistent(internal, timestamp with time zone, smallint, oid, internal) PARALLEL SAFE;
89+
ALTER FUNCTION gbt_tstz_distance(internal, timestamp with time zone, smallint, oid, internal) PARALLEL SAFE;
90+
ALTER FUNCTION gbt_ts_compress(internal) PARALLEL SAFE;
91+
ALTER FUNCTION gbt_tstz_compress(internal) PARALLEL SAFE;
92+
ALTER FUNCTION gbt_ts_fetch(internal) PARALLEL SAFE;
93+
ALTER FUNCTION gbt_ts_penalty(internal, internal, internal) PARALLEL SAFE;
94+
ALTER FUNCTION gbt_ts_picksplit(internal, internal) PARALLEL SAFE;
95+
ALTER FUNCTION gbt_ts_union(internal, internal) PARALLEL SAFE;
96+
ALTER FUNCTION gbt_ts_same(gbtreekey16, gbtreekey16, internal) PARALLEL SAFE;
97+
ALTER FUNCTION gbt_time_consistent(internal, time without time zone, smallint, oid, internal) PARALLEL SAFE;
98+
ALTER FUNCTION gbt_time_distance(internal, time without time zone, smallint, oid, internal) PARALLEL SAFE;
99+
ALTER FUNCTION gbt_timetz_consistent(internal, time with time zone, smallint, oid, internal) PARALLEL SAFE;
100+
ALTER FUNCTION gbt_time_compress(internal) PARALLEL SAFE;
101+
ALTER FUNCTION gbt_timetz_compress(internal) PARALLEL SAFE;
102+
ALTER FUNCTION gbt_time_fetch(internal) PARALLEL SAFE;
103+
ALTER FUNCTION gbt_time_penalty(internal, internal, internal) PARALLEL SAFE;
104+
ALTER FUNCTION gbt_time_picksplit(internal, internal) PARALLEL SAFE;
105+
ALTER FUNCTION gbt_time_union(internal, internal) PARALLEL SAFE;
106+
ALTER FUNCTION gbt_time_same(gbtreekey16, gbtreekey16, internal) PARALLEL SAFE;
107+
ALTER FUNCTION gbt_date_consistent(internal, date, smallint, oid, internal) PARALLEL SAFE;
108+
ALTER FUNCTION gbt_date_distance(internal, date, smallint, oid, internal) PARALLEL SAFE;
109+
ALTER FUNCTION gbt_date_compress(internal) PARALLEL SAFE;
110+
ALTER FUNCTION gbt_date_fetch(internal) PARALLEL SAFE;
111+
ALTER FUNCTION gbt_date_penalty(internal, internal, internal) PARALLEL SAFE;
112+
ALTER FUNCTION gbt_date_picksplit(internal, internal) PARALLEL SAFE;
113+
ALTER FUNCTION gbt_date_union(internal, internal) PARALLEL SAFE;
114+
ALTER FUNCTION gbt_date_same(gbtreekey8, gbtreekey8, internal) PARALLEL SAFE;
115+
ALTER FUNCTION gbt_intv_consistent(internal, interval, smallint, oid, internal) PARALLEL SAFE;
116+
ALTER FUNCTION gbt_intv_distance(internal, interval, smallint, oid, internal) PARALLEL SAFE;
117+
ALTER FUNCTION gbt_intv_compress(internal) PARALLEL SAFE;
118+
ALTER FUNCTION gbt_intv_decompress(internal) PARALLEL SAFE;
119+
ALTER FUNCTION gbt_intv_fetch(internal) PARALLEL SAFE;
120+
ALTER FUNCTION gbt_intv_penalty(internal, internal, internal) PARALLEL SAFE;
121+
ALTER FUNCTION gbt_intv_picksplit(internal, internal) PARALLEL SAFE;
122+
ALTER FUNCTION gbt_intv_union(internal, internal) PARALLEL SAFE;
123+
ALTER FUNCTION gbt_intv_same(gbtreekey32, gbtreekey32, internal) PARALLEL SAFE;
124+
ALTER FUNCTION gbt_cash_consistent(internal, money, smallint, oid, internal) PARALLEL SAFE;
125+
ALTER FUNCTION gbt_cash_distance(internal, money, smallint, oid, internal) PARALLEL SAFE;
126+
ALTER FUNCTION gbt_cash_compress(internal) PARALLEL SAFE;
127+
ALTER FUNCTION gbt_cash_fetch(internal) PARALLEL SAFE;
128+
ALTER FUNCTION gbt_cash_penalty(internal, internal, internal) PARALLEL SAFE;
129+
ALTER FUNCTION gbt_cash_picksplit(internal, internal) PARALLEL SAFE;
130+
ALTER FUNCTION gbt_cash_union(internal, internal) PARALLEL SAFE;
131+
ALTER FUNCTION gbt_cash_same(gbtreekey16, gbtreekey16, internal) PARALLEL SAFE;
132+
ALTER FUNCTION gbt_macad_consistent(internal, macaddr, smallint, oid, internal) PARALLEL SAFE;
133+
ALTER FUNCTION gbt_macad_compress(internal) PARALLEL SAFE;
134+
ALTER FUNCTION gbt_macad_fetch(internal) PARALLEL SAFE;
135+
ALTER FUNCTION gbt_macad_penalty(internal, internal, internal) PARALLEL SAFE;
136+
ALTER FUNCTION gbt_macad_picksplit(internal, internal) PARALLEL SAFE;
137+
ALTER FUNCTION gbt_macad_union(internal, internal) PARALLEL SAFE;
138+
ALTER FUNCTION gbt_macad_same(gbtreekey16, gbtreekey16, internal) PARALLEL SAFE;
139+
ALTER FUNCTION gbt_text_consistent(internal, text, smallint, oid, internal) PARALLEL SAFE;
140+
ALTER FUNCTION gbt_bpchar_consistent(internal, character, smallint, oid, internal) PARALLEL SAFE;
141+
ALTER FUNCTION gbt_text_compress(internal) PARALLEL SAFE;
142+
ALTER FUNCTION gbt_bpchar_compress(internal) PARALLEL SAFE;
143+
ALTER FUNCTION gbt_text_penalty(internal, internal, internal) PARALLEL SAFE;
144+
ALTER FUNCTION gbt_text_picksplit(internal, internal) PARALLEL SAFE;
145+
ALTER FUNCTION gbt_text_union(internal, internal) PARALLEL SAFE;
146+
ALTER FUNCTION gbt_text_same(gbtreekey_var, gbtreekey_var, internal) PARALLEL SAFE;
147+
ALTER FUNCTION gbt_bytea_consistent(internal, bytea, smallint, oid, internal) PARALLEL SAFE;
148+
ALTER FUNCTION gbt_bytea_compress(internal) PARALLEL SAFE;
149+
ALTER FUNCTION gbt_bytea_penalty(internal, internal, internal) PARALLEL SAFE;
150+
ALTER FUNCTION gbt_bytea_picksplit(internal, internal) PARALLEL SAFE;
151+
ALTER FUNCTION gbt_bytea_union(internal, internal) PARALLEL SAFE;
152+
ALTER FUNCTION gbt_bytea_same(gbtreekey_var, gbtreekey_var, internal) PARALLEL SAFE;
153+
ALTER FUNCTION gbt_numeric_consistent(internal, numeric, smallint, oid, internal) PARALLEL SAFE;
154+
ALTER FUNCTION gbt_numeric_compress(internal) PARALLEL SAFE;
155+
ALTER FUNCTION gbt_numeric_penalty(internal, internal, internal) PARALLEL SAFE;
156+
ALTER FUNCTION gbt_numeric_picksplit(internal, internal) PARALLEL SAFE;
157+
ALTER FUNCTION gbt_numeric_union(internal, internal) PARALLEL SAFE;
158+
ALTER FUNCTION gbt_numeric_same(gbtreekey_var, gbtreekey_var, internal) PARALLEL SAFE;
159+
ALTER FUNCTION gbt_bit_consistent(internal, bit, smallint, oid, internal) PARALLEL SAFE;
160+
ALTER FUNCTION gbt_bit_compress(internal) PARALLEL SAFE;
161+
ALTER FUNCTION gbt_bit_penalty(internal, internal, internal) PARALLEL SAFE;
162+
ALTER FUNCTION gbt_bit_picksplit(internal, internal) PARALLEL SAFE;
163+
ALTER FUNCTION gbt_bit_union(internal, internal) PARALLEL SAFE;
164+
ALTER FUNCTION gbt_bit_same(gbtreekey_var, gbtreekey_var, internal) PARALLEL SAFE;
165+
ALTER FUNCTION gbt_inet_consistent(internal, inet, smallint, oid, internal) PARALLEL SAFE;
166+
ALTER FUNCTION gbt_inet_compress(internal) PARALLEL SAFE;
167+
ALTER FUNCTION gbt_inet_penalty(internal, internal, internal) PARALLEL SAFE;
168+
ALTER FUNCTION gbt_inet_picksplit(internal, internal) PARALLEL SAFE;
169+
ALTER FUNCTION gbt_inet_union(internal, internal) PARALLEL SAFE;
170+
ALTER FUNCTION gbt_inet_same(gbtreekey16, gbtreekey16, internal) PARALLEL SAFE;
171+
ALTER FUNCTION gbt_uuid_consistent(internal, uuid, smallint, oid, internal) PARALLEL SAFE;
172+
ALTER FUNCTION gbt_uuid_fetch(internal) PARALLEL SAFE;
173+
ALTER FUNCTION gbt_uuid_compress(internal) PARALLEL SAFE;
174+
ALTER FUNCTION gbt_uuid_penalty(internal, internal, internal) PARALLEL SAFE;
175+
ALTER FUNCTION gbt_uuid_picksplit(internal, internal) PARALLEL SAFE;
176+
ALTER FUNCTION gbt_uuid_union(internal, internal) PARALLEL SAFE;
177+
ALTER FUNCTION gbt_uuid_same(gbtreekey32, gbtreekey32, internal) PARALLEL SAFE;
178+
ALTER FUNCTION gbt_macad8_consistent(internal, macaddr8, smallint, oid, internal) PARALLEL SAFE;
179+
ALTER FUNCTION gbt_macad8_compress(internal) PARALLEL SAFE;
180+
ALTER FUNCTION gbt_macad8_fetch(internal) PARALLEL SAFE;
181+
ALTER FUNCTION gbt_macad8_penalty(internal, internal, internal) PARALLEL SAFE;
182+
ALTER FUNCTION gbt_macad8_picksplit(internal, internal) PARALLEL SAFE;
183+
ALTER FUNCTION gbt_macad8_union(internal, internal) PARALLEL SAFE;
184+
ALTER FUNCTION gbt_macad8_same(gbtreekey16, gbtreekey16, internal) PARALLEL SAFE;
185+
ALTER FUNCTION gbt_enum_consistent(internal, anyenum, smallint, oid, internal) PARALLEL SAFE;
186+
ALTER FUNCTION gbt_enum_compress(internal) PARALLEL SAFE;
187+
ALTER FUNCTION gbt_enum_fetch(internal) PARALLEL SAFE;
188+
ALTER FUNCTION gbt_enum_penalty(internal, internal, internal) PARALLEL SAFE;
189+
ALTER FUNCTION gbt_enum_picksplit(internal, internal) PARALLEL SAFE;
190+
ALTER FUNCTION gbt_enum_union(internal, internal) PARALLEL SAFE;
191+
ALTER FUNCTION gbt_enum_same(gbtreekey8, gbtreekey8, internal) PARALLEL SAFE;

contrib/btree_gist/btree_gist.control

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

0 commit comments

Comments
 (0)