time a strange place for a control character.
On Mon, 8 Sep 2008, Alvaro Herrera wrote:
>>> ERROR: invalid input syntax for type inet:
>>> SQL state: 22P02
> 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
> * 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.
> clean_ipv6_addr(int addr_family, char *addr)
> #ifdef HAVE_IPV6
> if (addr_family == AF_INET6)
> char *pct = strchr(addr, '%');
> if (pct)
> *pct = '\0';