]> granicus.if.org Git - postgresql/commitdiff
Add btree indexing of boolean values
authorBruce Momjian <bruce@momjian.us>
Thu, 10 Feb 2000 19:51:52 +0000 (19:51 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 10 Feb 2000 19:51:52 +0000 (19:51 +0000)
 Don Baccus

src/backend/access/nbtree/nbtcompare.c
src/backend/utils/adt/bool.c
src/include/catalog/pg_amop.h
src/include/catalog/pg_amproc.h
src/include/catalog/pg_opclass.h
src/include/catalog/pg_operator.h
src/include/catalog/pg_proc.h
src/include/utils/builtins.h

index 8cb9d0d9ae255b35a30ba934f710d3c6b84d60ec..f66b9a0e8e24c79b97446d74d5f80b258374cea9 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtcompare.c,v 1.32 2000/01/28 17:23:47 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtcompare.c,v 1.33 2000/02/10 19:51:38 momjian Exp $
  *
  *     NOTES
  *             These functions are stored in pg_amproc.  For each operator class
@@ -207,3 +207,9 @@ bttextcmp(struct varlena * a, struct varlena * b)
        else
                return 1;
 }
+
+int32
+btboolcmp(bool a, bool b)
+{
+       return (int32) ((uint8) a - (uint8) b);
+}
index e781cf59478729e5744056449606fafb014c7295..c5657babcf82210137c6186a5a08d46e73883dca 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.21 2000/01/26 05:57:13 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.22 2000/02/10 19:51:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -119,6 +119,18 @@ boolgt(bool arg1, bool arg2)
        return arg1 > arg2;
 }
 
+bool
+boolle(bool arg1, bool arg2)
+{
+       return arg1 <= arg2;
+}
+
+bool
+boolge(bool arg1, bool arg2)
+{
+       return arg1 >= arg2;
+}
+
 bool
 istrue(bool arg1)
 {
index 5404e0af96e9aa5f4641dcd9dd09bab8ae004933..fa43246b1c2a32beb233f1bb9b64be4bb5f47895 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_amop.h,v 1.29 2000/01/26 05:57:56 momjian Exp $
+ * $Id: pg_amop.h,v 1.30 2000/02/10 19:51:42 momjian Exp $
  *
  * NOTES
  *      the genbki.sh script reads this file and generates .bki
@@ -344,6 +344,16 @@ DATA(insert OID = 0 (  403 1768 1752 3 ));
 DATA(insert OID = 0 (  403 1768 1757 4 ));
 DATA(insert OID = 0 (  403 1768 1756 5 ));
 
+/*
+ *     nbtree bool
+ */
+
+DATA(insert OID = 0 (  403 1690   58 1 ));
+DATA(insert OID = 0 (  403 1690 1694 2 ));
+DATA(insert OID = 0 (  403 1690   91 3 ));
+DATA(insert OID = 0 (  403 1690 1695 4 ));
+DATA(insert OID = 0 (  403 1690   59 5 ));
+
 /*
  *     hash table _ops
  */
index 1e19884dc8d9518dbaea573ddb8fdbb1d955acc0..6d5a150ce1bd60ee79fcd7ab80e85373b7061621 100644 (file)
@@ -10,7 +10,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_amproc.h,v 1.19 2000/01/26 05:57:56 momjian Exp $
+ * $Id: pg_amproc.h,v 1.20 2000/02/10 19:51:45 momjian Exp $
  *
  * NOTES
  *       the genbki.sh script reads this file and generates .bki
@@ -99,6 +99,7 @@ DATA(insert OID = 0 (403 810 836 1));
 DATA(insert OID = 0 (403 935 926 1));
 DATA(insert OID = 0 (403 652 926 1));
 DATA(insert OID = 0 (403 1768 1769 1));
+DATA(insert OID = 0 (403 1690 1693 1));
 
 
 /* hash */
index 38ab1b1f9d4617da2048db4f887bfbad1d1f5086..f33c6894afc9f07d7dfbb0d3ba8f2f5f2851d185 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_opclass.h,v 1.27 2000/01/26 05:57:57 momjian Exp $
+ * $Id: pg_opclass.h,v 1.28 2000/02/10 19:51:45 momjian Exp $
  *
  * NOTES
  *       the genbki.sh script reads this file and generates .bki
@@ -118,5 +118,7 @@ DATA(insert OID = 652  (    cidr_ops        650       ));
 DESCR("");
 DATA(insert OID = 1768 (       numeric_ops    1700       ));
 DESCR("");
+DATA(insert OID = 1690 (       bool_ops    16    ));
+DESCR("");
 
 #endif  /* PG_OPCLASS_H */
index 17fff22f077a33825440001d2257f5c696d60c7f..fd33b4b510fab95b1d166cb2b578364e3c834695 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_operator.h,v 1.66 2000/01/26 05:57:58 momjian Exp $
+ * $Id: pg_operator.h,v 1.67 2000/02/10 19:51:45 momjian Exp $
  *
  * NOTES
  *       the genbki.sh script reads this file and generates .bki
@@ -96,11 +96,13 @@ DATA(insert OID =  76 ( ">"            PGUID 0 b t f  23  20  16 418  80   0   0 int48g
 DATA(insert OID =  80 ( "<="      PGUID 0 b t f  23  20  16 430  76   0   0 int48le scalarltsel scalarltjoinsel ));
 DATA(insert OID =  82 ( ">="      PGUID 0 b t f  23  20  16 420  37   0   0 int48ge scalargtsel scalargtjoinsel ));
 
-DATA(insert OID =  58 ( "<"               PGUID 0 b t f  16  16  16  59   0   0   0 boollt scalarltsel scalarltjoinsel ));
-DATA(insert OID =  59 ( ">"               PGUID 0 b t f  16  16  16  58   0   0   0 boolgt scalargtsel scalargtjoinsel ));
+DATA(insert OID =  58 ( "<"               PGUID 0 b t f  16  16  16  59   1695   0   0 boollt scalarltsel scalarltjoinsel ));
+DATA(insert OID =  59 ( ">"               PGUID 0 b t f  16  16  16  58   1694   0   0 boolgt scalargtsel scalargtjoinsel ));
 DATA(insert OID =  85 ( "<>"      PGUID 0 b t f  16  16  16  85  91   0   0 boolne neqsel neqjoinsel ));
 DATA(insert OID =  91 ( "="               PGUID 0 b t t  16  16  16  91  85  58  58 booleq eqsel eqjoinsel ));
 #define BooleanEqualOperator   91
+DATA(insert OID = 1694 (  "<="    PGUID 0 b t f  16  16  16 1695 59  0  0 boolle scalarltsel scalarltjoinsel ));
+DATA(insert OID = 1695 (  ">="    PGUID 0 b t f  16  16  16 1694 58  0  0 boolge scalargtsel scalargtjoinsel ));
 
 DATA(insert OID =  92 ( "="               PGUID 0 b t t  18  18  16  92 630 631 631 chareq eqsel eqjoinsel ));
 DATA(insert OID =  93 ( "="               PGUID 0 b t t  19  19  16  93 643 660 660 nameeq eqsel eqjoinsel ));
index 37d4313969e34d3c407b5cb7a2ddef62b44fc3bb..064232d62ccaaae15666415d52ab2bc1b10ac1bc 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_proc.h,v 1.119 2000/01/31 14:02:27 wieck Exp $
+ * $Id: pg_proc.h,v 1.120 2000/02/10 19:51:46 momjian Exp $
  *
  * NOTES
  *       The script catalog/genbki.sh reads this file and generates .bki
@@ -2230,6 +2230,13 @@ DESCR("host address");
 DATA(insert OID = 683 (  network                               PGUID 11 f t t 1 f 25 "869" 100 0 0 100  network_network - ));
 DESCR("network address");
 
+DATA(insert OID =  1691 (  boolle                         PGUID 11 f t t 2 f 16 "16 16" 100 0 0 100  boolle - ));
+DESCR("less-than-or-equal");
+DATA(insert OID =  1692 (  boolge                         PGUID 11 f t t 2 f 16 "16 16" 100 0 0 100  boolge - ));
+DESCR("greater-than-or-equal");
+DATA(insert OID = 1693 (  btboolcmp                       PGUID 11 f t t 2 f 23 "16 16" 100 0 0 100  btboolcmp - ));
+DESCR("btree less-equal-greater");
+
 /* OID's 1700 - 1799 NUMERIC data type */
 DATA(insert OID = 1701 ( numeric_in                            PGUID 11 f t t 3 f 1700 "0 0 23" 100 0 0 100  numeric_in - ));
 DESCR("(internal)");
index 280bd1aab306e80415c234d59fe3431af537352d..cb7ab0e802736f18a0e0f968da9c920510af9c58 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: builtins.h,v 1.99 2000/01/26 05:58:37 momjian Exp $
+ * $Id: builtins.h,v 1.100 2000/02/10 19:51:52 momjian Exp $
  *
  * NOTES
  *       This should normally only be included by fmgr.h.
@@ -44,6 +44,8 @@ extern bool booleq(bool arg1, bool arg2);
 extern bool boolne(bool arg1, bool arg2);
 extern bool boollt(bool arg1, bool arg2);
 extern bool boolgt(bool arg1, bool arg2);
+extern bool boolle(bool arg1, bool arg2);
+extern bool boolge(bool arg1, bool arg2);
 extern bool istrue(bool arg1);
 extern bool isfalse(bool arg1);
 
@@ -181,6 +183,7 @@ extern int32 btabstimecmp(AbsoluteTime a, AbsoluteTime b);
 extern int32 btcharcmp(char a, char b);
 extern int32 btnamecmp(NameData *a, NameData *b);
 extern int32 bttextcmp(struct varlena * a, struct varlena * b);
+extern int32 btboolcmp(bool a, bool b);
 
 /* support routines for the rtree access method, by opclass */
 extern BOX *rt_box_union(BOX *a, BOX *b);