From ca2995be7bf63e394d3ac80327cf5f69a1474745 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 22 Oct 1998 13:51:07 +0000 Subject: [PATCH] Remove duplicate CIDR funcs by using coerce entries. --- src/backend/parser/parse_coerce.c | 11 +++++++- src/backend/utils/adt/inet.c | 40 ++++++---------------------- src/include/catalog/pg_amop.h | 12 ++++----- src/include/catalog/pg_operator.h | 3 +-- src/include/catalog/pg_proc.h | 44 +++++-------------------------- src/include/catalog/pg_type.h | 4 ++- src/include/parser/parse_coerce.h | 14 +++++++--- src/include/utils/builtins.h | 16 ++++------- 8 files changed, 50 insertions(+), 94 deletions(-) diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index 1a34e4ea58..4546922633 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -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; diff --git a/src/backend/utils/adt/inet.c b/src/backend/utils/adt/inet.c index 3afdf1437e..19d6f01702 100644 --- a/src/backend/utils/adt/inet.c +++ b/src/backend/utils/adt/inet.c @@ -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! */ diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h index af57116e1a..25c0f36276 100644 --- a/src/include/catalog/pg_amop.h +++ b/src/include/catalog/pg_amop.h @@ -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 diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h index 53bdfc73ef..87a8471c50 100644 --- a/src/include/catalog/pg_operator.h +++ b/src/include/catalog/pg_operator.h @@ -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 */ diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index a36e9030af..4677a8dc94 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -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"); diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h index 4b8884fd47..5b0f1e8627 100644 --- a/src/include/catalog/pg_type.h +++ b/src/include/catalog/pg_type.h @@ -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 */ diff --git a/src/include/parser/parse_coerce.h b/src/include/parser/parse_coerce.h index 8820a3e3c3..49c79d215c 100644 --- a/src/include/parser/parse_coerce.h +++ b/src/include/parser/parse_coerce.h @@ -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. diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index c6b4a816bc..e33c3ab969 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -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); -- 2.40.0