aboutsummaryrefslogtreecommitdiff
path: root/contrib/btree_gist
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/btree_gist')
-rw-r--r--contrib/btree_gist/Makefile6
-rw-r--r--contrib/btree_gist/btree_gist--1.7--1.8.sql87
-rw-r--r--contrib/btree_gist/btree_gist.c27
-rw-r--r--contrib/btree_gist/btree_gist.control2
-rw-r--r--contrib/btree_gist/expected/stratnum.out13
-rw-r--r--contrib/btree_gist/expected/without_overlaps.out92
-rw-r--r--contrib/btree_gist/meson.build3
-rw-r--r--contrib/btree_gist/sql/stratnum.sql3
-rw-r--r--contrib/btree_gist/sql/without_overlaps.sql53
9 files changed, 3 insertions, 283 deletions
diff --git a/contrib/btree_gist/Makefile b/contrib/btree_gist/Makefile
index 7ac2df26c10..073dcc745c4 100644
--- a/contrib/btree_gist/Makefile
+++ b/contrib/btree_gist/Makefile
@@ -33,14 +33,12 @@ EXTENSION = btree_gist
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.5--1.6.sql btree_gist--1.6--1.7.sql
PGFILEDESC = "btree_gist - B-tree equivalent GiST operator classes"
REGRESS = init int2 int4 int8 float4 float8 cash oid timestamp timestamptz \
time timetz date interval macaddr macaddr8 inet cidr text varchar char \
- bytea bit varbit numeric uuid not_equal enum bool partitions \
- stratnum without_overlaps
+ bytea bit varbit numeric uuid not_equal enum bool partitions
SHLIB_LINK += $(filter -lm, $(LIBS))
diff --git a/contrib/btree_gist/btree_gist--1.7--1.8.sql b/contrib/btree_gist/btree_gist--1.7--1.8.sql
deleted file mode 100644
index 307bfe574b0..00000000000
--- a/contrib/btree_gist/btree_gist--1.7--1.8.sql
+++ /dev/null
@@ -1,87 +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.8'" to load this file. \quit
-
-CREATE FUNCTION gist_stratnum_btree(smallint)
-RETURNS smallint
-AS 'MODULE_PATHNAME'
-LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT;
-
-ALTER OPERATOR FAMILY gist_oid_ops USING gist ADD
- FUNCTION 12 (oid, oid) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_int2_ops USING gist ADD
- FUNCTION 12 (int2, int2) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_int4_ops USING gist ADD
- FUNCTION 12 (int4, int4) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_int8_ops USING gist ADD
- FUNCTION 12 (int8, int8) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_float4_ops USING gist ADD
- FUNCTION 12 (float4, float4) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_float8_ops USING gist ADD
- FUNCTION 12 (float8, float8) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_timestamp_ops USING gist ADD
- FUNCTION 12 (timestamp, timestamp) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_timestamptz_ops USING gist ADD
- FUNCTION 12 (timestamptz, timestamptz) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_time_ops USING gist ADD
- FUNCTION 12 (time, time) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_date_ops USING gist ADD
- FUNCTION 12 (date, date) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_interval_ops USING gist ADD
- FUNCTION 12 (interval, interval) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_cash_ops USING gist ADD
- FUNCTION 12 (money, money) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_macaddr_ops USING gist ADD
- FUNCTION 12 (macaddr, macaddr) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_text_ops USING gist ADD
- FUNCTION 12 (text, text) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_bpchar_ops USING gist ADD
- FUNCTION 12 (bpchar, bpchar) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_bytea_ops USING gist ADD
- FUNCTION 12 (bytea, bytea) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_numeric_ops USING gist ADD
- FUNCTION 12 (numeric, numeric) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_bit_ops USING gist ADD
- FUNCTION 12 (bit, bit) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_vbit_ops USING gist ADD
- FUNCTION 12 (varbit, varbit) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_inet_ops USING gist ADD
- FUNCTION 12 (inet, inet) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_cidr_ops USING gist ADD
- FUNCTION 12 (cidr, cidr) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_timetz_ops USING gist ADD
- FUNCTION 12 (timetz, timetz) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_uuid_ops USING gist ADD
- FUNCTION 12 (uuid, uuid) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_macaddr8_ops USING gist ADD
- FUNCTION 12 (macaddr8, macaddr8) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_enum_ops USING gist ADD
- FUNCTION 12 (anyenum, anyenum) gist_stratnum_btree (int2) ;
-
-ALTER OPERATOR FAMILY gist_bool_ops USING gist ADD
- FUNCTION 12 (bool, bool) gist_stratnum_btree (int2) ;
diff --git a/contrib/btree_gist/btree_gist.c b/contrib/btree_gist/btree_gist.c
index 5fd4cce27d0..92520aedae1 100644
--- a/contrib/btree_gist/btree_gist.c
+++ b/contrib/btree_gist/btree_gist.c
@@ -3,7 +3,6 @@
*/
#include "postgres.h"
-#include "access/stratnum.h"
#include "utils/builtins.h"
PG_MODULE_MAGIC;
@@ -11,7 +10,6 @@ PG_MODULE_MAGIC;
PG_FUNCTION_INFO_V1(gbt_decompress);
PG_FUNCTION_INFO_V1(gbtreekey_in);
PG_FUNCTION_INFO_V1(gbtreekey_out);
-PG_FUNCTION_INFO_V1(gist_stratnum_btree);
/**************************************************
* In/Out for keys
@@ -53,28 +51,3 @@ gbt_decompress(PG_FUNCTION_ARGS)
{
PG_RETURN_POINTER(PG_GETARG_POINTER(0));
}
-
-/*
- * Returns the btree number for supported operators, otherwise invalid.
- */
-Datum
-gist_stratnum_btree(PG_FUNCTION_ARGS)
-{
- StrategyNumber strat = PG_GETARG_UINT16(0);
-
- switch (strat)
- {
- case RTEqualStrategyNumber:
- PG_RETURN_UINT16(BTEqualStrategyNumber);
- case RTLessStrategyNumber:
- PG_RETURN_UINT16(BTLessStrategyNumber);
- case RTLessEqualStrategyNumber:
- PG_RETURN_UINT16(BTLessEqualStrategyNumber);
- case RTGreaterStrategyNumber:
- PG_RETURN_UINT16(BTGreaterStrategyNumber);
- case RTGreaterEqualStrategyNumber:
- PG_RETURN_UINT16(BTGreaterEqualStrategyNumber);
- default:
- PG_RETURN_UINT16(InvalidStrategy);
- }
-}
diff --git a/contrib/btree_gist/btree_gist.control b/contrib/btree_gist/btree_gist.control
index abf66538f32..fa9171a80a2 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.8'
+default_version = '1.7'
module_pathname = '$libdir/btree_gist'
relocatable = true
trusted = true
diff --git a/contrib/btree_gist/expected/stratnum.out b/contrib/btree_gist/expected/stratnum.out
deleted file mode 100644
index 9d80c6590d9..00000000000
--- a/contrib/btree_gist/expected/stratnum.out
+++ /dev/null
@@ -1,13 +0,0 @@
--- test stratnum support func
-SELECT gist_stratnum_btree(3::smallint);
- gist_stratnum_btree
----------------------
- 0
-(1 row)
-
-SELECT gist_stratnum_btree(18::smallint);
- gist_stratnum_btree
----------------------
- 3
-(1 row)
-
diff --git a/contrib/btree_gist/expected/without_overlaps.out b/contrib/btree_gist/expected/without_overlaps.out
deleted file mode 100644
index 18856900ded..00000000000
--- a/contrib/btree_gist/expected/without_overlaps.out
+++ /dev/null
@@ -1,92 +0,0 @@
--- Core must test WITHOUT OVERLAPS
--- with an int4range + daterange,
--- so here we do some simple tests
--- to make sure int + daterange works too,
--- since that is the expected use-case.
-CREATE TABLE temporal_rng (
- id integer,
- valid_at daterange,
- CONSTRAINT temporal_rng_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
-);
-\d temporal_rng
- Table "public.temporal_rng"
- Column | Type | Collation | Nullable | Default
-----------+-----------+-----------+----------+---------
- id | integer | | not null |
- valid_at | daterange | | not null |
-Indexes:
- "temporal_rng_pk" PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
-
-SELECT pg_get_constraintdef(oid) FROM pg_constraint WHERE conname = 'temporal_rng_pk';
- pg_get_constraintdef
----------------------------------------------
- PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
-(1 row)
-
-SELECT pg_get_indexdef(conindid, 0, true) FROM pg_constraint WHERE conname = 'temporal_rng_pk';
- pg_get_indexdef
--------------------------------------------------------------------------------
- CREATE UNIQUE INDEX temporal_rng_pk ON temporal_rng USING gist (id, valid_at)
-(1 row)
-
-INSERT INTO temporal_rng VALUES
- (1, '[2000-01-01,2001-01-01)');
--- same key, doesn't overlap:
-INSERT INTO temporal_rng VALUES
- (1, '[2001-01-01,2002-01-01)');
--- overlaps but different key:
-INSERT INTO temporal_rng VALUES
- (2, '[2000-01-01,2001-01-01)');
--- should fail:
-INSERT INTO temporal_rng VALUES
- (1, '[2000-06-01,2001-01-01)');
-ERROR: conflicting key value violates exclusion constraint "temporal_rng_pk"
-DETAIL: Key (id, valid_at)=(1, [06-01-2000,01-01-2001)) conflicts with existing key (id, valid_at)=(1, [01-01-2000,01-01-2001)).
--- Foreign key
-CREATE TABLE temporal_fk_rng2rng (
- id integer,
- valid_at daterange,
- parent_id integer,
- CONSTRAINT temporal_fk_rng2rng_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS),
- CONSTRAINT temporal_fk_rng2rng_fk FOREIGN KEY (parent_id, PERIOD valid_at)
- REFERENCES temporal_rng (id, PERIOD valid_at)
-);
-\d temporal_fk_rng2rng
- Table "public.temporal_fk_rng2rng"
- Column | Type | Collation | Nullable | Default
------------+-----------+-----------+----------+---------
- id | integer | | not null |
- valid_at | daterange | | not null |
- parent_id | integer | | |
-Indexes:
- "temporal_fk_rng2rng_pk" PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
-Foreign-key constraints:
- "temporal_fk_rng2rng_fk" FOREIGN KEY (parent_id, PERIOD valid_at) REFERENCES temporal_rng(id, PERIOD valid_at)
-
-SELECT pg_get_constraintdef(oid) FROM pg_constraint WHERE conname = 'temporal_fk_rng2rng_fk';
- pg_get_constraintdef
----------------------------------------------------------------------------------------
- FOREIGN KEY (parent_id, PERIOD valid_at) REFERENCES temporal_rng(id, PERIOD valid_at)
-(1 row)
-
--- okay
-INSERT INTO temporal_fk_rng2rng VALUES
- (1, '[2000-01-01,2001-01-01)', 1);
--- okay spanning two parent records:
-INSERT INTO temporal_fk_rng2rng VALUES
- (2, '[2000-01-01,2002-01-01)', 1);
--- key is missing
-INSERT INTO temporal_fk_rng2rng VALUES
- (3, '[2000-01-01,2001-01-01)', 3);
-ERROR: insert or update on table "temporal_fk_rng2rng" violates foreign key constraint "temporal_fk_rng2rng_fk"
-DETAIL: Key (parent_id, valid_at)=(3, [01-01-2000,01-01-2001)) is not present in table "temporal_rng".
--- key exist but is outside range
-INSERT INTO temporal_fk_rng2rng VALUES
- (4, '[2001-01-01,2002-01-01)', 2);
-ERROR: insert or update on table "temporal_fk_rng2rng" violates foreign key constraint "temporal_fk_rng2rng_fk"
-DETAIL: Key (parent_id, valid_at)=(2, [01-01-2001,01-01-2002)) is not present in table "temporal_rng".
--- key exist but is partly outside range
-INSERT INTO temporal_fk_rng2rng VALUES
- (5, '[2000-01-01,2002-01-01)', 2);
-ERROR: insert or update on table "temporal_fk_rng2rng" violates foreign key constraint "temporal_fk_rng2rng_fk"
-DETAIL: Key (parent_id, valid_at)=(2, [01-01-2000,01-01-2002)) is not present in table "temporal_rng".
diff --git a/contrib/btree_gist/meson.build b/contrib/btree_gist/meson.build
index 73b1bbf52a6..c88a6ac84ae 100644
--- a/contrib/btree_gist/meson.build
+++ b/contrib/btree_gist/meson.build
@@ -50,7 +50,6 @@ install_data(
'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',
kwargs: contrib_data_args,
)
@@ -90,8 +89,6 @@ tests += {
'enum',
'bool',
'partitions',
- 'stratnum',
- 'without_overlaps',
],
},
}
diff --git a/contrib/btree_gist/sql/stratnum.sql b/contrib/btree_gist/sql/stratnum.sql
deleted file mode 100644
index f58cdbe93da..00000000000
--- a/contrib/btree_gist/sql/stratnum.sql
+++ /dev/null
@@ -1,3 +0,0 @@
--- test stratnum support func
-SELECT gist_stratnum_btree(3::smallint);
-SELECT gist_stratnum_btree(18::smallint);
diff --git a/contrib/btree_gist/sql/without_overlaps.sql b/contrib/btree_gist/sql/without_overlaps.sql
deleted file mode 100644
index b1b581fcabc..00000000000
--- a/contrib/btree_gist/sql/without_overlaps.sql
+++ /dev/null
@@ -1,53 +0,0 @@
--- Core must test WITHOUT OVERLAPS
--- with an int4range + daterange,
--- so here we do some simple tests
--- to make sure int + daterange works too,
--- since that is the expected use-case.
-CREATE TABLE temporal_rng (
- id integer,
- valid_at daterange,
- CONSTRAINT temporal_rng_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
-);
-\d temporal_rng
-SELECT pg_get_constraintdef(oid) FROM pg_constraint WHERE conname = 'temporal_rng_pk';
-SELECT pg_get_indexdef(conindid, 0, true) FROM pg_constraint WHERE conname = 'temporal_rng_pk';
-
-INSERT INTO temporal_rng VALUES
- (1, '[2000-01-01,2001-01-01)');
--- same key, doesn't overlap:
-INSERT INTO temporal_rng VALUES
- (1, '[2001-01-01,2002-01-01)');
--- overlaps but different key:
-INSERT INTO temporal_rng VALUES
- (2, '[2000-01-01,2001-01-01)');
--- should fail:
-INSERT INTO temporal_rng VALUES
- (1, '[2000-06-01,2001-01-01)');
-
--- Foreign key
-CREATE TABLE temporal_fk_rng2rng (
- id integer,
- valid_at daterange,
- parent_id integer,
- CONSTRAINT temporal_fk_rng2rng_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS),
- CONSTRAINT temporal_fk_rng2rng_fk FOREIGN KEY (parent_id, PERIOD valid_at)
- REFERENCES temporal_rng (id, PERIOD valid_at)
-);
-\d temporal_fk_rng2rng
-SELECT pg_get_constraintdef(oid) FROM pg_constraint WHERE conname = 'temporal_fk_rng2rng_fk';
-
--- okay
-INSERT INTO temporal_fk_rng2rng VALUES
- (1, '[2000-01-01,2001-01-01)', 1);
--- okay spanning two parent records:
-INSERT INTO temporal_fk_rng2rng VALUES
- (2, '[2000-01-01,2002-01-01)', 1);
--- key is missing
-INSERT INTO temporal_fk_rng2rng VALUES
- (3, '[2000-01-01,2001-01-01)', 3);
--- key exist but is outside range
-INSERT INTO temporal_fk_rng2rng VALUES
- (4, '[2001-01-01,2002-01-01)', 2);
--- key exist but is partly outside range
-INSERT INTO temporal_fk_rng2rng VALUES
- (5, '[2000-01-01,2002-01-01)', 2);