Search Postgresql Archives

Re: Sv: Re: Sv: Re: regex match and special characters

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

 



On 08/16/2018 07:47 AM, Andreas Joseph Krogh wrote:
På torsdag 16. august 2018 kl. 16:32:40, skrev Adrian Klaver <adrian.klaver@xxxxxxxxxxx <mailto:adrian.klaver@xxxxxxxxxxx>>:

    On 08/16/2018 07:04 AM, Andreas Joseph Krogh wrote:

     > char(2006) produces the wrong character as 2006 is the hex-value. You
     > have to use 8198:
     > andreak@[local]:543310.4 andreak=# select version();
     >
    ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
     > │                                            version
     >                                              │
     >
    ├────────────────────────────────────────────────────────────────────────────────────────────────┤
     > │ PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
     > 7.3.0-16ubuntu3) 7.3.0, 64-bit │
     >
    └────────────────────────────────────────────────────────────────────────────────────────────────┘
     > (1 row)
     >
     > andreak@[local]:543310.4 andreak=# select 'abcd'||chr(8198) ~
    'abcd\s';
     > ┌──────────┐
     > │ ?column? │
     > ├──────────┤
     > │ t        │
     > └──────────┘
     > (1 row)

    Argh, read the wrong line. Thanks for the correction. Still:

    test=# select version();
                                            version

    ------------------------------------------------------------------------------------
       PostgreSQL 10.5 on x86_64-pc-linux-gnu, compiled by gcc (SUSE Linux)
    4.8.5, 64-bit
    (1 row)


    test=# select 'abcd'||chr(8198) ~ E'abcd\s';
       ?column?
    ----------
       f
    (1 row)

When using E-syntax you need to double the backslash for escaping:
andreak@[local]:543310.4 andreak=# select 'abcd'||chr(8198) ~ E'abcd\\s';
┌──────────┐
│ ?column? │
├──────────┤
│ t        │
└──────────┘
(1 row)

Hmm:

test=# show standard_conforming_strings;
 standard_conforming_strings
-----------------------------
 off
(1 row)

test=# show escape_string_warning;
 escape_string_warning
-----------------------
 on
(1 row)



test=# select 'abcd'||chr(8198) ~ 'abcd\s';
WARNING:  nonstandard use of escape in a string literal
LINE 1: select 'abcd'||chr(8198) ~ 'abcd\s';
                                   ^
HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.
 ?column?
----------
 f
(1 row)

test=# select 'abcd'||chr(8198) ~ 'abcd\\s';
WARNING:  nonstandard use of \\ in a string literal
LINE 1: select 'abcd'||chr(8198) ~ 'abcd\\s';
                                   ^
HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.
 ?column?
----------
 t
(1 row)


test=# set escape_string_warning = 'off';
SET
test=# show escape_string_warning;
 escape_string_warning
-----------------------
 off
(1 row)

test=# select 'abcd'||chr(8198) ~ 'abcd\s';
 ?column?
----------
 f
(1 row)

test=# set standard_conforming_strings = 'on';
SET
test=# show standard_conforming_strings;
 standard_conforming_strings
-----------------------------
 on
(1 row)

test=# select 'abcd'||chr(8198) ~ 'abcd\s';
 ?column?
----------
 t
(1 row)


Wonder if the OP has standard_conforming_strings='off' and
escape_string_warning='off'?



--
*Andreas Joseph Krogh*
CTO / Partner - Visena AS
Mobile: +47 909 56 963
andreas@xxxxxxxxxx <mailto:andreas@xxxxxxxxxx>
www.visena.com <https://www.visena.com>
<https://www.visena.com>


--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx




[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