I have applied the newest version of this patch. I did find one warning
reported by my compiler:
inet_net_ntop.c:273: warning: too many arguments for format
inet_net_ntop.c:275: warning: too many arguments for format
I have applied the attached patch to prevent the warnings. Please check
that the patch matches your intentions.
Thanks. I have been waiting for this patch for a long time.
FYI, I also changed the 631 oid because that was already used, probably
by a recent patch.
---
Michael Graff wrote:
> This includes several revisions from others.
>
> Major changes:
>
> Add ipv6 address parsing support to 'inet' and 'cidr' data types.
>
> Regression tests for IPv6 operations added.
>
> Documentation updated to document IPv6 bits.
>
> Stop treating IPv4 as an "unsigned int" and IPv6 as an array of
> characters. Instead, always use the array of characters so we
> can have one function fits all. This makes bitncmp(), addressOK(),
> and several other functions "just work" on both address families.
>
> add family() function which returns integer 4 or 6 for IPv4 or
> IPv6. (See examples below) Note that to add this new function
> you will need to dump/initdb/reload or find the correct magic
> to add the function to the postgresql function catalogs.
>
> IPv4 addresses always sort before IPv6.
>
> On disk we use AF_INET for IPv4, and AF_INET+1 for IPv6 addresses.
> This prevents the need for a dump and reload, but lets IPv6 parsing
> work on machines without AF_INET6.
>
> To select all IPv4 addresses from a table:
>
> select * from foo where family(addr) = 4 ...
>
> Order by and other bits should all work.
>
> Regression tests pass, at least on my NetBSD machine.
>
--
Bruce Momjian| http://candle.pha.pa.us
[EMAIL PROTECTED] | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup.| Newtown Square, Pennsylvania 19073
Index: src/backend/utils/adt/inet_net_ntop.c
===
RCS file: /cvsroot/pgsql-server/src/backend/utils/adt/inet_net_ntop.c,v
retrieving revision 1.13
diff -c -c -r1.13 inet_net_ntop.c
*** src/backend/utils/adt/inet_net_ntop.c 24 Jun 2003 22:21:22 - 1.13
--- src/backend/utils/adt/inet_net_ntop.c 24 Jun 2003 22:22:44 -
***
*** 270,278
if (!double_colon) {
if (bits < 128 - 32)
! cp += SPRINTF((cp, "::", bits));
else if (bits < 128 - 16)
! cp += SPRINTF((cp, ":0", bits));
}
/* Format CIDR /width. */
--- 270,278
if (!double_colon) {
if (bits < 128 - 32)
! cp += SPRINTF((cp, "::%d", bits));
else if (bits < 128 - 16)
! cp += SPRINTF((cp, ":0%d", bits));
}
/* Format CIDR /width. */
---(end of broadcast)---
TIP 8: explain analyze is your friend