Re: array quotation problem - Mailing list pgsql-general

From Sim Zacks
Subject Re: array quotation problem
Date
Msg-id emtduc$2fql$1@news.hub.org
Whole thread Raw
In response to array quotation problem  (Sim Zacks <sim@compulab.co.il>)
List 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.

pgsql-general by date:

Previous
From: "Albe Laurenz"
Date:
Subject: Re: DB problem
Next
From: "Ilja Golshtein"
Date:
Subject: Re: table locks