Add the full set of comparison functions for type TID, including a btree
authorTom Lane
Fri, 21 Jul 2006 20:51:33 +0000 (20:51 +0000)
committerTom Lane
Fri, 21 Jul 2006 20:51:33 +0000 (20:51 +0000)
opclass.  This is not so much because anyone's likely to create an index
on TID, as that sorting TIDs can be useful.  Also added max and min
aggregates while at it, so that one can investigate the clusteredness of
a table with queries like SELECT min(ctid), max(ctid) FROM tab WHERE ...
Greg Stark and Tom Lane

src/backend/utils/adt/tid.c
src/include/catalog/catversion.h
src/include/catalog/pg_aggregate.h
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 658108f56c21e09bed4a582289d8da2fa153fd52..814670521ea7e1c7add0e478a5497585362173f2 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tid.c,v 1.53 2006/07/14 05:28:28 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tid.c,v 1.54 2006/07/21 20:51:32 tgl Exp $
  *
  * NOTES
  *   input routine largely stolen from boxin().
@@ -98,16 +98,11 @@ Datum
 tidout(PG_FUNCTION_ARGS)
 {
    ItemPointer itemPtr = PG_GETARG_ITEMPOINTER(0);
-   BlockId     blockId;
    BlockNumber blockNumber;
    OffsetNumber offsetNumber;
    char        buf[32];
 
-   if (!ItemPointerIsValid(itemPtr))
-       PG_RETURN_CSTRING(pstrdup("()"));
-
-   blockId = &(itemPtr->ip_blkid);
-   blockNumber = BlockIdGetBlockNumber(blockId);
+   blockNumber = BlockIdGetBlockNumber(&(itemPtr->ip_blkid));
    offsetNumber = itemPtr->ip_posid;
 
    /* Perhaps someday we should output this as a record. */
@@ -163,15 +158,36 @@ tidsend(PG_FUNCTION_ARGS)
  *  PUBLIC ROUTINES                                                         *
  *****************************************************************************/
 
+static int32
+tid_cmp_internal(ItemPointer arg1, ItemPointer arg2)
+{
+   /*
+    * Don't use ItemPointerGetBlockNumber or ItemPointerGetOffsetNumber here,
+    * because they assert ip_posid != 0 which might not be true for a
+    * user-supplied TID.
+    */
+   BlockNumber b1 = BlockIdGetBlockNumber(&(arg1->ip_blkid));
+   BlockNumber b2 = BlockIdGetBlockNumber(&(arg2->ip_blkid));
+   
+   if (b1 < b2)
+       return -1;
+   else if (b1 > b2)
+       return 1;
+   else if (arg1->ip_posid < arg2->ip_posid)
+       return -1;
+   else if (arg1->ip_posid > arg2->ip_posid)
+       return 1;
+   else
+       return 0;
+}
+
 Datum
 tideq(PG_FUNCTION_ARGS)
 {
    ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
    ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
 
-   PG_RETURN_BOOL(BlockIdGetBlockNumber(&(arg1->ip_blkid)) ==
-                  BlockIdGetBlockNumber(&(arg2->ip_blkid)) &&
-                  arg1->ip_posid == arg2->ip_posid);
+   PG_RETURN_BOOL(tid_cmp_internal(arg1,arg2) == 0);
 }
 
 Datum
@@ -180,11 +196,73 @@ tidne(PG_FUNCTION_ARGS)
    ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
    ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
 
-   PG_RETURN_BOOL(BlockIdGetBlockNumber(&(arg1->ip_blkid)) !=
-                  BlockIdGetBlockNumber(&(arg2->ip_blkid)) ||
-                  arg1->ip_posid != arg2->ip_posid);
+   PG_RETURN_BOOL(tid_cmp_internal(arg1,arg2) != 0);
 }
 
+Datum
+tidlt(PG_FUNCTION_ARGS)
+{
+   ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
+   ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
+
+   PG_RETURN_BOOL(tid_cmp_internal(arg1,arg2) < 0);
+}
+
+Datum
+tidle(PG_FUNCTION_ARGS)
+{
+   ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
+   ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
+
+   PG_RETURN_BOOL(tid_cmp_internal(arg1,arg2) <= 0);
+}
+
+Datum
+tidgt(PG_FUNCTION_ARGS)
+{
+   ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
+   ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
+
+   PG_RETURN_BOOL(tid_cmp_internal(arg1,arg2) > 0);
+}
+
+Datum
+tidge(PG_FUNCTION_ARGS)
+{
+   ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
+   ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
+
+   PG_RETURN_BOOL(tid_cmp_internal(arg1,arg2) >= 0);
+}
+
+Datum
+bttidcmp(PG_FUNCTION_ARGS)
+{
+   ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
+   ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
+
+   PG_RETURN_INT32(tid_cmp_internal(arg1, arg2));
+}
+
+Datum
+tidlarger(PG_FUNCTION_ARGS)
+{
+   ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
+   ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
+
+   PG_RETURN_ITEMPOINTER(tid_cmp_internal(arg1,arg2) >= 0 ? arg1 : arg2);
+}
+
+Datum
+tidsmaller(PG_FUNCTION_ARGS)
+{
+   ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
+   ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
+
+   PG_RETURN_ITEMPOINTER(tid_cmp_internal(arg1,arg2) <= 0 ? arg1 : arg2);
+}
+
+
 /*
  * Functions to get latest tid of a specified tuple.
  *
index 6edcacc0f546b9fdb20d945a01502850ddf053cd..ce03edd0b16e0073de0a14325613855a7259ab12 100644 (file)
@@ -37,7 +37,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.338 2006/07/11 19:49:13 teodor Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.339 2006/07/21 20:51:33 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,6 +53,6 @@
  */
 
 /*                         yyyymmddN */
-#define CATALOG_VERSION_NO 200607111
+#define CATALOG_VERSION_NO 200607211
 
 #endif
index 9f3c1ed9c346ed721bf9d237c39d0eedbbc9531f..e9d5c5151ab683421795e6fd26816a25e0f34d03 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.54 2006/03/10 20:15:26 neilc Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.55 2006/07/21 20:51:33 tgl Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -117,6 +117,7 @@ DATA(insert ( 2129  text_larger     -               666     25      _null_ ));
 DATA(insert ( 2130 numeric_larger  -               1756    1700    _null_ ));
 DATA(insert ( 2050 array_larger    -               1073    2277    _null_ ));
 DATA(insert ( 2244 bpchar_larger   -               1060    1042    _null_ ));
+DATA(insert ( 2797 tidlarger       -               2800    27      _null_ ));
 
 /* min */
 DATA(insert ( 2131 int8smaller     -               412     20      _null_ ));
@@ -137,6 +138,7 @@ DATA(insert ( 2145  text_smaller    -               664     25      _null_ ));
 DATA(insert ( 2146 numeric_smaller -               1754    1700    _null_ ));
 DATA(insert ( 2051 array_smaller   -               1072    2277    _null_ ));
 DATA(insert ( 2245 bpchar_smaller  -               1058    1042    _null_ ));
+DATA(insert ( 2798 tidsmaller      -               2799    27      _null_ ));
 
 /*
  * Using int8inc for count() is cheating a little, since it really only
index 27aed661ea6bb87a9f235432208e3fb1d5e1c0de..0bbf6b0127559a3824ed072eb2028aa0efc71612 100644 (file)
@@ -23,7 +23,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.72 2006/07/11 19:49:13 teodor Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.73 2006/07/21 20:51:33 tgl Exp $
  *
  * NOTES
  *  the genbki.sh script reads this file and generates .bki
@@ -156,6 +156,16 @@ DATA(insert (  1989    0 3 f  607 ));
 DATA(insert (  1989    0 4 f  612 ));
 DATA(insert (  1989    0 5 f  610 ));
 
+/*
+ * btree tid_ops
+ */
+
+DATA(insert (  2789    0 1 f 2799 ));
+DATA(insert (  2789    0 2 f 2801 ));
+DATA(insert (  2789    0 3 f 387  ));
+DATA(insert (  2789    0 4 f 2802 ));
+DATA(insert (  2789    0 5 f 2800 ));
+
 /*
  * btree oidvector_ops
  */
index 2c6a440aee2ba40b1195de90e67290e468988043..17884fa41943d2ff413b0061389df4fbd41f3879 100644 (file)
@@ -19,7 +19,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.58 2006/05/02 15:23:16 teodor Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.59 2006/07/21 20:51:33 tgl Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -124,6 +124,7 @@ DATA(insert (   2098    0 1 2187 ));
 DATA(insert (  2099    0 1  377 ));
 DATA(insert (  2233    0 1  380 ));
 DATA(insert (  2234    0 1  381 ));
+DATA(insert (  2789    0 1 2794 ));
 
 
 /* hash */
index 5c86da4c5d69bcd11c2ccf827e4e45a00ac48824..cee9f752bf087f23530f8844078593465c5c4350 100644 (file)
@@ -27,7 +27,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.70 2006/05/02 15:23:16 teodor Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.71 2006/07/21 20:51:33 tgl Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -162,6 +162,7 @@ DATA(insert OID = 2222 (    405     bool_ops        PGNSP PGUID   16 t 0 ));
 #define BOOL_HASH_OPS_OID 2222
 DATA(insert OID = 2223 (   405     bytea_ops       PGNSP PGUID   17 t 0 ));
 DATA(insert OID = 2224 (   405     int2vector_ops  PGNSP PGUID   22 t 0 ));
+DATA(insert OID = 2789 (   403     tid_ops         PGNSP PGUID   27 t 0 ));
 DATA(insert OID = 2225 (   405     xid_ops         PGNSP PGUID   28 t 0 ));
 DATA(insert OID = 2226 (   405     cid_ops         PGNSP PGUID   29 t 0 ));
 DATA(insert OID = 2227 (   405     abstime_ops     PGNSP PGUID  702 t 0 ));
index a296bf3e41c321edafbcdebd28e4d2031a8b5972..95349b2bf566d4854df199ca539891e4b065f0e1 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.143 2006/05/02 11:28:55 teodor Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.144 2006/07/21 20:51:33 tgl Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -128,9 +128,15 @@ DATA(insert OID = 388 (  "!"      PGNSP PGUID r f  20   0  1700   0   0   0   0  0
 DATA(insert OID = 389 (  "!!"     PGNSP PGUID l f   0  20  1700   0   0   0   0  0   0 numeric_fac - - ));
 DATA(insert OID = 385 (  "="      PGNSP PGUID b t  29  29  16 385   0   0   0   0   0 cideq eqsel eqjoinsel ));
 DATA(insert OID = 386 (  "="      PGNSP PGUID b t  22  22  16 386   0   0   0   0   0 int2vectoreq eqsel eqjoinsel ));
-DATA(insert OID = 387 (  "="      PGNSP PGUID b f  27  27  16 387 402   0   0   0   0 tideq eqsel eqjoinsel ));
+
+DATA(insert OID = 387 (  "="      PGNSP PGUID b f  27  27  16 387 402 2799 2799 2799 2800 tideq eqsel eqjoinsel ));
 #define TIDEqualOperator   387
-DATA(insert OID = 402 (  "<>"     PGNSP PGUID b f  27  27  16 402 387   0   0   0   0 tidne neqsel neqjoinsel ));
+DATA(insert OID = 402 (  "<>"     PGNSP PGUID b f  27  27  16 402 387 0 0 0 0 tidne neqsel neqjoinsel ));
+DATA(insert OID = 2799 (  "<"      PGNSP PGUID b f  27  27  16 2800 2802 0 0 0 0 tidlt scalarltsel scalarltjoinsel ));
+#define TIDLessOperator    2799
+DATA(insert OID = 2800 (  ">"      PGNSP PGUID b f  27  27  16 2799 2801 0 0 0 0 tidgt scalargtsel scalargtjoinsel ));
+DATA(insert OID = 2801 (  "<="     PGNSP PGUID b f  27  27  16 2802 2800 0 0 0 0 tidle scalarltsel scalarltjoinsel ));
+DATA(insert OID = 2802 (  ">="     PGNSP PGUID b f  27  27  16 2801 2799 0 0 0 0 tidge scalargtsel scalargtjoinsel ));
 
 DATA(insert OID = 410 ( "="           PGNSP PGUID b t  20  20  16 410 411 412 412 412 413 int8eq eqsel eqjoinsel ));
 DATA(insert OID = 411 ( "<>"      PGNSP PGUID b f  20  20  16 411 410 0 0 0 0 int8ne neqsel neqjoinsel ));
@@ -262,6 +268,7 @@ DATA(insert OID = 596 (  "|/"      PGNSP PGUID l f   0 701 701   0   0   0   0   0   0 ds
 DATA(insert OID = 597 (  "||/"    PGNSP PGUID l f   0 701 701   0   0   0   0   0   0 dcbrt - - ));
 DATA(insert OID = 1284 (  "|"     PGNSP PGUID l f   0 704 702  0  0   0   0   0   0 tintervalstart - - ));
 DATA(insert OID = 606 (  "<#>"    PGNSP PGUID b f 702 702 704  0  0   0   0   0   0 mktinterval - - ));
+
 DATA(insert OID = 607 (  "="      PGNSP PGUID b t  26  26  16 607 608 609 609 609 610 oideq eqsel eqjoinsel ));
 #define MIN_OIDCMP 607         /* used by cache code */
 DATA(insert OID = 608 (  "<>"     PGNSP PGUID b f  26  26  16 608 607  0  0   0   0 oidne neqsel neqjoinsel ));
index efa54141536b92a88f0b731e1c13430bcf78397a..9743d6c4a8f7d9d52959088d56301a9eb5bf9c9e 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.415 2006/07/03 22:45:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.416 2006/07/21 20:51:33 tgl Exp $
  *
  * NOTES
  *   The script catalog/genbki.sh reads this file and generates .bki
@@ -1551,11 +1551,6 @@ DESCR("matches regex., case-insensitive");
 DATA(insert OID = 1241 (  nameicregexne    PGNSP PGUID 12 f f t f i 2 16 "19 25" _null_ _null_ _null_ nameicregexne - _null_ ));
 DESCR("does not match regex., case-insensitive");
 
-DATA(insert OID = 2322 ( pg_tablespace_size        PGNSP PGUID 12 f f t f v 1 20 "26" _null_ _null_ _null_ pg_tablespace_size_oid - _null_ ));
-DESCR("Calculate total disk space usage for the specified tablespace");
-DATA(insert OID = 2323 ( pg_tablespace_size        PGNSP PGUID 12 f f t f v 1 20 "19" _null_ _null_ _null_ pg_tablespace_size_name - _null_ ));
-DESCR("Calculate total disk space usage for the specified tablespace");
-
 DATA(insert OID = 1251 (  int4abs         PGNSP PGUID 12 f f t f i 1 23 "23" _null_ _null_ _null_  int4abs - _null_ ));
 DESCR("absolute value");
 DATA(insert OID = 1253 (  int2abs         PGNSP PGUID 12 f f t f i 1 21 "21" _null_ _null_ _null_  int2abs - _null_ ));
@@ -1564,9 +1559,6 @@ DESCR("absolute value");
 DATA(insert OID = 1263 (  interval        PGNSP PGUID 12 f f t f s 1 1186 "25" _null_ _null_ _null_    text_interval - _null_ ));
 DESCR("convert text to interval");
 
-DATA(insert OID = 2324 ( pg_database_size      PGNSP PGUID 12 f f t f v 1 20 "26" _null_ _null_ _null_ pg_database_size_oid - _null_ ));
-DESCR("Calculate total disk space usage for the specified database");
-
 DATA(insert OID = 1271 (  overlaps        PGNSP PGUID 12 f f f f i 4 16 "1266 1266 1266 1266" _null_ _null_ _null_ overlaps_timetz - _null_ ));
 DESCR("SQL92 interval comparison");
 DATA(insert OID = 1272 (  datetime_pl     PGNSP PGUID 12 f f t f i 2 1114 "1082 1083" _null_ _null_ _null_ datetime_timestamp - _null_ ));
@@ -1611,9 +1603,20 @@ DATA(insert OID = 1294 ( currtid2           PGNSP PGUID 12 f f t f v 2 27 "25 27" _nul
 DESCR("latest tid of a tuple");
 DATA(insert OID = 1265 ( tidne            PGNSP PGUID 12 f f t f i 2 16 "27 27" _null_ _null_ _null_ tidne - _null_ ));
 DESCR("not equal");
-
-DATA(insert OID = 2168 ( pg_database_size      PGNSP PGUID 12 f f t f v 1 20 "19" _null_ _null_ _null_ pg_database_size_name - _null_ ));
-DESCR("Calculate total disk space usage for the specified database");
+DATA(insert OID = 2790 ( tidgt            PGNSP PGUID 12 f f t f i 2 16 "27 27" _null_ _null_ _null_ tidgt - _null_));
+DESCR("greater-than");
+DATA(insert OID = 2791 ( tidlt            PGNSP PGUID 12 f f t f i 2 16 "27 27" _null_ _null_ _null_ tidlt - _null_));
+DESCR("less-than");
+DATA(insert OID = 2792 ( tidge            PGNSP PGUID 12 f f t f i 2 16 "27 27" _null_ _null_ _null_ tidge - _null_));
+DESCR("greater-than-or-equal");
+DATA(insert OID = 2793 ( tidle            PGNSP PGUID 12 f f t f i 2 16 "27 27" _null_ _null_ _null_ tidle - _null_));
+DESCR("less-than-or-equal");
+DATA(insert OID = 2794 ( bttidcmp         PGNSP PGUID 12 f f t f i 2 23 "27 27" _null_ _null_ _null_ bttidcmp - _null_));
+DESCR("btree less-equal-greater");
+DATA(insert OID = 2795 ( tidlarger        PGNSP PGUID 12 f f t f i 2 27 "27 27" _null_ _null_ _null_ tidlarger - _null_ ));
+DESCR("larger of two");
+DATA(insert OID = 2796 ( tidsmaller           PGNSP PGUID 12 f f t f i 2 27 "27 27" _null_ _null_ _null_ tidsmaller - _null_ ));
+DESCR("smaller of two");
 
 DATA(insert OID = 1296 (  timedate_pl     PGNSP PGUID 14 f f t f i 2 1114 "1083 1082" _null_ _null_ _null_ "select ($2 + $1)" - _null_ ));
 DESCR("convert time and date to timestamp");
@@ -3064,7 +3067,6 @@ DESCR("is opclass visible in search path?");
 DATA(insert OID = 2093 (  pg_conversion_is_visible PGNSP PGUID 12 f f t f s 1 16 "26" _null_ _null_ _null_ pg_conversion_is_visible - _null_ ));
 DESCR("is conversion visible in search path?");
 
-
 DATA(insert OID = 2171 ( pg_cancel_backend     PGNSP PGUID 12 f f t f v 1 16 "23" _null_ _null_ _null_ pg_cancel_backend - _null_ ));
 DESCR("Cancel a server process' current query");
 DATA(insert OID = 2172 ( pg_start_backup       PGNSP PGUID 12 f f t f v 1 25 "25" _null_ _null_ _null_ pg_start_backup - _null_ ));
@@ -3124,6 +3126,7 @@ DATA(insert OID = 2129 (  max             PGNSP PGUID 12 t f f f i 1 25 "25" _null_ _null
 DATA(insert OID = 2130 (  max              PGNSP PGUID 12 t f f f i 1 1700 "1700" _null_ _null_ _null_ aggregate_dummy - _null_ ));
 DATA(insert OID = 2050 (  max              PGNSP PGUID 12 t f f f i 1 2277 "2277" _null_ _null_ _null_ aggregate_dummy - _null_ ));
 DATA(insert OID = 2244 (  max              PGNSP PGUID 12 t f f f i 1 1042 "1042" _null_ _null_ _null_ aggregate_dummy - _null_ ));
+DATA(insert OID = 2797 (  max              PGNSP PGUID 12 t f f f i 1 27 "27" _null_ _null_ _null_ aggregate_dummy - _null_ ));
 
 DATA(insert OID = 2131 (  min              PGNSP PGUID 12 t f f f i 1 20 "20" _null_ _null_ _null_ aggregate_dummy - _null_ ));
 DATA(insert OID = 2132 (  min              PGNSP PGUID 12 t f f f i 1 23 "23" _null_ _null_ _null_ aggregate_dummy - _null_ ));
@@ -3143,6 +3146,7 @@ DATA(insert OID = 2145 (  min             PGNSP PGUID 12 t f f f i 1 25 "25" _null_ _null
 DATA(insert OID = 2146 (  min              PGNSP PGUID 12 t f f f i 1 1700 "1700" _null_ _null_ _null_ aggregate_dummy - _null_ ));
 DATA(insert OID = 2051 (  min              PGNSP PGUID 12 t f f f i 1 2277 "2277" _null_ _null_ _null_ aggregate_dummy - _null_ ));
 DATA(insert OID = 2245 (  min              PGNSP PGUID 12 t f f f i 1 1042 "1042" _null_ _null_ _null_ aggregate_dummy - _null_ ));
+DATA(insert OID = 2798 (  min              PGNSP PGUID 12 t f f f i 1 27 "27" _null_ _null_ _null_ aggregate_dummy - _null_ ));
 
 DATA(insert OID = 2147 (  count                PGNSP PGUID 12 t f f f i 1 20 "2276" _null_ _null_ _null_  aggregate_dummy - _null_ ));
 
@@ -3305,17 +3309,6 @@ DESCR("current user privilege on schema by schema name");
 DATA(insert OID = 2273 (  has_schema_privilege        PGNSP PGUID 12 f f t f s 2 16 "26 25" _null_ _null_ _null_ has_schema_privilege_id - _null_ ));
 DESCR("current user privilege on schema by schema oid");
 
-DATA(insert OID = 2325 ( pg_relation_size      PGNSP PGUID 12 f f t f v 1 20 "26" _null_ _null_ _null_ pg_relation_size_oid - _null_ ));
-DESCR("Calculate disk space usage for the specified table or index");
-DATA(insert OID = 2289 ( pg_relation_size      PGNSP PGUID 12 f f t f v 1 20 "25" _null_ _null_ _null_ pg_relation_size_name - _null_ ));
-DESCR("Calculate disk space usage for the specified table or index");
-DATA(insert OID = 2286 ( pg_total_relation_size        PGNSP PGUID 12 f f t f v 1 20 "26" _null_ _null_ _null_ pg_total_relation_size_oid - _null_ ));
-DESCR("Calculate total disk space usage for the specified table and associated indexes and toast tables");
-DATA(insert OID = 2287 ( pg_total_relation_size        PGNSP PGUID 12 f f t f v 1 20 "25" _null_ _null_ _null_ pg_total_relation_size_name - _null_ ));
-DESCR("Calculate total disk space usage for the specified table and associated indexes and toast tables");
-DATA(insert OID = 2288 ( pg_size_pretty            PGNSP PGUID 12 f f t f v 1 25 "20" _null_ _null_ _null_ pg_size_pretty - _null_ ));
-DESCR("Convert a long int to a human readable text using size units");
-
 DATA(insert OID = 2390 (  has_tablespace_privilege        PGNSP PGUID 12 f f t f s 3 16 "19 25 25" _null_ _null_ _null_    has_tablespace_privilege_name_name - _null_ ));
 DESCR("user privilege on tablespace by username, tablespace name");
 DATA(insert OID = 2391 (  has_tablespace_privilege        PGNSP PGUID 12 f f t f s 3 16 "19 26 25" _null_ _null_ _null_    has_tablespace_privilege_name_id - _null_ ));
@@ -3342,6 +3335,27 @@ DESCR("current user privilege on role by role name");
 DATA(insert OID = 2710 (  pg_has_role      PGNSP PGUID 12 f f t f s 2 16 "26 25" _null_ _null_ _null_ pg_has_role_id - _null_ ));
 DESCR("current user privilege on role by role oid");
 
+DATA(insert OID = 1269 (  pg_column_size       PGNSP PGUID 12 f f t f s 1 23 "2276" _null_ _null_ _null_  pg_column_size - _null_ ));
+DESCR("bytes required to store the value, perhaps with compression");
+DATA(insert OID = 2322 ( pg_tablespace_size        PGNSP PGUID 12 f f t f v 1 20 "26" _null_ _null_ _null_ pg_tablespace_size_oid - _null_ ));
+DESCR("Calculate total disk space usage for the specified tablespace");
+DATA(insert OID = 2323 ( pg_tablespace_size        PGNSP PGUID 12 f f t f v 1 20 "19" _null_ _null_ _null_ pg_tablespace_size_name - _null_ ));
+DESCR("Calculate total disk space usage for the specified tablespace");
+DATA(insert OID = 2324 ( pg_database_size      PGNSP PGUID 12 f f t f v 1 20 "26" _null_ _null_ _null_ pg_database_size_oid - _null_ ));
+DESCR("Calculate total disk space usage for the specified database");
+DATA(insert OID = 2168 ( pg_database_size      PGNSP PGUID 12 f f t f v 1 20 "19" _null_ _null_ _null_ pg_database_size_name - _null_ ));
+DESCR("Calculate total disk space usage for the specified database");
+DATA(insert OID = 2325 ( pg_relation_size      PGNSP PGUID 12 f f t f v 1 20 "26" _null_ _null_ _null_ pg_relation_size_oid - _null_ ));
+DESCR("Calculate disk space usage for the specified table or index");
+DATA(insert OID = 2289 ( pg_relation_size      PGNSP PGUID 12 f f t f v 1 20 "25" _null_ _null_ _null_ pg_relation_size_name - _null_ ));
+DESCR("Calculate disk space usage for the specified table or index");
+DATA(insert OID = 2286 ( pg_total_relation_size        PGNSP PGUID 12 f f t f v 1 20 "26" _null_ _null_ _null_ pg_total_relation_size_oid - _null_ ));
+DESCR("Calculate total disk space usage for the specified table and associated indexes and toast tables");
+DATA(insert OID = 2287 ( pg_total_relation_size        PGNSP PGUID 12 f f t f v 1 20 "25" _null_ _null_ _null_ pg_total_relation_size_name - _null_ ));
+DESCR("Calculate total disk space usage for the specified table and associated indexes and toast tables");
+DATA(insert OID = 2288 ( pg_size_pretty            PGNSP PGUID 12 f f t f v 1 25 "20" _null_ _null_ _null_ pg_size_pretty - _null_ ));
+DESCR("Convert a long int to a human readable text using size units");
+
 DATA(insert OID = 2290 (  record_in            PGNSP PGUID 12 f f t f v 3 2249 "2275 26 23" _null_ _null_ _null_   record_in - _null_ ));
 DESCR("I/O");
 DATA(insert OID = 2291 (  record_out       PGNSP PGUID 12 f f t f v 1 2275 "2249" _null_ _null_ _null_ record_out - _null_ ));
@@ -3780,10 +3794,6 @@ DESCR("current value from last used sequence");
 DATA(insert OID = 2560 (  pg_postmaster_start_time PGNSP PGUID 12 f f t f s 0 1184 "" _null_ _null_ _null_ pgsql_postmaster_start_time - _null_ ));
 DESCR("postmaster start time");
 
-/* Column storage size */
-DATA(insert OID = 1269 (  pg_column_size      PGNSP PGUID 12 f f t f s 1 23 "2276" _null_ _null_ _null_  pg_column_size - _null_ ));
-DESCR("bytes required to store the value, perhaps with compression");
-
 /* new functions for Y-direction rtree opclasses */
 DATA(insert OID = 2562 (  box_below           PGNSP PGUID 12 f f t f i 2 16 "603 603" _null_ _null_ _null_ box_below - _null_ ));
 DESCR("is below");
index a46f187bcbfe08f9311a46ec34a6a12155884cce..74dee731510556e4184af2eeb041e3cff9d32c06 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.279 2006/04/08 18:49:52 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.280 2006/07/21 20:51:33 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -538,6 +538,13 @@ extern Datum tidrecv(PG_FUNCTION_ARGS);
 extern Datum tidsend(PG_FUNCTION_ARGS);
 extern Datum tideq(PG_FUNCTION_ARGS);
 extern Datum tidne(PG_FUNCTION_ARGS);
+extern Datum tidlt(PG_FUNCTION_ARGS);
+extern Datum tidle(PG_FUNCTION_ARGS);
+extern Datum tidgt(PG_FUNCTION_ARGS);
+extern Datum tidge(PG_FUNCTION_ARGS);
+extern Datum bttidcmp(PG_FUNCTION_ARGS);
+extern Datum tidlarger(PG_FUNCTION_ARGS);
+extern Datum tidsmaller(PG_FUNCTION_ARGS);
 extern Datum currtid_byreloid(PG_FUNCTION_ARGS);
 extern Datum currtid_byrelname(PG_FUNCTION_ARGS);