On 7/9/25 16:16, Michael Paquier wrote:
On Wed, Jul 09, 2025 at 01:52:08PM -0400, Tom Lane wrote:
I considered putting the sortsupport functions first, since they have a lower
support function
number, but I thought defining them in the same order as we've been doing was a
tiny bit safer.
Maybe that is superstitious.
Yeah, I'd be inclined to swap them. I dislike code that has no
ordering principle other than feature development order.
Ordering them by number in the unified script makes more sense here.
Here is a patch with the new order.
Yours,
--
Paul ~{:-)
p...@illuminatedcomputing.com
From c37b4e30ed9594df5716758fbd0f75510cc8f812 Mon Sep 17 00:00:00 2001
From: "Paul A. Jungwirth" <p...@illuminatedcomputing.com>
Date: Wed, 9 Jul 2025 10:28:16 -0700
Subject: [PATCH v2] Collapse last two releases of btree_gist into 1.8
Since 1.8 and 1.9 were both created during the v18 development cycle,
there is no reason to have both. Let's merge their upgrade scripts and
put everything into 1.8, since we haven't published v18 yet.
Previously 1.8 added translate_cmptype support functions to btree_gist
opfamilies (32edf732e8), and 1.9 added sortsupport functions
(e4309f73f6). Now we do both in one release.
Author: Paul A. Jungwirth <p...@illuminatedcomputing.com>
Discussion: https://www.postgresql.org/message-id/13c61807-f702-4afe-9a8d-795e2fd40923%40illuminatedcomputing.com
---
contrib/btree_gist/Makefile | 2 +-
contrib/btree_gist/btree_gist--1.7--1.8.sql | 197 ++++++++++++++++++++
contrib/btree_gist/btree_gist--1.8--1.9.sql | 197 --------------------
contrib/btree_gist/btree_gist.control | 2 +-
contrib/btree_gist/meson.build | 1 -
5 files changed, 199 insertions(+), 200 deletions(-)
delete mode 100644 contrib/btree_gist/btree_gist--1.8--1.9.sql
diff --git a/contrib/btree_gist/Makefile b/contrib/btree_gist/Makefile
index 68190ac5e46..7ac2df26c10 100644
--- a/contrib/btree_gist/Makefile
+++ b/contrib/btree_gist/Makefile
@@ -34,7 +34,7 @@ DATA = btree_gist--1.0--1.1.sql \
btree_gist--1.1--1.2.sql btree_gist--1.2.sql btree_gist--1.2--1.3.sql \
btree_gist--1.3--1.4.sql btree_gist--1.4--1.5.sql \
btree_gist--1.5--1.6.sql btree_gist--1.6--1.7.sql \
- btree_gist--1.7--1.8.sql btree_gist--1.8--1.9.sql
+ btree_gist--1.7--1.8.sql
PGFILEDESC = "btree_gist - B-tree equivalent GiST operator classes"
REGRESS = init int2 int4 int8 float4 float8 cash oid timestamp timestamptz \
diff --git a/contrib/btree_gist/btree_gist--1.7--1.8.sql b/contrib/btree_gist/btree_gist--1.7--1.8.sql
index 8f79365a461..5854df269e4 100644
--- a/contrib/btree_gist/btree_gist--1.7--1.8.sql
+++ b/contrib/btree_gist/btree_gist--1.7--1.8.sql
@@ -3,6 +3,203 @@
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "ALTER EXTENSION btree_gist UPDATE TO '1.8'" to load this file. \quit
+/* Add sortsupport functions */
+
+CREATE FUNCTION gbt_bit_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_varbit_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_bool_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_bytea_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_cash_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_date_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_enum_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_float4_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_float8_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_inet_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_int2_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_int4_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_int8_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_intv_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_macaddr_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_macad8_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_numeric_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_oid_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_text_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_bpchar_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_time_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_ts_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+CREATE FUNCTION gbt_uuid_sortsupport(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
+
+ALTER OPERATOR FAMILY gist_bit_ops USING gist ADD
+ FUNCTION 11 (bit, bit) gbt_bit_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_vbit_ops USING gist ADD
+ FUNCTION 11 (varbit, varbit) gbt_varbit_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_bool_ops USING gist ADD
+ FUNCTION 11 (bool, bool) gbt_bool_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_bytea_ops USING gist ADD
+ FUNCTION 11 (bytea, bytea) gbt_bytea_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_cash_ops USING gist ADD
+ FUNCTION 11 (money, money) gbt_cash_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_date_ops USING gist ADD
+ FUNCTION 11 (date, date) gbt_date_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_enum_ops USING gist ADD
+ FUNCTION 11 (anyenum, anyenum) gbt_enum_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_float4_ops USING gist ADD
+ FUNCTION 11 (float4, float4) gbt_float4_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_float8_ops USING gist ADD
+ FUNCTION 11 (float8, float8) gbt_float8_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_inet_ops USING gist ADD
+ FUNCTION 11 (inet, inet) gbt_inet_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_cidr_ops USING gist ADD
+ FUNCTION 11 (cidr, cidr) gbt_inet_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_int2_ops USING gist ADD
+ FUNCTION 11 (int2, int2) gbt_int2_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_int4_ops USING gist ADD
+ FUNCTION 11 (int4, int4) gbt_int4_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_int8_ops USING gist ADD
+ FUNCTION 11 (int8, int8) gbt_int8_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_interval_ops USING gist ADD
+ FUNCTION 11 (interval, interval) gbt_intv_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_macaddr_ops USING gist ADD
+ FUNCTION 11 (macaddr, macaddr) gbt_macaddr_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_macaddr8_ops USING gist ADD
+ FUNCTION 11 (macaddr8, macaddr8) gbt_macad8_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_numeric_ops USING gist ADD
+ FUNCTION 11 (numeric, numeric) gbt_numeric_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_oid_ops USING gist ADD
+ FUNCTION 11 (oid, oid) gbt_oid_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_text_ops USING gist ADD
+ FUNCTION 11 (text, text) gbt_text_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_bpchar_ops USING gist ADD
+ FUNCTION 11 (bpchar, bpchar) gbt_bpchar_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_time_ops USING gist ADD
+ FUNCTION 11 (time, time) gbt_time_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_timetz_ops USING gist ADD
+ FUNCTION 11 (timetz, timetz) gbt_time_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_timestamp_ops USING gist ADD
+ FUNCTION 11 (timestamp, timestamp) gbt_ts_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_timestamptz_ops USING gist ADD
+ FUNCTION 11 (timestamptz, timestamptz) gbt_ts_sortsupport (internal) ;
+
+ALTER OPERATOR FAMILY gist_uuid_ops USING gist ADD
+ FUNCTION 11 (uuid, uuid) gbt_uuid_sortsupport (internal) ;
+
+/* Add translate_cmptype functions */
+
CREATE FUNCTION gist_translate_cmptype_btree(int)
RETURNS smallint
AS 'MODULE_PATHNAME'
diff --git a/contrib/btree_gist/btree_gist--1.8--1.9.sql b/contrib/btree_gist/btree_gist--1.8--1.9.sql
deleted file mode 100644
index 4b38749bf5f..00000000000
--- a/contrib/btree_gist/btree_gist--1.8--1.9.sql
+++ /dev/null
@@ -1,197 +0,0 @@
-/* contrib/btree_gist/btree_gist--1.7--1.8.sql */
-
--- complain if script is sourced in psql, rather than via CREATE EXTENSION
-\echo Use "ALTER EXTENSION btree_gist UPDATE TO '1.9'" to load this file. \quit
-
-CREATE FUNCTION gbt_bit_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_varbit_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_bool_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_bytea_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_cash_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_date_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_enum_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_float4_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_float8_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_inet_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_int2_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_int4_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_int8_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_intv_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_macaddr_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_macad8_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_numeric_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_oid_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_text_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_bpchar_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_time_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_ts_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-CREATE FUNCTION gbt_uuid_sortsupport(internal)
-RETURNS void
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-ALTER OPERATOR FAMILY gist_bit_ops USING gist ADD
- FUNCTION 11 (bit, bit) gbt_bit_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_vbit_ops USING gist ADD
- FUNCTION 11 (varbit, varbit) gbt_varbit_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_bool_ops USING gist ADD
- FUNCTION 11 (bool, bool) gbt_bool_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_bytea_ops USING gist ADD
- FUNCTION 11 (bytea, bytea) gbt_bytea_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_cash_ops USING gist ADD
- FUNCTION 11 (money, money) gbt_cash_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_date_ops USING gist ADD
- FUNCTION 11 (date, date) gbt_date_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_enum_ops USING gist ADD
- FUNCTION 11 (anyenum, anyenum) gbt_enum_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_float4_ops USING gist ADD
- FUNCTION 11 (float4, float4) gbt_float4_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_float8_ops USING gist ADD
- FUNCTION 11 (float8, float8) gbt_float8_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_inet_ops USING gist ADD
- FUNCTION 11 (inet, inet) gbt_inet_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_cidr_ops USING gist ADD
- FUNCTION 11 (cidr, cidr) gbt_inet_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_int2_ops USING gist ADD
- FUNCTION 11 (int2, int2) gbt_int2_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_int4_ops USING gist ADD
- FUNCTION 11 (int4, int4) gbt_int4_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_int8_ops USING gist ADD
- FUNCTION 11 (int8, int8) gbt_int8_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_interval_ops USING gist ADD
- FUNCTION 11 (interval, interval) gbt_intv_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_macaddr_ops USING gist ADD
- FUNCTION 11 (macaddr, macaddr) gbt_macaddr_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_macaddr8_ops USING gist ADD
- FUNCTION 11 (macaddr8, macaddr8) gbt_macad8_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_numeric_ops USING gist ADD
- FUNCTION 11 (numeric, numeric) gbt_numeric_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_oid_ops USING gist ADD
- FUNCTION 11 (oid, oid) gbt_oid_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_text_ops USING gist ADD
- FUNCTION 11 (text, text) gbt_text_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_bpchar_ops USING gist ADD
- FUNCTION 11 (bpchar, bpchar) gbt_bpchar_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_time_ops USING gist ADD
- FUNCTION 11 (time, time) gbt_time_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_timetz_ops USING gist ADD
- FUNCTION 11 (timetz, timetz) gbt_time_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_timestamp_ops USING gist ADD
- FUNCTION 11 (timestamp, timestamp) gbt_ts_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_timestamptz_ops USING gist ADD
- FUNCTION 11 (timestamptz, timestamptz) gbt_ts_sortsupport (internal) ;
-
-ALTER OPERATOR FAMILY gist_uuid_ops USING gist ADD
- FUNCTION 11 (uuid, uuid) gbt_uuid_sortsupport (internal) ;
diff --git a/contrib/btree_gist/btree_gist.control b/contrib/btree_gist/btree_gist.control
index 69d9341a0ad..abf66538f32 100644
--- a/contrib/btree_gist/btree_gist.control
+++ b/contrib/btree_gist/btree_gist.control
@@ -1,6 +1,6 @@
# btree_gist extension
comment = 'support for indexing common datatypes in GiST'
-default_version = '1.9'
+default_version = '1.8'
module_pathname = '$libdir/btree_gist'
relocatable = true
trusted = true
diff --git a/contrib/btree_gist/meson.build b/contrib/btree_gist/meson.build
index 89932dd3844..f4fa9574f1f 100644
--- a/contrib/btree_gist/meson.build
+++ b/contrib/btree_gist/meson.build
@@ -51,7 +51,6 @@ install_data(
'btree_gist--1.5--1.6.sql',
'btree_gist--1.6--1.7.sql',
'btree_gist--1.7--1.8.sql',
- 'btree_gist--1.8--1.9.sql',
kwargs: contrib_data_args,
)
--
2.39.5