From 57e3c5160b24e61758f817feb7aac152cd695c6f Mon Sep 17 00:00:00 2001 From: Tomas Vondra Date: Sat, 6 Nov 2021 17:00:43 +0100 Subject: Add bool GiST opclass to btree_gist Adds bool opclass to btree_gist extension, to allow creating GiST indexes on bool columns. GiST indexes on a single bool column don't seem particularly useful, but this allows defining exclusion constraings involving a bool column, for example. Author: Emre Hasegeli Reviewed-by: Andrey Borodin Discussion: https://postgr.es/m/CAE2gYzyDKJBZngssR84VGZEN=Ux=V9FV23QfPgo+7-yYnKKg4g@mail.gmail.com --- contrib/btree_gist/sql/bool.sql | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 contrib/btree_gist/sql/bool.sql (limited to 'contrib/btree_gist/sql') diff --git a/contrib/btree_gist/sql/bool.sql b/contrib/btree_gist/sql/bool.sql new file mode 100644 index 00000000000..4c2a5392b6c --- /dev/null +++ b/contrib/btree_gist/sql/bool.sql @@ -0,0 +1,42 @@ +-- bool check + +CREATE TABLE booltmp (a bool); + +INSERT INTO booltmp VALUES (false), (true); + +SET enable_seqscan=on; + +SELECT count(*) FROM booltmp WHERE a < true; + +SELECT count(*) FROM booltmp WHERE a <= true; + +SELECT count(*) FROM booltmp WHERE a = true; + +SELECT count(*) FROM booltmp WHERE a >= true; + +SELECT count(*) FROM booltmp WHERE a > true; + +CREATE INDEX boolidx ON booltmp USING gist ( a ); + +SET enable_seqscan=off; + +SELECT count(*) FROM booltmp WHERE a < true; + +SELECT count(*) FROM booltmp WHERE a <= true; + +SELECT count(*) FROM booltmp WHERE a = true; + +SELECT count(*) FROM booltmp WHERE a >= true; + +SELECT count(*) FROM booltmp WHERE a > true; + +-- Test index-only scans +SET enable_bitmapscan=off; + +EXPLAIN (COSTS OFF) +SELECT * FROM booltmp WHERE a; +SELECT * FROM booltmp WHERE a; + +EXPLAIN (COSTS OFF) +SELECT * FROM booltmp WHERE NOT a; +SELECT * FROM booltmp WHERE NOT a; -- cgit v1.2.3