libpq string escaping question

Lists: pgsql-interfaces
From: Klaus Darilion <klaus(dot)mailinglists(at)pernau(dot)at>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: libpq string escaping question
Date: 2008-01-25 10:13:18
Message-ID: 4799B63E.90006@pernau.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

Hi all!

From the docs:
> PQunescapeBytea
>
> Converts a string representation of binary data into binary data —
> the reverse of PQescapeBytea. This is needed when retrieving bytea
> data in text format, but not when retrieving it in binary format.

But how do I know if data is retrieved in text or binary format? I read
that PQexecParams allows to specify the return format (text or binary)
but what about PQexec() and PQgetResult()? Do they return binary or
text? Or is it configurable for PQexec ann PQgetResult too?

Further from the docs (about E'' syntax):
> The standard_conforming_strings value is read-only. Applications can
> retrieve the value to know how backslashes are processed. (Presence
> of the parameter can also be taken as an indication that E'' string
> syntax is supported.)

How can I retrieve this value?

thanks
klaus


From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: "Klaus Darilion" <klaus(dot)mailinglists(at)pernau(dot)at>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: libpq string escaping question
Date: 2008-01-26 13:58:52
Message-ID: 80997033-7782-4973-bb3c-acae31b0a7c5@mm
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

Klaus Darilion wrote:

> But how do I know if data is retrieved in text or binary format? I
read
> that PQexecParams allows to specify the return format (text or
binary)
> but what about PQexec() and PQgetResult()? Do they return binary or
> text? Or is it configurable for PQexec ann PQgetResult too?

PQfformat() applied to a column of a result indicates whether it's text
or binary.
When the query is run through PQexec(), my understanding is that
results will always be in text format except if specified otherwise at
the SQL level. That would be the case for a FETCH from a BINARY CURSOR.
I'm not sure if there is any other case, BTW, anyone knows?

> Further from the docs (about E'' syntax):
> > The standard_conforming_strings value is read-only. Applications
can
> > retrieve the value to know how backslashes are processed.
(Presence
> > of the parameter can also be taken as an indication that E''
string
> > syntax is supported.)
>
> How can I retrieve this value?

Check out PQparameterStatus()

--
Daniel
PostgreSQL-powered mail user agent and storage:
http://www.manitou-mail.org