Search Postgresql Archives

Re: WARNING: nonstandard use of escape in a string literal

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



No, that doesn't sound right.

I'm not trying to insert a literal '\s' or anything (whatever the heck
that might mean). The sequence '\s' is to be interpreted by the ~
regular expression operator, isn't it? I would imagine that I would
want the sequence of BACKSLASH + LETTER_S to go through to the ~
operator untouched. I don't _want_ it to do any escaping, so the E
prefix feels wrong, no?

I'm still confused,
-Patrick

On Wed, Dec 23, 2009 at 3:32 PM, Bill Moran <wmoran@xxxxxxxxxxxxxxxxx> wrote:
> In response to "Patrick M. Rutkowski" <rutski89@xxxxxxxxx>:
>
>> I just ran something like:
>> =============================================
>> UPDATE my_table SET colname = NULL WHERE colname ~ '^\s*$'
>> =============================================
>>
>>
>> I got the following warnings/hints as a result:
>> =============================================
>> WARNING: nonstandard use of escape in a string literal
>> HINT: USE the escape string syntax for escapes, e.g., E'\r\n'.
>> UPDATE 500
>> =============================================
>>
>>
>> Oddly it actually updated, and did just exactly what I wanted! :-)
>>
>> So what am I to make of those weird hints and warning?
>
> The SQL spec says that inside '', strings are to be interpreted exactly,
> except for the string '', which is converted to '.
>
> Obviously, 99% of the world thinks they should be able to use \ to
> escape special characters (like \n and \t).  PostgreSQL has historically
> supported the more common use and not been strict to the standard.
>
> This is changing.  Newer versions of PG will (someday) no longer support
> that syntax, and the warnings are alerting you to code that will stop
> working when that happens.
>
> In any event, you can work around this using the string escape syntax
> (i.e. WHERE colname ~ E'^\s*$') and the official documentation is here:
> http://www.postgresql.org/docs/8.4/static/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS
>
> --
> Bill Moran
> http://www.potentialtech.com
> http://people.collaborativefusion.com/~wmoran/
>

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux