Thread: nonstandard use of

nonstandard use of

From
"Peckham, Martin"
Date:

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-\x0A\x0D\x20-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]

 

After escaping, I write:                                          _ 64th

                                                                 /

[\\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.

 

TIA

 

Marty Peckham

 

Note: The information contained in this message may be privileged and
confidential and thus protected from disclosure. If the reader of this
message is not the intended recipient, or an employee or agent responsible 
for delivering this message to the intended recipient, you are hereby
notified that any dissemination, distribution or copying of this
communication is strictly prohibited.  If you have received this
communication in error, please notify us immediately by replying to the 
message and deleting it from your computer.  Thank you.

Re: nonstandard use of

From
"Albe Laurenz"
Date:
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