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)
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