Skip site navigation (1) Skip section navigation (2)

Re: Handling of \ in array data display

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Josh Berkus <josh(at)agliodbs(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: Handling of \ in array data display
Date: 2006-08-18 22:32:17
Message-ID: 20060818223217.GA32181@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-bugs
Josh Berkus wrote:

> When saving \ escaped values into text array fields, the \ is escaped when 
> displaying the contents of the array, leading to an appearance that the 
> correct data was not saved:
> 
> scratch=# create table test_arr ( tarr text[] );
> CREATE TABLE
> scratch=# insert into test_arr values ( array['x\y','x\\y','x y'] );
> INSERT 5695623 1
> scratch=# select * from test_arr;
>        tarr
> -------------------
>  {xy,"x\\y","x y"}
> (1 row)

> scratch=# select tarr[2] from test_arr;
>  tarr
> ------
>  x\y
> (1 row)

tarr[1] does not have a \, because it was eaten by the parser (so \y is
the same as a plain y).  tarr[2] does have a single backslash, which for
output purposes is shown escaped with another backslash when part of an
array, but unescaped when not.  I'm not sure if this qualifies as a bug
or not.

You can pass the array back and it will be valid, but amusingly you must
escape tarr[2] before passing it back.

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

In response to

Responses

pgsql-bugs by date

Next:From: Josh BerkusDate: 2006-08-18 23:07:06
Subject: Re: Handling of \ in array data display
Previous:From: Josh BerkusDate: 2006-08-18 21:39:35
Subject: Handling of \ in array data display

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group