pgsql-server/ oc/src/sgml/datatype.sgml rc/bac ... - Mailing list pgsql-committers

From momjian@svr1.postgresql.org (Bruce Momjian)
Subject pgsql-server/ oc/src/sgml/datatype.sgml rc/bac ...
Date
Msg-id 20030624222124.E765930FA9D@svr1.postgresql.org
Whole thread Raw
List pgsql-committers
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    momjian@svr1.postgresql.org    03/06/24 19:21:24

Modified files:
    doc/src/sgml   : datatype.sgml
    src/backend/utils/adt: inet_net_ntop.c inet_net_pton.c network.c
    src/include/catalog: pg_proc.h
    src/include/utils: builtins.h inet.h
    src/test/regress/expected: inet.out
    src/test/regress/sql: inet.sql

Log message:
    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.

    Michael Graff


pgsql-committers by date:

Previous
From: momjian@svr1.postgresql.org (Bruce Momjian)
Date:
Subject: pgsql-server/doc TODO
Next
From: momjian@svr1.postgresql.org (Bruce Momjian)
Date:
Subject: pgsql-server/src/backend/utils/adt inet_net_ntop.c