Re: array quotation problem

From: Sim Zacks <sim(at)compulab(dot)co(dot)il>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: array quotation problem
Date: 2006-12-27 09:20:23
Message-ID: emtduc$2fql$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I solved my specific problem by converting the array to a python as follows:
objlist=arr_text[1:-1].replace('"','').split(",")
This removes the quotes in any element that had it already, and then makes a list out of the string
separated by commas.
I'm still curious if it is possible to put the quotes into an array, so if you have an idea, give a
shout.

Sim Zacks wrote:
> select version();
> "PostgreSQL 8.0.1 on i686-pc-linux-gnu, compiled by GCC
> i686-pc-linux-gnu-gcc (GCC) 3.3.5 (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3,
> pie-8.7.7.1)"
>
> In short:
> Does anyone have any idea of how to put non escaped quotes into a text
> array element in the same way that the system puts non escaped quotes
> around the text of an element that has whitespace within?
>
> Details:
> I am using a text array and when there are spaces in the text, the
> parser automatically puts double quotes around the element and when
> there are no special characters it doesn't, as is written in the
> documentation.
>
> I would like to put double quotes around all the elements, even the ones
> without special characters and I can't figure out how. The double quotes
> that the system automatically puts in are not escaped with a \, but when
> I add quotes they are escaped (again as written in the documentation).
> If have tried using chr(32) and quote_ident() and they work the same way.
>
> My specific problem is that I am passing the array into a python
> function and converting it to a python list type. The array gets passed
> in as a comma delimited string. If the values are already quoted
> (without escapes) then it can be converted automatically. Otherwise I
> have to write a parsing routine to check which of the elements have
> quotes (the ones that had a space) and which don't and then to put in
> the quotes manually before I can convert it to a list type.
>
> According to the documentation:
>> The array output routine will put double quotes around element values
>> if they are empty strings, contain curly braces, delimiter characters,
>> double quotes, backslashes, or white space, or
> > match the word NULL. Double quotes and backslashes embedded in
> element values will be backslash-escaped.
>> For numeric data types it is safe to assume that double quotes will
>> never appear, but for textual
>> data types one should be prepared to cope with either presence or
>> absence of quotes.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ilja Golshtein 2006-12-27 14:43:45 Re: table locks
Previous Message Albe Laurenz 2006-12-27 08:29:27 Re: DB problem