Re: ipv6 patch #3 - Mailing list pgsql-patches
| From | Bruce Momjian |
|---|---|
| Subject | Re: ipv6 patch #3 |
| Date | |
| Msg-id | 200306242242.h5OMgJo17884@candle.pha.pa.us Whole thread Raw |
| In response to | ipv6 patch #3 (Michael Graff <explorer@flame.org>) |
| Responses |
Re: ipv6 patch #3
|
| List | pgsql-patches |
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
pgman@candle.pha.pa.us | (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 -0000 1.13
--- src/backend/utils/adt/inet_net_ntop.c 24 Jun 2003 22:22:44 -0000
***************
*** 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. */
pgsql-patches by date: