Re: nonstandard use of - Mailing list pgsql-general

From Albe Laurenz
Subject Re: nonstandard use of
Date
Msg-id D960CB61B694CF459DCFB4B0128514C26ABA9A@exadv11.host.magwien.gv.at
Whole thread Raw
In response to nonstandard use of  ("Peckham, Martin" <martin.peckham@guidancesoftware.com>)
List pgsql-general
Martin Peckham wrote:
> I recently installed the latest non-beta version 8.2 of postgresql.
>
> I get the following warning and hint in the server status GUI:
>
> WARNING:    nonstandard use of \\ in a string literal at characters 64
> HINT:       Use the excape string syntax for backslashes, e.g, E'\\'.
>
> The "raw" string I want to write is:
>
> [\x09-\x0A\x0D\x20-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]MI[\x09-\x0
> A\x0D\x20-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]
>
> After escaping, I write:
>
> [\\x09-\\x0A\\x0D\\x20-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E]
> MI[\\x09-\\x0A\\x0D\\x20-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E]
>
> Assuming the count starts at 0, the character at position 64
> is the [ character.
>
> I've read an earlier post that tells of how to SUPRESS the
> warning.  I want to eliminate the warning.

I reckon that "64" refers to the position of the string in the
SQL statement, i.e. the string starts at that position in the statement.
Is that possible?

To get rid of the warning, you can either:

- *not* double the backslashes and set standard_conforming_strings
  to "on".
- prepend each string literal with an E as the warning suggests.
- set escape_string_warning to "off".

The first solution is the best, the last the worst.

Yours,
Laurenz Albe

pgsql-general by date:

Previous
From: Troy Rasiah
Date:
Subject: Re: how to unsubscribe from this group?
Next
From: "Albe Laurenz"
Date:
Subject: Re: postgres bash prompt error while user creation