Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Vondra2021-11-06 16:00:43 +0000
committerTomas Vondra2021-11-06 16:00:43 +0000
commit57e3c5160b24e61758f817feb7aac152cd695c6f (patch)
treeaf80841b8c3eab2e46d003bcbc573b62557e4644 /contrib/btree_gist/sql
parentdafcf887daa472b0a49bee7e07042372bc37cee4 (diff)
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
Diffstat (limited to 'contrib/btree_gist/sql')
-rw-r--r--contrib/btree_gist/sql/bool.sql42
1 files changed, 42 insertions, 0 deletions
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;