OSDN Git Service

Define boolean functions and operators for lseg <, <=, <>, >=, >.
authorThomas G. Lockhart <lockhart@fourpalms.org>
Tue, 3 Feb 1998 16:01:59 +0000 (16:01 +0000)
committerThomas G. Lockhart <lockhart@fourpalms.org>
Tue, 3 Feb 1998 16:01:59 +0000 (16:01 +0000)
Define functions and operators for closest point to lseg on box,
 to line on lseg, to lseg on lseg.
Define function and operator for length of lseg.
Change length operator from '??' to '@-@'
 (currently defined for path and lseg).

src/include/catalog/pg_operator.h
src/include/catalog/pg_proc.h
src/include/utils/geo_decls.h

index a16100e..c701dd8 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_operator.h,v 1.23 1998/01/24 22:48:36 momjian Exp $
+ * $Id: pg_operator.h,v 1.24 1998/02/03 16:01:54 thomas Exp $
  *
  * NOTES
  *       the genbki.sh script reads this file and generates .bki
@@ -387,7 +387,7 @@ DATA(insert OID =  795 (  "<="         PGUID 0 b t f  602  602      701  794  0 0 0 path_n
 DATA(insert OID =  796 (  ">="    PGUID 0 b t f  602  602      701  793  0 0 0 path_n_ge intltsel intltjoinsel ));
 DATA(insert OID =  797 (  "#"     PGUID 0 l t f        0  602   23    0  0 0 0 path_npoints - - ));
 DATA(insert OID =  798 (  "?#"    PGUID 0 b t f  602  602       16    0  0 0 0 path_inter - - ));
-DATA(insert OID =  799 (  "??"    PGUID 0 l t f        0  602  701    0  0 0 0 path_length - - ));
+DATA(insert OID =  799 (  "@-@"           PGUID 0 l t f        0  602  701    0  0 0 0 path_length - - ));
 DATA(insert OID =  800 (  ">^"    PGUID 0 b t f  603  603       16    0  0 0 0 box_above intltsel intltjoinsel ));
 DATA(insert OID =  801 (  "<^"    PGUID 0 b t f  603  603       16    0  0 0 0 box_below intltsel intltjoinsel ));
 DATA(insert OID =  802 (  "?#"    PGUID 0 b t f  603  603       16    0  0 0 0 box_overlap - - ));
@@ -647,8 +647,18 @@ DATA(insert OID = 1559 (  "##"       PGUID 0 b t f  600  603  600    0  0 0 0 close_p
 DATA(insert OID = 1566 (  "##"   PGUID 0 b t f  601  628  600    0  0 0 0 close_sl - - ));
 DATA(insert OID = 1567 (  "##"   PGUID 0 b t f  601  603  600    0  0 0 0 close_sb - - ));
 DATA(insert OID = 1568 (  "##"   PGUID 0 b t f  628  603  600    0  0 0 0 close_lb - - ));
+DATA(insert OID = 1577 (  "##"   PGUID 0 b t f  628  601  600    0  0 0 0 close_ls - - ));
+DATA(insert OID = 1578 (  "##"   PGUID 0 b t f  601  601  600    0  0 0 0 close_lseg - - ));
 DATA(insert OID = 1585 (  "/"    PGUID 0 b t f 1186 1186 1186    0  0 0 0 timespan_div - - ));
 
+DATA(insert OID = 1586 (  "<>"   PGUID 0 b t f  601  601       16 1535  0 0 0 lseg_eq intltsel - ));
+DATA(insert OID = 1587 (  "<"    PGUID 0 b t f  601  601       16 1590  0 0 0 lseg_lt intltsel - ));
+DATA(insert OID = 1588 (  "<="   PGUID 0 b t f  601  601       16 1589  0 0 0 lseg_le intltsel - ));
+DATA(insert OID = 1589 (  ">"    PGUID 0 b t f  601  601       16 1588  0 0 0 lseg_gt intltsel - ));
+DATA(insert OID = 1590 (  ">="   PGUID 0 b t f  601  601       16 1587  0 0 0 lseg_ge intltsel - ));
+
+DATA(insert OID = 1591 (  "@-@"          PGUID 0 l t f 0  601  701    0  0 0 0 lseg_length - - ));
+
 /*
  * function prototypes
  */
index aaaa236..ffc1e05 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_proc.h,v 1.45 1998/01/26 01:01:31 momjian Exp $
+ * $Id: pg_proc.h,v 1.46 1998/02/03 16:01:59 thomas Exp $
  *
  * NOTES
  *       The script catalog/genbki.sh reads this file and generates .bki
@@ -178,7 +178,7 @@ DESCR("equals");
 
 DATA(insert OID =  66 (  int4lt                           PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID =  67 (  texteq                           PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0      foo bar ));
+DATA(insert OID =  67 (  texteq                           PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0  foo bar ));
 DESCR("equals");
 #define TextEqualRegProcedure                  67
 
@@ -209,13 +209,13 @@ DATA(insert OID =  79 (  nameregexeq         PGUID 11 f t f 2 f 16 "19 25" 100 0 0 10
 DESCR("matches regex., case-sensitive");
 DATA(insert OID = 1252 (  nameregexne     PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100  foo bar ));
 DESCR("does not match regex., case-sensitive");
-DATA(insert OID = 1254 (  textregexeq     PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0      foo bar ));
+DATA(insert OID = 1254 (  textregexeq     PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0  foo bar ));
 DESCR("matches regex., case-sensitive");
-DATA(insert OID = 1256 (  textregexne     PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0      foo bar ));
+DATA(insert OID = 1256 (  textregexne     PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0  foo bar ));
 DESCR("does not match regex., case-sensitive");
-DATA(insert OID = 1257 (  textlen                 PGUID 11 f t f 1 f 23 "25" 100 0 1 0 foo bar ));
+DATA(insert OID = 1257 (  textlen                 PGUID 11 f t f 1 f 23 "25" 100 0 1 0  foo bar ));
 DESCR("length");
-DATA(insert OID = 1258 (  textcat                 PGUID 11 f t f 2 f 25 "25 25" 100 0 1 0      foo bar ));
+DATA(insert OID = 1258 (  textcat                 PGUID 11 f t f 2 f 25 "25 25" 100 0 1 0  foo bar ));
 DESCR("concat");
 DATA(insert OID =  84 (  boolne                           PGUID 11 f t f 2 f 16 "16 16" 100 0 0 100  foo bar ));
 DESCR("not equal");
@@ -278,29 +278,29 @@ DATA(insert OID = 123 (  box_in                      PGUID 11 f t f 1 f 603 "0" 100 0 0 100  foo
 DESCR("(internal)");
 DATA(insert OID = 124 (  box_out                  PGUID 11 f t f 1 f 23  "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 125 (  box_overlap      PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
+DATA(insert OID = 125 (  box_overlap      PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
 DESCR("overlaps");
-DATA(insert OID = 126 (  box_ge                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
+DATA(insert OID = 126 (  box_ge                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 127 (  box_gt                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
+DATA(insert OID = 127 (  box_gt                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 128 (  box_eq                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
+DATA(insert OID = 128 (  box_eq                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 129 (  box_lt                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
+DATA(insert OID = 129 (  box_lt                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 130 (  box_le                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
+DATA(insert OID = 130 (  box_le                           PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 131 (  point_above      PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
+DATA(insert OID = 131 (  point_above      PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
 DESCR("is above");
-DATA(insert OID = 132 (  point_left               PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
+DATA(insert OID = 132 (  point_left               PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
 DESCR("is left of");
-DATA(insert OID = 133 (  point_right      PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
+DATA(insert OID = 133 (  point_right      PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
 DESCR("is left of");
-DATA(insert OID = 134 (  point_below      PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
+DATA(insert OID = 134 (  point_below      PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
 DESCR("is below");
-DATA(insert OID = 135 (  point_eq                 PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
+DATA(insert OID = 135 (  point_eq                 PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
 DESCR("same as");
-DATA(insert OID = 136 (  on_pb                    PGUID 11 f t f 2 f 16 "600 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 136 (  on_pb                    PGUID 11 f t f 2 f 16 "600 603" 100 0 0 100  foo bar ));
 DESCR("point is inside");
 DATA(insert OID = 137 (  on_ppath                 PGUID 11 f t f 2 f 16 "600 602" 100 0 1 0  foo bar ));
 DESCR("contained in");
@@ -314,7 +314,7 @@ DATA(insert OID = 141 (  int4mul               PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100
 DESCR("multiply");
 DATA(insert OID = 142 (  int4fac                  PGUID 11 f t f 1 f 23 "23" 100 0 0 100  foo bar ));
 DESCR("fraction");
-DATA(insert OID = 143 (  pointdist                PGUID 11 f t f 2 f 23 "600 600" 100 0 0 100  foo bar ));
+DATA(insert OID = 143 (  pointdist                PGUID 11 f t f 2 f 23 "600 600" 100 0 0 100  foo bar ));
 DESCR("");
 DATA(insert OID = 144 (  int4ne                           PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100  foo bar ));
 DESCR("not equal");
@@ -343,7 +343,7 @@ DATA(insert OID = 155 (  int2mod               PGUID 11 f t f 2 f 21 "21 21" 100 0 0 100
 DESCR("modulus");
 DATA(insert OID = 156 (  int4mod                  PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100  foo bar ));
 DESCR("modulus");
-DATA(insert OID = 157 (  textne                           PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0      foo bar ));
+DATA(insert OID = 157 (  textne                           PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0  foo bar ));
 DESCR("not equal");
 DATA(insert OID = 158 (  int24eq                  PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100  foo bar ));
 DESCR("equals");
@@ -403,19 +403,19 @@ DESCR("equals");
 
 DATA(insert OID = 185 (  oidne                    PGUID 11 f t f 2 f 16 "26 26" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 186 (  box_same                 PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 186 (  box_same                 PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
 DESCR("same as");
-DATA(insert OID = 187 (  box_contain      PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 187 (  box_contain      PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
 DESCR("contains");
-DATA(insert OID = 188 (  box_left                 PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 188 (  box_left                 PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
 DESCR("is left of");
-DATA(insert OID = 189 (  box_overleft     PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 189 (  box_overleft     PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
 DESCR("overlaps, but does not extend to right of");
-DATA(insert OID = 190 (  box_overright    PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 190 (  box_overright    PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
 DESCR("overlaps, but does not extend to left of");
-DATA(insert OID = 191 (  box_right                PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 191 (  box_right                PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
 DESCR("is left of");
-DATA(insert OID = 192 (  box_contained    PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 192 (  box_contained    PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100  foo bar ));
 DESCR("contained in");
 DATA(insert OID = 193 (  rt_box_union     PGUID 11 f t f 2 f 603 "603 603" 100 0 0 100  foo bar ));
 DESCR("r-tree");
@@ -534,53 +534,53 @@ DATA(insert OID = 246 (  tintervalin         PGUID 11 f t f 1 f 704 "0" 100 0 0 100
 DESCR("(internal)");
 DATA(insert OID = 247 (  tintervalout     PGUID 11 f t f 1 f 23  "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 248 (  ininterval               PGUID 11 f t f 2 f 16 "702 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 248 (  ininterval               PGUID 11 f t f 2 f 16 "702 704" 100 0 0 100  foo bar ));
 DESCR("abstime in tinterval");
 DATA(insert OID = 249 (  intervalrel      PGUID 11 f t f 1 f 703 "704" 100 0 0 100  foo bar ));
 DESCR("");
 DATA(insert OID = 250 (  timenow                  PGUID 11 f t f 0 f 702 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 251 (  abstimeeq                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
+DATA(insert OID = 251 (  abstimeeq                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 252 (  abstimene                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
+DATA(insert OID = 252 (  abstimene                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 253 (  abstimelt                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
+DATA(insert OID = 253 (  abstimelt                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 254 (  abstimegt                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
+DATA(insert OID = 254 (  abstimegt                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 255 (  abstimele                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
+DATA(insert OID = 255 (  abstimele                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 256 (  abstimege                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
+DATA(insert OID = 256 (  abstimege                PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 257 (  reltimeeq                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 257 (  reltimeeq                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 258 (  reltimene                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 258 (  reltimene                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 259 (  reltimelt                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 259 (  reltimelt                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 260 (  reltimegt                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 260 (  reltimegt                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 261 (  reltimele                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 261 (  reltimele                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 262 (  reltimege                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 262 (  reltimege                PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 263 (  intervalsame     PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 263 (  intervalsame     PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("same as");
-DATA(insert OID = 264 (  intervalct               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 264 (  intervalct               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 265 (  intervalov               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 265 (  intervalov               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("overlaps");
-DATA(insert OID = 266 (  intervalleneq    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 266 (  intervalleneq    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
 DESCR("length equals");
-DATA(insert OID = 267 (  intervallenne    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 267 (  intervallenne    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
 DESCR("length not equal to");
-DATA(insert OID = 268 (  intervallenlt    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 268 (  intervallenlt    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
 DESCR("length less-than");
-DATA(insert OID = 269 (  intervallengt    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 269 (  intervallengt    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
 DESCR("length greater-than");
-DATA(insert OID = 270 (  intervallenle    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 270 (  intervallenle    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
 DESCR("length less-than-or-equals");
-DATA(insert OID = 271 (  intervallenge    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
+DATA(insert OID = 271 (  intervallenge    PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100  foo bar ));
 DESCR("length greater-than-or-equals");
 DATA(insert OID = 272 (  intervalstart    PGUID 11 f t f 1 f 702 "704" 100 0 0 100  foo bar ));
 DESCR("start of interval");
@@ -588,15 +588,15 @@ DATA(insert OID = 273 (  intervalend         PGUID 11 f t f 1 f 702 "704" 100 0 0 100
 DESCR("");
 DATA(insert OID = 274 (  timeofday                PGUID 11 f t f 0 f 25 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 275 (  abstime_finite    PGUID 11 f t f 1 f 16 "702" 100 0 0 100     foo bar ));
+DATA(insert OID = 275 (  abstime_finite    PGUID 11 f t f 1 f 16 "702" 100 0 0 100  foo bar ));
 DESCR("");
 
 DATA(insert OID = 276 (  int2fac                  PGUID 11 f t f 1 f 21 "21" 100 0 0 100  foo bar ));
 DESCR("");
 
-DATA(insert OID = 277 (  inter_sl                 PGUID 11 f t f 2 f 16 "601 628" 100 0 0 100  foo bar ));
+DATA(insert OID = 277 (  inter_sl                 PGUID 11 f t f 2 f 16 "601 628" 100 0 0 100  foo bar ));
 DESCR("");
-DATA(insert OID = 278 (  inter_lb                 PGUID 11 f t f 2 f 16 "628 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 278 (  inter_lb                 PGUID 11 f t f 2 f 16 "628 603" 100 0 0 100  foo bar ));
 DESCR("");
 
 DATA(insert OID = 279 (  float48mul               PGUID 11 f t f 2 f 701 "700 701" 100 0 0 100  foo bar ));
@@ -616,58 +616,58 @@ DESCR("addition");
 DATA(insert OID = 286 (  float84mi                PGUID 11 f t f 2 f 701 "701 700" 100 0 0 100  foo bar ));
 DESCR("subtract");
 
-DATA(insert OID = 287 (  float4eq                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 287 (  float4eq                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 288 (  float4ne                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 288 (  float4ne                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 289 (  float4lt                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 289 (  float4lt                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 290 (  float4le                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 290 (  float4le                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 291 (  float4gt                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 291 (  float4gt                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 292 (  float4ge                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 292 (  float4ge                 PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
 
-DATA(insert OID = 293 (  float8eq                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 293 (  float8eq                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 294 (  float8ne                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 294 (  float8ne                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 295 (  float8lt                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 295 (  float8lt                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 296 (  float8le                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 296 (  float8le                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 297 (  float8gt                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 297 (  float8gt                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 298 (  float8ge                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 298 (  float8ge                 PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
 
-DATA(insert OID = 299 (  float48eq                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 299 (  float48eq                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
 DESCR("equals");
 
 /* OIDS 300 - 399 */
 
-DATA(insert OID = 300 (  float48ne                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 300 (  float48ne                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 301 (  float48lt                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 301 (  float48lt                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 302 (  float48le                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 302 (  float48le                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 303 (  float48gt                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 303 (  float48gt                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 304 (  float48ge                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 304 (  float48ge                PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 305 (  float84eq                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 305 (  float84eq                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 306 (  float84ne                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 306 (  float84ne                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 307 (  float84lt                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 307 (  float84lt                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 308 (  float84le                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 308 (  float84le                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 309 (  float84gt                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 309 (  float84gt                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 310 (  float84ge                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 310 (  float84ge                PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
 
 DATA(insert OID = 311 (  ftod                     PGUID 11 f t f 2 f 701 "700" 100 0 0 100  foo bar ));
@@ -678,7 +678,7 @@ DATA(insert OID = 313 (  i2toi4                        PGUID 11 f t f 1 f  23  "21" 100 0 0 100  f
 DESCR("convert");
 DATA(insert OID = 314 (  i4toi2                           PGUID 11 f t f 1 f  21  "23" 100 0 0 100  foo bar ));
 DESCR("convert");
-DATA(insert OID = 315 (  keyfirsteq               PGUID 11 f t f 2 f  16       "0 21" 100 0 0 100      foo bar ));
+DATA(insert OID = 315 (  keyfirsteq               PGUID 11 f t f 2 f  16       "0 21" 100 0 0 100  foo bar ));
 DESCR("");
 DATA(insert OID = 316 (  i4tod                    PGUID 11 f t f 1 f 701  "23" 100 0 0 100  foo bar ));
 DESCR("convert");
@@ -755,13 +755,13 @@ DATA(insert OID = 352 (  btint42cmp                  PGUID 11 f t f 2 f 23 "23 21" 100 0 0 10
 DESCR("btree less-equal-greater");
 DATA(insert OID = 353 (  btint24cmp               PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 354 (  btfloat4cmp      PGUID 11 f t f 2 f 23 "700 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 354 (  btfloat4cmp      PGUID 11 f t f 2 f 23 "700 700" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 355 (  btfloat8cmp      PGUID 11 f t f 2 f 23 "701 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 355 (  btfloat8cmp      PGUID 11 f t f 2 f 23 "701 701" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
 DATA(insert OID = 356 (  btoidcmp                 PGUID 11 f t f 2 f 23 "26 26" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 357 (  btabstimecmp     PGUID 11 f t f 2 f 23 "702 702" 100 0 0 100  foo bar ));
+DATA(insert OID = 357 (  btabstimecmp     PGUID 11 f t f 2 f 23 "702 702" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
 DATA(insert OID = 358 (  btcharcmp                PGUID 11 f t f 2 f 23 "18 18" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
@@ -781,20 +781,20 @@ DESCR("distance between");
 DATA(insert OID = 365 (  dist_sb                  PGUID 11 f t f 2 f 701 "601 603" 100 0 0 100  foo bar ));
 DESCR("distance between");
 DATA(insert OID = 366 (  close_ps                 PGUID 11 f t f 2 f 600 "600 601" 100 0 0 100  foo bar ));
-DESCR("");
+DESCR("closest point on line segment");
 DATA(insert OID = 367 (  close_pb                 PGUID 11 f t f 2 f 600 "600 603" 100 0 0 100  foo bar ));
-DESCR("");
+DESCR("closest point on box");
 DATA(insert OID = 368 (  close_sb                 PGUID 11 f t f 2 f 600 "601 603" 100 0 0 100  foo bar ));
-DESCR("");
-DATA(insert OID = 369 (  on_ps                    PGUID 11 f t f 2 f 16 "600 601" 100 0 0 100  foo bar ));
+DESCR("closest point to line segment on box");
+DATA(insert OID = 369 (  on_ps                    PGUID 11 f t f 2 f 16 "600 601" 100 0 0 100  foo bar ));
 DESCR("contained in");
 DATA(insert OID = 370 (  path_distance    PGUID 11 f t f 2 f 701 "602 602" 100 0 1 0 foo bar ));
 DESCR("distance between");
 DATA(insert OID = 371 (  dist_ppath               PGUID 11 f t f 2 f 701 "600 602" 100 0 1 0 foo bar ));
 DESCR("distance between");
-DATA(insert OID = 372 (  on_sb                    PGUID 11 f t f 2 f 16 "601 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 372 (  on_sb                    PGUID 11 f t f 2 f 16 "601 603" 100 0 0 100  foo bar ));
 DESCR("contained in");
-DATA(insert OID = 373 (  inter_sb                 PGUID 11 f t f 2 f 16 "601 603" 100 0 0 100  foo bar ));
+DATA(insert OID = 373 (  inter_sb                 PGUID 11 f t f 2 f 16 "601 603" 100 0 0 100  foo bar ));
 DESCR("");
 DATA(insert OID = 1274 (  btchar16cmp     PGUID 11 f t f 2 f 23 "19 19" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
@@ -828,9 +828,9 @@ DATA(insert OID = 449 (  hashint2              PGUID 11 f t f 2 f 23 "21 21" 100 0 0 100
 DESCR("hash");
 DATA(insert OID = 450 (  hashint4                 PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100  foo bar ));
 DESCR("hash");
-DATA(insert OID = 451 (  hashfloat4               PGUID 11 f t f 2 f 23 "700 700" 100 0 0 100  foo bar ));
+DATA(insert OID = 451 (  hashfloat4               PGUID 11 f t f 2 f 23 "700 700" 100 0 0 100  foo bar ));
 DESCR("hash");
-DATA(insert OID = 452 (  hashfloat8               PGUID 11 f t f 2 f 23 "701 701" 100 0 0 100  foo bar ));
+DATA(insert OID = 452 (  hashfloat8               PGUID 11 f t f 2 f 23 "701 701" 100 0 0 100  foo bar ));
 DESCR("hash");
 DATA(insert OID = 453 (  hashoid                  PGUID 11 f t f 2 f 23 "26 26" 100 0 0 100  foo bar ));
 DESCR("hash");
@@ -852,31 +852,31 @@ DATA(insert OID = 470 (  char4out            PGUID 11 f t f 1 f 23 "0" 100 0 0 100  foo
 DESCR("(internal)");
 DATA(insert OID = 471 (  char8out                 PGUID 11 f t f 1 f 23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 472 (  char2eq                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
+DATA(insert OID = 472 (  char2eq                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 473 (  char4eq                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
+DATA(insert OID = 473 (  char4eq                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 474 (  char8eq                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
+DATA(insert OID = 474 (  char8eq                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 475 (  char2lt                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
+DATA(insert OID = 475 (  char2lt                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 476 (  char4lt                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
+DATA(insert OID = 476 (  char4lt                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 477 (  char8lt                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
+DATA(insert OID = 477 (  char8lt                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 478 (  char2le                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
+DATA(insert OID = 478 (  char2le                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 479 (  char4le                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
+DATA(insert OID = 479 (  char4le                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 480 (  char8le                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
+DATA(insert OID = 480 (  char8le                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 481 (  char2gt                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
+DATA(insert OID = 481 (  char2gt                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 482 (  char4gt                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
+DATA(insert OID = 482 (  char4gt                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 483 (  char8gt                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
+DATA(insert OID = 483 (  char8gt                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 484 (  char2ge                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
+DATA(insert OID = 484 (  char2ge                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
 DATA(insert OID = 1275 (  char16eq                PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100  foo bar ));
 DESCR("equals");
@@ -920,27 +920,27 @@ DATA(insert OID = 682 (  mktinterval         PGUID 11 f t f 2 f 704 "702 702" 100 0 0
 DESCR("convert to interval");
 DATA(insert OID = 683 (  oid8eq                           PGUID 11 f t f 2 f 16 "30 30" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 684 (  char4ge                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
+DATA(insert OID = 684 (  char4ge                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 685 (  char8ge                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
+DATA(insert OID = 685 (  char8ge                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 686 (  char2ne                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
+DATA(insert OID = 686 (  char2ne                  PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 687 (  char4ne                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
+DATA(insert OID = 687 (  char4ne                  PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 688 (  char8ne                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
+DATA(insert OID = 688 (  char8ne                  PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 689 (  btchar2cmp               PGUID 11 f t f 2 f 23 "409 409" 100 0 0 100  foo bar ));
+DATA(insert OID = 689 (  btchar2cmp               PGUID 11 f t f 2 f 23 "409 409" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 690 (  btchar4cmp               PGUID 11 f t f 2 f 23 "410 410" 100 0 0 100  foo bar ));
+DATA(insert OID = 690 (  btchar4cmp               PGUID 11 f t f 2 f 23 "410 410" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 691 (  btchar8cmp               PGUID 11 f t f 2 f 23 "411 411" 100 0 0 100  foo bar ));
+DATA(insert OID = 691 (  btchar8cmp               PGUID 11 f t f 2 f 23 "411 411" 100 0 0 100  foo bar ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 692 (  hashchar2                PGUID 11 f t f 2 f 23 "409 409" 100 0 0 100  foo bar ));
+DATA(insert OID = 692 (  hashchar2                PGUID 11 f t f 2 f 23 "409 409" 100 0 0 100  foo bar ));
 DESCR("hash");
-DATA(insert OID = 693 (  hashchar4                PGUID 11 f t f 2 f 23 "410 410" 100 0 0 100  foo bar ));
+DATA(insert OID = 693 (  hashchar4                PGUID 11 f t f 2 f 23 "410 410" 100 0 0 100  foo bar ));
 DESCR("hash");
-DATA(insert OID = 694 (  hashchar8                PGUID 11 f t f 2 f 23 "411 411" 100 0 0 100  foo bar ));
+DATA(insert OID = 694 (  hashchar8                PGUID 11 f t f 2 f 23 "411 411" 100 0 0 100  foo bar ));
 DESCR("hash");
 DATA(insert OID = 695 (  char8regexeq     PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100  foo bar ));
 DESCR("matches regex., case-sensitive");
@@ -994,13 +994,13 @@ DESCR("distance between");
 DATA(insert OID = 730 (  pqtest                           PGUID 11 f t f 1 f 23 "25" 100 0 0 100  foo bar ));
 DESCR("");
 
-DATA(insert OID = 740 (  text_lt                  PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0      foo bar ));
+DATA(insert OID = 740 (  text_lt                  PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 741 (  text_le                  PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0      foo bar ));
+DATA(insert OID = 741 (  text_le                  PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 742 (  text_gt                  PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0      foo bar ));
+DATA(insert OID = 742 (  text_gt                  PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 743 (  text_ge                  PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0      foo bar ));
+DATA(insert OID = 743 (  text_ge                  PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0  foo bar ));
 DESCR("greater-than-or-equals");
 
 DATA(insert OID = 744 (  array_eq                 PGUID 11 f t f 2 f 16 "0 0" 100 0 0 100 foo bar));
@@ -1015,9 +1015,9 @@ DATA(insert OID = 748 (  array_set                   PGUID 11 f t f 8 f 23 "0 23 0 0 23 23 23
 DESCR("array");
 DATA(insert OID = 749 (  array_ref                PGUID 11 f t f 7 f 23 "0 23 0 23 23 23 0" 100 0 0 100 foo bar));
 DESCR("array");
-DATA(insert OID = 750 (  array_in                 PGUID 11 f t f 2 f 23 "0 0" 100 0 0 100      foo bar ));
+DATA(insert OID = 750 (  array_in                 PGUID 11 f t f 2 f 23 "0 0" 100 0 0 100  foo bar ));
 DESCR("array");
-DATA(insert OID = 751 (  array_out                PGUID 11 f t f 2 f 23 "0 0" 100 0 0 100      foo bar ));
+DATA(insert OID = 751 (  array_out                PGUID 11 f t f 2 f 23 "0 0" 100 0 0 100  foo bar ));
 DESCR("array");
 
 DATA(insert OID = 752 (  filename_in      PGUID 11 f t f 2 f 605 "0" 100 0 0 100  foo bar ));
@@ -1029,9 +1029,9 @@ DATA(insert OID = 760 (  smgrin                      PGUID 11 f t f 1 f 210 "0" 100 0 0 100  foo
 DESCR("storage manager(internal)");
 DATA(insert OID = 761 (  smgrout                  PGUID 11 f t f 1 f 23  "0" 100 0 0 100  foo bar ));
 DESCR("storage manager(internal)");
-DATA(insert OID = 762 (  smgreq                           PGUID 11 f t f 2 f 16 "210 210" 100 0 0 100  foo bar ));
+DATA(insert OID = 762 (  smgreq                           PGUID 11 f t f 2 f 16 "210 210" 100 0 0 100  foo bar ));
 DESCR("storage manager");
-DATA(insert OID = 763 (  smgrne                           PGUID 11 f t f 2 f 16 "210 210" 100 0 0 100  foo bar ));
+DATA(insert OID = 763 (  smgrne                           PGUID 11 f t f 2 f 16 "210 210" 100 0 0 100  foo bar ));
 DESCR("storage manager");
 
 DATA(insert OID = 764 (  lo_import                PGUID 11 f t f 1 f 26 "25" 100 0 0 100  foo bar ));
@@ -1074,17 +1074,17 @@ DESCR("gist(internal)");
 DATA(insert OID = 782 (  gistbuild                PGUID 11 f t f 9 f 23 "0" 100 0 0 100  foo bar ));
 DESCR("gist(internal)");
 
-DATA(insert OID = 784 (  intervaleq               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 784 (  intervaleq               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 785 (  intervalne               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 785 (  intervalne               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 786 (  intervallt               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 786 (  intervallt               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 787 (  intervalgt               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 787 (  intervalgt               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 788 (  intervalle               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 788 (  intervalle               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 789 (  intervalge               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
+DATA(insert OID = 789 (  intervalge               PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
 
 /* OIDS 800 - 899 */
@@ -1100,22 +1100,22 @@ DATA(insert OID = 820 (  oidint2in                 PGUID 11 f t f 1 f 810 "0" 100 0 0 100  f
 DESCR("(internal)");
 DATA(insert OID = 821 (  oidint2out               PGUID 11 f t f 1 f 19 "0" 100 0 0 100  foo bar));
 DESCR("(internal)");
-DATA(insert OID = 822 (  oidint2lt                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
+DATA(insert OID = 822 (  oidint2lt                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
 DESCR("less-than");
-DATA(insert OID = 823 (  oidint2le                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
+DATA(insert OID = 823 (  oidint2le                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
 DESCR("less-than-or-equals");
-DATA(insert OID = 824 (  oidint2eq                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
+DATA(insert OID = 824 (  oidint2eq                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
 DESCR("equals");
 
 #define OidInt2EqRegProcedure 824
 
-DATA(insert OID = 825 (  oidint2ge                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
+DATA(insert OID = 825 (  oidint2ge                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 826 (  oidint2gt                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
+DATA(insert OID = 826 (  oidint2gt                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
 DESCR("greater-than");
-DATA(insert OID = 827 (  oidint2ne                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
+DATA(insert OID = 827 (  oidint2ne                PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100  foo bar));
 DESCR("not equal");
-DATA(insert OID = 828 (  oidint2cmp               PGUID 11 f t f 2 f 21 "810 810" 100 0 0 100  foo bar));
+DATA(insert OID = 828 (  oidint2cmp               PGUID 11 f t f 2 f 21 "810 810" 100 0 0 100  foo bar));
 DESCR("less-equal-greater");
 DATA(insert OID = 829 (  mkoidint2                PGUID 11 f t f 2 f 810 "26 21" 100 0 0 100  foo bar));
 DESCR("");
@@ -1214,22 +1214,22 @@ DATA(insert OID = 920 (  oidint4in                 PGUID 11 f t f 1 f 910 "0" 100 0 0 100  f
 DESCR("(internal)");
 DATA(insert OID = 921 (  oidint4out               PGUID 11 f t f 1 f 19 "0" 100 0 0 100  foo bar));
 DESCR("(internal)");
-DATA(insert OID = 922 (  oidint4lt                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
+DATA(insert OID = 922 (  oidint4lt                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
 DESCR("less-than");
-DATA(insert OID = 923 (  oidint4le                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
+DATA(insert OID = 923 (  oidint4le                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
 DESCR("less-than-or-equals");
-DATA(insert OID = 924 (  oidint4eq                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
+DATA(insert OID = 924 (  oidint4eq                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
 DESCR("equals");
 
 #define OidInt4EqRegProcedure 924
 
-DATA(insert OID = 925 (  oidint4ge                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
+DATA(insert OID = 925 (  oidint4ge                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 926 (  oidint4gt                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
+DATA(insert OID = 926 (  oidint4gt                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
 DESCR("greater-than");
-DATA(insert OID = 927 (  oidint4ne                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
+DATA(insert OID = 927 (  oidint4ne                PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100  foo bar));
 DESCR("not equal");
-DATA(insert OID = 928 (  oidint4cmp               PGUID 11 f t f 2 f 23 "910 910" 100 0 0 100  foo bar));
+DATA(insert OID = 928 (  oidint4cmp               PGUID 11 f t f 2 f 23 "910 910" 100 0 0 100  foo bar));
 DESCR("less-equal-greater");
 DATA(insert OID = 929 (  mkoidint4                PGUID 11 f t f 2 f 910 "26 23" 100 0 0 100  foo bar));
 DESCR("");
@@ -1248,29 +1248,29 @@ DATA(insert OID = 940 (  oidnamein                 PGUID 11 f t f 1 f 911 "0" 100 0 0 100  f
 DESCR("(internal)");
 DATA(insert OID = 941 (  oidnameout               PGUID 11 f t f 1 f 19 "0" 100 0 0 100  foo bar));
 DESCR("(internal)");
-DATA(insert OID = 942 (  oidnamelt                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
+DATA(insert OID = 942 (  oidnamelt                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
 DESCR("less-than");
-DATA(insert OID = 943 (  oidnamele                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
+DATA(insert OID = 943 (  oidnamele                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
 DESCR("less-than-or-equals");
-DATA(insert OID = 944 (  oidnameeq                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
+DATA(insert OID = 944 (  oidnameeq                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
 DESCR("equals");
 
 #define OidNameEqRegProcedure 944
 
-DATA(insert OID = 945 (  oidnamege                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
+DATA(insert OID = 945 (  oidnamege                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 946 (  oidnamegt                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
+DATA(insert OID = 946 (  oidnamegt                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
 DESCR("greater-than");
-DATA(insert OID = 947 (  oidnamene                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
+DATA(insert OID = 947 (  oidnamene                PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100  foo bar));
 DESCR("not equal");
-DATA(insert OID = 948 (  oidnamecmp               PGUID 11 f t f 2 f 23 "911 911" 100 0 0 100  foo bar));
+DATA(insert OID = 948 (  oidnamecmp               PGUID 11 f t f 2 f 23 "911 911" 100 0 0 100  foo bar));
 DESCR("less-equal-greater");
 DATA(insert OID = 949 (  mkoidname                PGUID 11 f t f 2 f 911 "26 19" 100 0 0 100  foo bar));
 DESCR("");
 
-DATA(insert OID = 950 (  istrue                           PGUID 11 f t f 1 f 16 "16" 100 0 0 100       foo bar ));
+DATA(insert OID = 950 (  istrue                           PGUID 11 f t f 1 f 16 "16" 100 0 0 100  foo bar ));
 DESCR("");
-DATA(insert OID = 951 (  isfalse                  PGUID 11 f t f 1 f 16 "16" 100 0 0 100       foo bar ));
+DATA(insert OID = 951 (  isfalse                  PGUID 11 f t f 1 f 16 "16" 100 0 0 100  foo bar ));
 DESCR("");
 
 DATA(insert OID = 952 (  lo_open                  PGUID 11 f t f 2 f 23 "26 23" 100 0 0 100  foo bar ));
@@ -1293,15 +1293,15 @@ DESCR("contained in");
 DATA(insert OID = 960 (  on_sl                    PGUID 11 f t f 2 f  16 "601 628" 100 0 10 100  foo bar ));
 DESCR("contained in");
 DATA(insert OID = 961 (  close_pl                 PGUID 11 f t f 2 f 600 "600 628" 100 0 10 100  foo bar ));
-DESCR("");
+DESCR("closest point on line");
 DATA(insert OID = 962 (  close_sl                 PGUID 11 f t f 2 f 600 "601 628" 100 0 10 100  foo bar ));
-DESCR("");
+DESCR("closest point to line segment on line");
 DATA(insert OID = 963 (  close_lb                 PGUID 11 f t f 2 f 600 "628 603" 100 0 10 100  foo bar ));
-DESCR("");
+DESCR("closest point to line on box");
 
-DATA(insert OID = 964 (  lo_unlink                PGUID 11 f t f 1 f  23 "23" 100 0 0 100      foo bar ));
+DATA(insert OID = 964 (  lo_unlink                PGUID 11 f t f 1 f  23 "23" 100 0 0 100  foo bar ));
 DESCR("large object unlink(delete)");
-DATA(insert OID = 972 (  regproctooid     PGUID 11 f t f 1 f  26 "24" 100 0 0 100      foo bar ));
+DATA(insert OID = 972 (  regproctooid     PGUID 11 f t f 1 f  26 "24" 100 0 0 100  foo bar ));
 DESCR("get oid for regproc");
 
 DATA(insert OID = 973 (  path_inter               PGUID 11 f t f 2 f  16 "602 602" 100 0 10 100  foo bar ));
@@ -1318,41 +1318,41 @@ DATA(insert OID = 980 (  box_intersect     PGUID 11 f t f 2 f 603 "603 603" 100 0
 DESCR("intersects");
 DATA(insert OID = 981 (  box_diagonal     PGUID 11 f t f 1 f 601 "603" 100 0 0 100  foo bar ));
 DESCR("box diagonal");
-DATA(insert OID = 982 (  path_n_lt                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
+DATA(insert OID = 982 (  path_n_lt                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 983 (  path_n_gt                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
+DATA(insert OID = 983 (  path_n_gt                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 984 (  path_n_eq                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
+DATA(insert OID = 984 (  path_n_eq                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 985 (  path_n_le                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
+DATA(insert OID = 985 (  path_n_le                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 986 (  path_n_ge                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
+DATA(insert OID = 986 (  path_n_ge                PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
 DATA(insert OID = 987 (  path_length      PGUID 11 f t f 1 f 701 "602" 100 0 1 0  foo bar ));
-DESCR("");
-DATA(insert OID = 988 (  point_ne                 PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
-DESCR("");
-DATA(insert OID = 989 (  point_vert               PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
-DESCR("");
-DATA(insert OID = 990 (  point_horiz      PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
-DESCR("");
+DESCR("sum of path segments");
+DATA(insert OID = 988 (  point_ne                 PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
+DESCR("not equal");
+DATA(insert OID = 989 (  point_vert               PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
+DESCR("is vertical");
+DATA(insert OID = 990 (  point_horiz      PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100  foo bar ));
+DESCR("is horizontal");
 DATA(insert OID = 991 (  point_distance    PGUID 11 f t f 2 f 701 "600 600" 100 0 0 100  foo bar ));
 DESCR("distance between");
 DATA(insert OID = 992 (  point_slope      PGUID 11 f t f 2 f 701 "600 600" 100 0 0 100  foo bar ));
-DESCR("");
+DESCR("slope between points");
 DATA(insert OID = 993 (  lseg_construct    PGUID 11 f t f 2 f 601 "600 600" 100 0 0 100  foo bar ));
-DESCR("");
-DATA(insert OID = 994 (  lseg_intersect    PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
+DESCR("convert points to line segment");
+DATA(insert OID = 994 (  lseg_intersect    PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100  foo bar ));
 DESCR("intersects");
-DATA(insert OID = 995 (  lseg_parallel    PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100  foo bar ));
+DATA(insert OID = 995 (  lseg_parallel    PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100  foo bar ));
 DESCR("is parallel to");
-DATA(insert OID = 996 (  lseg_perp                PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100  foo bar ));
+DATA(insert OID = 996 (  lseg_perp                PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100  foo bar ));
 DESCR("is perpendicular to");
-DATA(insert OID = 997 (  lseg_vertical    PGUID 11 f t f 1 f 16 "601" 100 0 0 100      foo bar ));
-DESCR("");
-DATA(insert OID = 998 (  lseg_horizontal   PGUID 11 f t f 1 f 16 "601" 100 0 0 100     foo bar ));
-DESCR("");
-DATA(insert OID = 999 (  lseg_eq                  PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100  foo bar ));
+DATA(insert OID = 997 (  lseg_vertical    PGUID 11 f t f 1 f 16 "601" 100 0 0 100  foo bar ));
+DESCR("is vertical");
+DATA(insert OID = 998 (  lseg_horizontal   PGUID 11 f t f 1 f 16 "601" 100 0 0 100  foo bar ));
+DESCR("is horizontal");
+DATA(insert OID = 999 (  lseg_eq                  PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100  foo bar ));
 DESCR("equals");
 
 /* OIDS 1000 - 1999 */
@@ -1363,13 +1363,13 @@ DESCR("(internal)");
 DATA(insert OID = 1030 (  nonnullvalue    PGUID 11 f t f 1 f 16 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
 #define NonNullValueRegProcedure 1030
-DATA(insert OID = 1031 (  aclitemin               PGUID 11 f t f 1 f 1033 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1031 (  aclitemin               PGUID 11 f t f 1 f 1033 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
 DATA(insert OID = 1032 (  aclitemout      PGUID 11 f t f 1 f 23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 1035 (  aclinsert               PGUID 11 f t f 2 f 1034 "1034 1033" 100 0 0 100      foo bar ));
+DATA(insert OID = 1035 (  aclinsert               PGUID 11 f t f 2 f 1034 "1034 1033" 100 0 0 100  foo bar ));
 DESCR("addition");
-DATA(insert OID = 1036 (  aclremove               PGUID 11 f t f 2 f 1034 "1034 1033" 100 0 0 100      foo bar ));
+DATA(insert OID = 1036 (  aclremove               PGUID 11 f t f 2 f 1034 "1034 1033" 100 0 0 100  foo bar ));
 DESCR("subtract");
 DATA(insert OID = 1037 (  aclcontains     PGUID 11 f t f 2 f 16 "1034 1033" 100 0 0 100  foo bar ));
 DESCR("matches regex., case-sensitive");
@@ -1377,11 +1377,11 @@ DATA(insert OID = 1038 (  seteval                  PGUID 11 f t f 1 f 23 "26" 100 0 0 100  fo
 DESCR("");
 #define SetEvalRegProcedure 1038
 
-DATA(insert OID = 1044 (  bpcharin                PGUID 11 f t f 3 f 1042 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1044 (  bpcharin                PGUID 11 f t f 3 f 1042 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
 DATA(insert OID = 1045 (  bpcharout               PGUID 11 f t f 1 f 23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 1046 (  varcharin               PGUID 11 f t f 3 f 1043 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1046 (  varcharin               PGUID 11 f t f 3 f 1043 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
 DATA(insert OID = 1047 (  varcharout      PGUID 11 f t f 1 f 23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
@@ -1418,7 +1418,7 @@ DESCR("hash");
 DATA(insert OID = 1081 (  hashvarchar     PGUID 11 f t f 1 f 23 "1043" 100 0 0 100  foo bar ));
 DESCR("hash");
 
-DATA(insert OID = 1084 (  date_in                 PGUID 11 f t f 1 f 1082 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1084 (  date_in                 PGUID 11 f t f 1 f 1082 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
 DATA(insert OID = 1085 (  date_out                PGUID 11 f t f 1 f 23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
@@ -1451,9 +1451,9 @@ DATA(insert OID = 1106 (  time_ne            PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0
 DESCR("not equal");
 DATA(insert OID = 1107 (  time_cmp                PGUID 11 f t f 2 f 23 "1083 1083" 100 0 0 100  foo bar ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1138 (  date_larger     PGUID 11 f t f 2 f 1082 "1082 1082" 100 0 0 100      foo bar ));
+DATA(insert OID = 1138 (  date_larger     PGUID 11 f t f 2 f 1082 "1082 1082" 100 0 0 100  foo bar ));
 DESCR("");
-DATA(insert OID = 1139 (  date_smaller    PGUID 11 f t f 2 f 1082 "1082 1082" 100 0 0 100      foo bar ));
+DATA(insert OID = 1139 (  date_smaller    PGUID 11 f t f 2 f 1082 "1082 1082" 100 0 0 100  foo bar ));
 DESCR("");
 DATA(insert OID = 1140 (  date_mi                 PGUID 11 f t f 2 f 23 "1082 1082" 100 0 0 100  foo bar ));
 DESCR("subtract");
@@ -1461,7 +1461,7 @@ DATA(insert OID = 1141 (  date_pli                   PGUID 11 f t f 2 f 1082 "1082 23" 100 0 0
 DESCR("addition");
 DATA(insert OID = 1142 (  date_mii                PGUID 11 f t f 2 f 1082 "1082 23" 100 0 0 100  foo bar ));
 DESCR("subtract");
-DATA(insert OID = 1143 (  time_in                 PGUID 11 f t f 1 f 1083 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1143 (  time_in                 PGUID 11 f t f 1 f 1083 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
 DATA(insert OID = 1144 (  time_out                PGUID 11 f t f 1 f 23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
@@ -1477,28 +1477,28 @@ DESCR("multiply");
 DATA(insert OID = 1149 (  circle_div_pt    PGUID 11 f t f 2 f 718 "718 600" 100 0 0 100  foo bar ));
 DESCR("divide");
 
-DATA(insert OID = 1150 (  datetime_in     PGUID 11 f t f 1 f 1184 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1150 (  datetime_in     PGUID 11 f t f 1 f 1184 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 1151 (  datetime_out    PGUID 11 f t f 1 f   23 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1151 (  datetime_out    PGUID 11 f t f 1 f   23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 1152 (  datetime_eq     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100      foo bar ));
+DATA(insert OID = 1152 (  datetime_eq     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100  foo bar ));
 DESCR("equals");
-DATA(insert OID = 1153 (  datetime_ne     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100      foo bar ));
+DATA(insert OID = 1153 (  datetime_ne     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 1154 (  datetime_lt     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100      foo bar ));
+DATA(insert OID = 1154 (  datetime_lt     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 1155 (  datetime_le     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100      foo bar ));
+DATA(insert OID = 1155 (  datetime_le     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 1156 (  datetime_ge     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100      foo bar ));
+DATA(insert OID = 1156 (  datetime_ge     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100  foo bar ));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 1157 (  datetime_gt     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100      foo bar ));
+DATA(insert OID = 1157 (  datetime_gt     PGUID 11 f t f 2 f   16 "1184 1184" 100 0 0 100  foo bar ));
 DESCR("greater-than");
 DATA(insert OID = 1158 (  datetime_finite  PGUID 11 f t f 1 f  16 "1184" 100 0 0 100  foo bar ));
 DESCR("");
 DATA(insert OID = 1159 (  datetime_zone    PGUID 11 f t f 2 f  25 "25 1184" 100 0 0 100  foo bar ));
 DESCR("");
 
-DATA(insert OID = 1160 (  timespan_in     PGUID 11 f t f 1 f 1186 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1160 (  timespan_in     PGUID 11 f t f 1 f 1186 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
 DATA(insert OID = 1161 (  timespan_out    PGUID 11 f t f 1 f 23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
@@ -1581,9 +1581,9 @@ DATA(insert OID = 1236 (  char16icregexeq  PGUID 11 f t f 2 f 16 "20 25" 100 0 0
 DESCR("matches regex., case-insensitive");
 DATA(insert OID = 1237 (  char16icregexne  PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100  foo bar ));
 DESCR("does not match regex., case-insensitive");
-DATA(insert OID = 1238 (  texticregexeq    PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0     foo bar ));
+DATA(insert OID = 1238 (  texticregexeq    PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0  foo bar ));
 DESCR("matches regex., case-insensitive");
-DATA(insert OID = 1239 (  texticregexne    PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0     foo bar ));
+DATA(insert OID = 1239 (  texticregexne    PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0  foo bar ));
 DESCR("does not match regex., case-insensitive");
 DATA(insert OID = 1240 (  nameicregexeq    PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100  foo bar ));
 DESCR("matches regex., case-insensitive");
@@ -1613,11 +1613,11 @@ DESCR("matches regex., case-insensitive");
 DATA(insert OID = 1295 (  char8icregexne   PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100  foo bar ));
 DESCR("does not match regex., case-insensitive");
 
-DATA(insert OID = 1297 (  timestamp_in    PGUID 11 f t f 1 f 1296 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1297 (  timestamp_in    PGUID 11 f t f 1 f 1296 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
 DATA(insert OID = 1298 (  timestamp_out    PGUID 11 f t f 1 f   23 "0" 100 0 0 100  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 1299 (  now                     PGUID 11 f t f 0 f 1296 "0" 100 0 0 100      foo bar ));
+DATA(insert OID = 1299 (  now                     PGUID 11 f t f 0 f 1296 "0" 100 0 0 100  foo bar ));
 DESCR("current transaction time");
 
 /* OIDS 1300 - 1399 */
@@ -1860,68 +1860,85 @@ DATA(insert OID = 1450 (  circle_in                     PGUID 11 f t f 1 f 718 "0" 100 0 1 0  foo
 DESCR("(internal)");
 DATA(insert OID = 1451 (  circle_out           PGUID 11 f t f 1 f      23      "0" 100 0 1 0  foo bar ));
 DESCR("(internal)");
-DATA(insert OID = 1452 (  circle_same          PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1452 (  circle_same          PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("same as");
-DATA(insert OID = 1453 (  circle_contain       PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1453 (  circle_contain       PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("contains");
-DATA(insert OID = 1454 (  circle_left          PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1454 (  circle_left          PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("is left of");
-DATA(insert OID = 1455 (  circle_overleft      PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1455 (  circle_overleft      PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("overlaps, but does not extend to right of");
-DATA(insert OID = 1456 (  circle_overright     PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1456 (  circle_overright     PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("");
-DATA(insert OID = 1457 (  circle_right         PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1457 (  circle_right         PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("is left of");
-DATA(insert OID = 1458 (  circle_contained     PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1458 (  circle_contained     PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("");
-DATA(insert OID = 1459 (  circle_overlap       PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1459 (  circle_overlap       PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("overlaps");
-DATA(insert OID = 1460 (  circle_below         PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1460 (  circle_below         PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("is below");
-DATA(insert OID = 1461 (  circle_above         PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1461 (  circle_above         PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("is above");
-DATA(insert OID = 1462 (  circle_eq                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1462 (  circle_eq                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("equals");
-DATA(insert OID = 1463 (  circle_ne                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1463 (  circle_ne                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("not equal");
-DATA(insert OID = 1464 (  circle_lt                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1464 (  circle_lt                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("less-than");
-DATA(insert OID = 1465 (  circle_gt                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1465 (  circle_gt                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("greater-than");
-DATA(insert OID = 1466 (  circle_le                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1466 (  circle_le                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("less-than-or-equals");
-DATA(insert OID = 1467 (  circle_ge                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1467 (  circle_ge                    PGUID 11 f t f 2 f      16 "718 718" 100 0 1 0  foo bar ));
 DESCR("greater-than-or-equals");
-DATA(insert OID = 1468 (  circle_area          PGUID 11 f t f 1 f 701 "718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1468 (  circle_area          PGUID 11 f t f 1 f 701 "718" 100 0 1 0  foo bar ));
 DESCR("area");
-DATA(insert OID = 1469 (  circle_diameter      PGUID 11 f t f 1 f 701 "718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1469 (  circle_diameter      PGUID 11 f t f 1 f 701 "718" 100 0 1 0  foo bar ));
 DESCR("diameter");
-DATA(insert OID = 1470 (  circle_radius                PGUID 11 f t f 1 f 701 "718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1470 (  circle_radius                PGUID 11 f t f 1 f 701 "718" 100 0 1 0  foo bar ));
 DESCR("radius");
-DATA(insert OID = 1471 (  circle_distance      PGUID 11 f t f 2 f 701 "718 718" 100 0 1 0      foo bar ));
+DATA(insert OID = 1471 (  circle_distance      PGUID 11 f t f 2 f 701 "718 718" 100 0 1 0  foo bar ));
 DESCR("distance between");
-DATA(insert OID = 1472 (  circle_center                PGUID 11 f t f 1 f 600 "718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1472 (  circle_center                PGUID 11 f t f 1 f 600 "718" 100 0 1 0  foo bar ));
 DESCR("center of");
-DATA(insert OID = 1473 (  circle                       PGUID 11 f t f 2 f 718 "600 701" 100 0 1 0      foo bar ));
+DATA(insert OID = 1473 (  circle                       PGUID 11 f t f 2 f 718 "600 701" 100 0 1 0  foo bar ));
 DESCR("convert");
-DATA(insert OID = 1474 (  poly_circle          PGUID 11 f t f 1 f 718 "604" 100 0 1 0  foo bar ));
+DATA(insert OID = 1474 (  poly_circle          PGUID 11 f t f 1 f 718 "604" 100 0 1 0  foo bar ));
 DESCR("convert");
 DATA(insert OID = 1475 (  circle_poly          PGUID 11 f t f 2 f 604 "23 718" 100 0 1 0  foo bar ));
 DESCR("convert");
-DATA(insert OID = 1476 (  dist_pc                      PGUID 11 f t f 2 f 604 "600 718" 100 0 1 0      foo bar ));
+DATA(insert OID = 1476 (  dist_pc                      PGUID 11 f t f 2 f 604 "600 718" 100 0 1 0  foo bar ));
 DESCR("distance between");
-DATA(insert OID = 1477 (  circle_contain_pt   PGUID 11 f t f 2 f  16 "718 600" 100 0 0 100     foo bar ));
+DATA(insert OID = 1477 (  circle_contain_pt   PGUID 11 f t f 2 f  16 "718 600" 100 0 0 100  foo bar ));
 DESCR("");
-DATA(insert OID = 1478 (  pt_contained_circle PGUID 11 f t f 2 f  16 "600 718" 100 0 0 100     foo bar ));
+DATA(insert OID = 1478 (  pt_contained_circle PGUID 11 f t f 2 f  16 "600 718" 100 0 0 100  foo bar ));
 DESCR("");
-DATA(insert OID = 1479 (  box_circle           PGUID 11 f t f 1 f 718 "603" 100 0 1 0  foo bar ));
+DATA(insert OID = 1479 (  box_circle           PGUID 11 f t f 1 f 718 "603" 100 0 1 0  foo bar ));
 DESCR("convert");
-DATA(insert OID = 1480 (  circle_box           PGUID 11 f t f 1 f 603 "718" 100 0 1 0  foo bar ));
+DATA(insert OID = 1480 (  circle_box           PGUID 11 f t f 1 f 603 "718" 100 0 1 0  foo bar ));
 DESCR("convert");
 
 DATA(insert OID = 1481 (  text_substr          PGUID 11 f t f 3 f 25 "25 23 23" 100 0 0 100  foo bar ));
 DESCR("return portion of string");
 
+DATA(insert OID = 1482 (  lseg_ne                      PGUID 11 f t f 2 f  16 "601 601" 100 0 0 100  foo bar ));
+DESCR("not equal");
+DATA(insert OID = 1483 (  lseg_lt                      PGUID 11 f t f 2 f  16 "601 601" 100 0 0 100  foo bar ));
+DESCR("less-than");
+DATA(insert OID = 1484 (  lseg_le                      PGUID 11 f t f 2 f  16 "601 601" 100 0 0 100  foo bar ));
+DESCR("less-than-or-equals");
+DATA(insert OID = 1485 (  lseg_gt                      PGUID 11 f t f 2 f  16 "601 601" 100 0 0 100  foo bar ));
+DESCR("greater-than");
+DATA(insert OID = 1486 (  lseg_ge                      PGUID 11 f t f 2 f  16 "601 601" 100 0 0 100  foo bar ));
+DESCR("greater-than-or-equals");
+DATA(insert OID = 1487 (  lseg_length          PGUID 11 f t f 1 f 701 "601" 100 0 1 0  foo bar ));
+DESCR("distance between endpoints");
+DATA(insert OID = 1488 (  close_ls                     PGUID 11 f t f 2 f 600 "628 601" 100 0 10 100  foo bar ));
+DESCR("closest point to line on line segment");
+DATA(insert OID = 1489 (  close_lseg           PGUID 11 f t f 2 f 600 "601 601" 100 0 10 100  foo bar ));
+DESCR("closest point to line segment on line segment");
+
 DATA(insert OID = 1530 (  point                                PGUID 14 f t f 2 f 600 "601 601" 100 0 0 100  "select lseg_interpt($1, $2)" - ));
 DESCR("convert");
 DATA(insert OID = 1531 (  point                                PGUID 14 f t f 1 f 600 "718" 100 0 0 100  "select circle_center($1)" - ));
@@ -1953,7 +1970,7 @@ DESCR("");
 DATA(insert OID = 1550 (  path                         PGUID 14 f t f 1 f 602 "604" 100 0 0 100  "select poly_path($1)" - ));
 DESCR("");
 DATA(insert OID = 1551 (  length                       PGUID 14 f t f 1 f 701 "602" 100 0 1 0  "select path_length($1)" - ));
-DESCR("");
+DESCR("sum of lengths of path segments");
 DATA(insert OID = 1552 (  points                       PGUID 14 f t f 1 f      23 "602" 100 0 0 100  "select path_npoints($1)" - ));
 DESCR("");
 DATA(insert OID = 1553 (  pclose                       PGUID 14 f t f 1 f 602 "602" 100 0 0 100  "select path_close($1)" - ));
@@ -1992,6 +2009,8 @@ DATA(insert OID = 1574 (  points                  PGUID 14 f t f 1 f      23 "604" 100 0 0 100  "sel
 DESCR("");
 DATA(insert OID = 1575 (  center                       PGUID 14 f t f 1 f 600 "604" 100 0 0 100  "select poly_center($1)" - ));
 DESCR("");
+DATA(insert OID = 1576 (  length                       PGUID 14 f t f 1 f 701 "601" 100 0 1 0  "select lseg_length($1)" - ));
+DESCR("distance between endpoints");
 
 DATA(insert OID = 1579 (  circle                       PGUID 14 f t f 1 f 718 "603" 100 0 0 100  "select box_circle($1)" - ));
 DESCR("convert");
index 803500b..14163f1 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: geo_decls.h,v 1.17 1998/01/24 22:50:43 momjian Exp $
+ * $Id: geo_decls.h,v 1.18 1998/02/03 16:01:06 thomas Exp $
  *
  * NOTE
  *       These routines do *not* use the float types from adt/.
@@ -170,6 +170,12 @@ extern bool lseg_perp(LSEG *l1, LSEG *l2);
 extern bool lseg_vertical(LSEG *lseg);
 extern bool lseg_horizontal(LSEG *lseg);
 extern bool lseg_eq(LSEG *l1, LSEG *l2);
+extern bool lseg_ne(LSEG *l1, LSEG *l2);
+extern bool lseg_lt(LSEG *l1, LSEG *l2);
+extern bool lseg_le(LSEG *l1, LSEG *l2);
+extern bool lseg_gt(LSEG *l1, LSEG *l2);
+extern bool lseg_ge(LSEG *l1, LSEG *l2);
+extern double *lseg_length(LSEG *lseg);
 extern double *lseg_distance(LSEG *l1, LSEG *l2);
 extern Point *lseg_center(LSEG *lseg);
 extern Point *lseg_interpt(LSEG *l1, LSEG *l2);
@@ -180,11 +186,13 @@ extern double *dist_pb(Point *pt, BOX *box);
 extern double *dist_sl(LSEG *lseg, LINE *line);
 extern double *dist_sb(LSEG *lseg, BOX *box);
 extern double *dist_lb(LINE *line, BOX *box);
+extern Point *close_lseg(LSEG *l1, LSEG *l2);
 extern Point *close_pl(Point *pt, LINE *line);
 extern Point *close_ps(Point *pt, LSEG *lseg);
 extern Point *close_pb(Point *pt, BOX *box);
 extern Point *close_sl(LSEG *lseg, LINE *line);
 extern Point *close_sb(LSEG *lseg, BOX *box);
+extern Point *close_ls(LINE *line, LSEG *lseg);
 extern Point *close_lb(LINE *line, BOX *box);
 extern bool on_pl(Point *pt, LINE *line);
 extern bool on_ps(Point *pt, LSEG *lseg);