Remove duplicate CIDR funcs by using coerce entries.
authorBruce Momjian
Thu, 22 Oct 1998 13:51:07 +0000 (13:51 +0000)
committerBruce Momjian
Thu, 22 Oct 1998 13:51:07 +0000 (13:51 +0000)
src/backend/parser/parse_coerce.c
src/backend/utils/adt/inet.c
src/include/catalog/pg_amop.h
src/include/catalog/pg_operator.h
src/include/catalog/pg_proc.h
src/include/catalog/pg_type.h
src/include/parser/parse_coerce.h
src/include/utils/builtins.h

index 1a34e4ea58b46c79c53024f6b01bb930c84110ae..454692263338cbe629f26e081c6791906c486f7c 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.8 1998/10/08 18:29:43 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.9 1998/10/22 13:50:54 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -328,6 +328,11 @@ TypeCategory(Oid inType)
            result = GEOMETRIC_TYPE;
            break;
 
+       case (INETOID):
+       case (CIDROID):
+           result = NETWORK_TYPE;
+           break;
+
        default:
            result = USER_TYPE;
            break;
@@ -379,6 +384,10 @@ PreferredType(CATEGORY category, Oid type)
            result = TIMESPANOID;
            break;
 
+       case (NETWORK_TYPE):
+           result = INETOID;
+           break;
+       
        case (GEOMETRIC_TYPE):
        case (USER_TYPE):
            result = type;
index 3afdf1437ef7edd2a27d04be4ed7db3cffe8f025..19d6f01702425aed61585ec42a698e58eb837eac 100644 (file)
@@ -3,7 +3,7 @@
  * is for IP V4 CIDR notation, but prepared for V6: just
  * add the necessary bits where the comments indicate.
  *
- * $Id: inet.c,v 1.12 1998/10/22 13:16:23 momjian Exp $
+ * $Id: inet.c,v 1.13 1998/10/22 13:50:56 momjian Exp $
  * Jon Postel RIP 16 Oct 1998
  */
 
@@ -297,7 +297,7 @@ inet_cmp(inet *a1, inet *a2)
 }
 
 text *
-inet_host(inet *ip)
+host(inet *ip)
 {
    text       *ret;
    int         len;
@@ -331,7 +331,7 @@ inet_host(inet *ip)
    ret = palloc(len);
    if (ret == NULL)
    {
-       elog(ERROR, "unable to allocate memory in inet_host()");
+       elog(ERROR, "unable to allocate memory in host()");
        return (NULL);
    }
    VARSIZE(ret) = len;
@@ -339,26 +339,14 @@ inet_host(inet *ip)
    return (ret);
 }
 
-text *
-cidr_host(inet *ip)
-{
-   return inet_host(ip);
-}
-
 int4
-inet_netmasklen(inet *ip)
+masklen(inet *ip)
 {
    return ip_bits(ip);
 }
 
-int4
-cidr_netmasklen(inet *ip)
-{
-   return inet_netmasklen(ip);
-}
-
 text *
-inet_broadcast(inet *ip)
+broadcast(inet *ip)
 {
    text       *ret;
    int         len;
@@ -390,7 +378,7 @@ inet_broadcast(inet *ip)
    ret = palloc(len);
    if (ret == NULL)
    {
-       elog(ERROR, "unable to allocate memory in inet_broadcast()");
+       elog(ERROR, "unable to allocate memory in broadcast()");
        return (NULL);
    }
    VARSIZE(ret) = len;
@@ -399,13 +387,7 @@ inet_broadcast(inet *ip)
 }
 
 text *
-cidr_broadcast(inet *ip)
-{
-   return inet_broadcast(ip);
-}
-   
-text *
-inet_netmask(inet *ip)
+netmask(inet *ip)
 {
    text       *ret;
    int         len;
@@ -435,7 +417,7 @@ inet_netmask(inet *ip)
    ret = palloc(len);
    if (ret == NULL)
    {
-       elog(ERROR, "unable to allocate memory in inet_netmask()");
+       elog(ERROR, "unable to allocate memory in netmask()");
        return (NULL);
    }
    VARSIZE(ret) = len;
@@ -443,12 +425,6 @@ inet_netmask(inet *ip)
    return (ret);
 }
 
-text *
-cidr_netmask(inet *ip)
-{
-   return inet_netmask(ip);
-}
-
 /*
  * Bitwise comparison for V4 addresses.  Add V6 implementation!
  */
index af57116e1aa01447fee7c059b80241a02fa11895..25c0f362763a01fec6470eae72627c92b63237ea 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_amop.h,v 1.17 1998/10/22 05:29:23 momjian Exp $
+ * $Id: pg_amop.h,v 1.18 1998/10/22 13:50:58 momjian Exp $
  *
  * NOTES
  *  the genbki.sh script reads this file and generates .bki
@@ -322,11 +322,11 @@ DATA(insert OID = 0 (  403 935 1205 5 btreesel btreenpage ));
  * nbtree cidr
  */
 
-DATA(insert OID = 0 (  403 652 822 1 btreesel btreenpage ));
-DATA(insert OID = 0 (  403 652 823 2 btreesel btreenpage ));
-DATA(insert OID = 0 (  403 652 820 3 btreesel btreenpage ));
-DATA(insert OID = 0 (  403 652 825 4 btreesel btreenpage ));
-DATA(insert OID = 0 (  403 652 824 5 btreesel btreenpage ));
+DATA(insert OID = 0 (  403 652 1203 1 btreesel btreenpage ));
+DATA(insert OID = 0 (  403 652 1204 2 btreesel btreenpage ));
+DATA(insert OID = 0 (  403 652 1201 3 btreesel btreenpage ));
+DATA(insert OID = 0 (  403 652 1206 4 btreesel btreenpage ));
+DATA(insert OID = 0 (  403 652 1205 5 btreesel btreenpage ));
 
 /*
  * hash table _ops
index 53bdfc73ef2a610887f9226397c5f8093fb4e16b..87a8471c509efcfa9ae92fd40b41860624416ee0 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_operator.h,v 1.41 1998/10/21 16:06:46 momjian Exp $
+ * $Id: pg_operator.h,v 1.42 1998/10/22 13:51:00 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -667,7 +667,6 @@ DATA(insert OID = 827  (  "<<="    PGUID 0 b t f 650 650     16 1004 828  0 0 in
 DATA(insert OID = 828  (  ">>"    PGUID 0 b t f 650 650     16 826  827  0 0 inet_sup intltsel intltjoinsel ));
 DATA(insert OID = 1004  (  ">>="   PGUID 0 b t f 650 650     16 827  826  0 0 inet_supeq intltsel intltjoinsel ));
 
-
 /*
  * function prototypes
  */
index a36e9030af7adf66be0e8639b984eaa3b25e6b70..4677a8dc94fdd4a327ea129ef81eea1a9ae47077 100644 (file)
@@ -1,4 +1,4 @@
-1/*-------------------------------------------------------------------------
+/*-------------------------------------------------------------------------
  *
  * pg_proc.h--
  *   definition of the system "procedure" relation (pg_proc)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_proc.h,v 1.79 1998/10/22 05:29:24 momjian Exp $
+ * $Id: pg_proc.h,v 1.80 1998/10/22 13:51:02 momjian Exp $
  *
  * NOTES
  *   The script catalog/genbki.sh reads this file and generates .bki
@@ -2104,44 +2104,14 @@ DESCR("is-supernet");
 DATA(insert OID = 930 (  inet_supeq       PGUID 11 f t f 2 f 16 "869 869" 100 0 0 100  foo bar ));
 DESCR("is-supernet-or-equal");
 
-/* inet base versions */
-DATA(insert OID = 940 (  inet_netmask      PGUID 11 f t f 1 f 25 "869" 100 0 0 100  foo bar ));
+/* inet/cidr versions */
+DATA(insert OID = 940 (  netmask           PGUID 11 f t f 1 f 25 "869" 100 0 0 100  foo bar ));
 DESCR("netmask of address");
-DATA(insert OID = 941 (  inet_netmasklen   PGUID 11 f t f 1 f 23 "869" 100 0 0 100  foo bar ));
+DATA(insert OID = 941 (  masklen           PGUID 11 f t f 1 f 23 "869" 100 0 0 100  foo bar ));
 DESCR("netmask length");
-DATA(insert OID = 945 (  inet_broadcast        PGUID 11 f t f 1 f 25 "869" 100 0 0 100  foo bar ));
+DATA(insert OID = 945 (  broadcast         PGUID 11 f t f 1 f 25 "869" 100 0 0 100  foo bar ));
 DESCR("broadcast address");
-DATA(insert OID = 682 (  inet_host         PGUID 11 f t f 1 f 25 "869" 100 0 0 100  foo bar ));
-DESCR("host address");
-
-/* cidr base versions */
-DATA(insert OID = 1619 (  cidr_netmask     PGUID 11 f t f 1 f 25 "650" 100 0 0 100  foo bar ));
-DESCR("netmask of address");
-DATA(insert OID = 1620 (  cidr_netmasklen  PGUID 11 f t f 1 f 23 "650" 100 0 0 100  foo bar ));
-DESCR("netmask length");
-DATA(insert OID = 1621 (  cidr_broadcast   PGUID 11 f t f 1 f 25 "650" 100 0 0 100  foo bar ));
-DESCR("broadcast address");
-DATA(insert OID = 1622 (  cidr_host            PGUID 11 f t f 1 f 25 "650" 100 0 0 100  foo bar ));
-DESCR("host address");
-
-/* inet versions */
-DATA(insert OID = 946 (  netmask       PGUID 14 f t f 1 f 25 "869" 100 0 0 100  "select inet_netmask($1)" - ));
-DESCR("netmask of address");
-DATA(insert OID = 947 (  netmasklen        PGUID 14 f t f 1 f 23 "869" 100 0 0 100  "select inet_netmasklen($1)" - ));
-DESCR("netmask length");
-DATA(insert OID = 948 (  broadcast     PGUID 14 f t f 1 f 25 "869" 100 0 0 100  "select inet_broadcast($1)" - ));
-DESCR("broadcast address");
-DATA(insert OID = 949 (  host          PGUID 14 f t f 1 f 25 "869" 100 0 0 100  "select inet_host($1)" - ));
-DESCR("host address");
-
-/* cidr versions */
-DATA(insert OID = 696 (  netmask       PGUID 14 f t f 1 f 25 "650" 100 0 0 100  "select cidr_netmask($1)" - ));
-DESCR("netmask of address");
-DATA(insert OID = 697 (  netmasklen        PGUID 14 f t f 1 f 23 "650" 100 0 0 100  "select cidr_netmasklen($1)" - ));
-DESCR("netmask length");
-DATA(insert OID = 698 (  broadcast     PGUID 14 f t f 1 f 25 "650" 100 0 0 100  "select cidr_broadcast($1)" - ));
-DESCR("broadcast address");
-DATA(insert OID = 699 (  host          PGUID 14 f t f 1 f 25 "650" 100 0 0 100  "select cidr_host($1)" - ));
+DATA(insert OID = 682 (  host              PGUID 11 f t f 1 f 25 "869" 100 0 0 100  foo bar ));
 DESCR("host address");
 
 
index 4b8884fd47b1fb038cfd2aabed2200aaab9cca47..5b0f1e86270cbd02084ca9b7ff50dca79f5650e6 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_type.h,v 1.51 1998/10/22 00:35:26 momjian Exp $
+ * $Id: pg_type.h,v 1.52 1998/10/22 13:51:03 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -302,8 +302,10 @@ DATA(insert OID = 829 ( macaddr       PGUID  6 -1 f b t \054 0 0 macaddr_in macaddr
 DESCR("MAC address");
 DATA(insert OID = 869 ( inet      PGUID  -1 -1 f b t \054 0 0 inet_in inet_out inet_in inet_out i _null_ ));
 DESCR("Host address");
+#define INETOID 869
 DATA(insert OID = 650 ( cidr      PGUID  -1 -1 f b t \054 0 0 cidr_in cidr_out cidr_in cidr_out i _null_ ));
 DESCR("Network address");
+#define CIDROID 650
 
 /* OIDS 900 - 999 */
 
index 8820a3e3c312df581ea3c0a0ab5114492bbc912b..49c79d215c011f302610b9844c1fc655e96e6577 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_coerce.h,v 1.6 1998/10/08 18:30:36 momjian Exp $
+ * $Id: parse_coerce.h,v 1.7 1998/10/22 13:51:05 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -23,6 +23,7 @@ typedef enum CATEGORY
    DATETIME_TYPE,
    TIMESPAN_TYPE,
    GEOMETRIC_TYPE,
+   NETWORK_TYPE,
    USER_TYPE,
    MIXED_TYPE
 }          CATEGORY;
@@ -56,7 +57,9 @@ typedef enum CATEGORY
        || ((t) == BOXOID) \
        || ((t) == PATHOID) \
        || ((t) == POLYGONOID) \
-       || ((t) == CIRCLEOID))
+       || ((t) == CIRCLEOID) \
+       || ((t) == INETOID) \
+       || ((t) == CIDROID) )
 
 
 /* IS_BINARY_COMPATIBLE()
@@ -83,7 +86,9 @@ typedef enum CATEGORY
        || ((a) == INT4OID && (b) == ABSTIMEOID) \
        || ((a) == INT4OID && (b) == TIMESTAMPOID) \
        || ((a) == RELTIMEOID && (b) == INT4OID) \
-       || ((a) == INT4OID && (b) == RELTIMEOID))
+       || ((a) == INT4OID && (b) == RELTIMEOID) \
+       || ((a) == INETOID && (b) == CIDROID) \
+       || ((a) == CIDROID && (b) == INETOID))
 
 /* IS_HIGHER_TYPE()
  * These types are the most general in each of the type categories.
@@ -93,7 +98,8 @@ typedef enum CATEGORY
        || ((t) == FLOAT8OID) \
        || ((t) == TIMESPANOID) \
        || ((t) == DATETIMEOID) \
-       || ((t) == POLYGONOID))
+       || ((t) == POLYGONOID) \
+       || ((t) == INETOID) )
 
 /* IS_HIGHEST_TYPE()
  * These types are the most general in each of the type categories.
index c6b4a816bc72e19a3befd198f598c0bb733232b8..e33c3ab96902cc8da5a64017496d8b4220783861 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: builtins.h,v 1.66 1998/10/22 13:16:27 momjian Exp $
+ * $Id: builtins.h,v 1.67 1998/10/22 13:51:07 momjian Exp $
  *
  * NOTES
  *   This should normally only be included by fmgr.h.
@@ -533,16 +533,10 @@ bool      inet_sup(inet * a1, inet * a2);
 bool       inet_supeq(inet * a1, inet * a2);
 int4       inet_cmp(inet * a1, inet * a2);
 
-text      *inet_netmask(inet * addr);
-int4       inet_netmasklen(inet * addr);
-text      *inet_broadcast(inet * addr);
-text      *inet_host(inet * addr);
-
-text      *cidr_netmask(inet * addr);
-int4       cidr_netmasklen(inet * addr);
-text      *cidr_broadcast(inet * addr);
-text      *cidr_host(inet * addr);
-
+text      *netmask(inet * addr);
+int4       masklen(inet * addr);
+text      *broadcast(inet * addr);
+text      *host(inet * addr);
 
 /* mac.c */
 macaddr    *macaddr_in(char *str);