Re: problem with pg_stat_activity view - Mailing list pgsql-admin

From Alvaro Herrera
Subject Re: problem with pg_stat_activity view
Date
Msg-id 20080908134439.GB4411@alvh.no-ip.org
Whole thread Raw
In response to Re: problem with pg_stat_activity view  (Ben Kim <bkim@tamu.edu>)
Responses Re: problem with pg_stat_activity view  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: problem with pg_stat_activity view  (Ben Kim <bkim@tamu.edu>)
List pgsql-admin
>> ERROR:  invalid input syntax for type inet:
>> "fe80::104d:416e:a8dc:c02e%12"
>>
>> SQL state: 22P02

Interesting.

When we HAVE_IPV6, there's code to remove stuff after a % in an address.
My bet is that what you're running was not compiled with HAVE_IPV6 and
so the code is not executed.  Obviously this is invoked in
pg_stat_get_backend_client_addr().

/*
 * clean_ipv6_addr --- remove any '%zone' part from an IPv6 address string
 *
 * XXX This should go away someday!
 *
 * This is a kluge needed because we don't yet support zones in stored inet
 * values.  Since the result of getnameinfo() might include a zone spec,
 * call this to remove it anywhere we want to feed getnameinfo's output to
 * network_in.  Beats failing entirely.
 *
 * An alternative approach would be to let network_in ignore %-parts for
 * itself, but that would mean we'd silently drop zone specs in user input,
 * which seems not such a good idea.
 */
void
clean_ipv6_addr(int addr_family, char *addr)
{
#ifdef HAVE_IPV6
    if (addr_family == AF_INET6)
    {
        char       *pct = strchr(addr, '%');

        if (pct)
            *pct = '\0';
    }
#endif
}

--
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

pgsql-admin by date:

Previous
From: Ben Kim
Date:
Subject: Re: problem with pg_stat_activity view
Next
From: Tom Lane
Date:
Subject: Re: problem with pg_stat_activity view