Re: quote string exactly as it is - Mailing list pgsql-general

From Albe Laurenz
Subject Re: quote string exactly as it is
Date
Msg-id D960CB61B694CF459DCFB4B0128514C203938094@exadv11.host.magwien.gv.at
Whole thread Raw
In response to quote string exactly as it is  ("dario.ber@libero.it" <dario.ber@libero.it>)
List pgsql-general
dario.ber wrote:
> How can I quote a string *exactly* as it is? I tried using 
> quote_literal() but it doesn't return what I need in some cases.
> 
> E.g.
> 
> If my 
> string is: ss\\\ss
> 
> And I do:
> 
> select quote_literal('ss\\\ss');
> 
> I get:
> 
> 
> E'ss\\ss'  <-- My string now has E'' added and one backslash 
> has been removed!
> 
> 
> What I want to do is to pass a string to a custom made function. Since the 
> string can contain various metacharcters I need some way to pass this string 
> exactly as it is.

If the backslashes are your only problem, set
standard_conforming_strings=on
(in postgresql.conf or in your session).

Then backslashes are treated as normal characters
(unless you prepend the string constant with E).

laurenz=> SET standard_conforming_strings=on;
SET
laurenz=> select quote_literal('ss\\\ss');
 quote_literal 
---------------
 E'ss\\\\\\ss'
(1 row)

Yours,
Laurenz Albe

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Roles with passwords; SET ROLE ... WITH PASSWORD ?
Next
From: Alexey Klyukin
Date:
Subject: Re: Large Objects and Replication question