Thread: psql treat backslash which is not the first character in the input line as meta-command

SGksYWxsCgoKcHNxbCB0cmVhdCBiYWNrc2xhc2ggd2hpY2ggaXMgbm90IHRoZSBmaXJzdCBjaGFy
YWN0ZXIgaW4gdGhlIGlucHV0IGxpbmUgYXMgbWV0YS1jb21tYW5kLGFuZCBmYWlsZWQgdG8gZXhl
Y3V0ZSB0aGUgbmV4dCBxdWVyeS4KSXQgc2VlbXMgdG8gYmUgYSBidWcuCgoKU2FtcGxlMToKcG9z
dGdyZXM9IyBzZWxlY3QgXDEgc2V0IGMyPWMxJTMgOwpJbnZhbGlkIGNvbW1hbmQgXDEuIFRyeSBc
PyBmb3IgaGVscC4KcG9zdGdyZXMtIyBzZWxlY3QgMTsKRVJST1I6ICBzeW50YXggZXJyb3IgYXQg
b3IgbmVhciAic2VsZWN0IgpMSU5FIDI6IHNlbGVjdCAxOwogICAgICAgIF4KCgoKClNhbXBsZTI6
CnBvc3RncmVzPSMgYSBcbCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBk
YXRhYmFzZXMKICAgTmFtZSAgICB8IE93bmVyICB8IEVuY29kaW5nICB8ICBDb2xsYXRlICAgfCAg
IEN0eXBlICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgCi0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQogcG9z
dGdyZXMgIHwgY2hlbmhqIHwgU1FMX0FTQ0lJIHwgQyAgICAgICAgICB8IEMgICAgICAgICAgfCAK
IHRlbXBsYXRlMCB8IGNoZW5oaiB8IFNRTF9BU0NJSSB8IEMgICAgICAgICAgfCBDICAgICAgICAg
IHwgPWMvY2hlbmhqICAgICAgICArCiAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgICAgfCAg
ICAgICAgICAgIHwgICAgICAgICAgICB8IGNoZW5oaj1DVGMvY2hlbmhqCiB0ZW1wbGF0ZTEgfCBj
aGVuaGogfCBTUUxfQVNDSUkgfCBDICAgICAgICAgIHwgQyAgICAgICAgICB8ID1jL2NoZW5oaiAg
ICAgICAgKwogICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg
ICAgICAgICAgfCBjaGVuaGo9Q1RjL2NoZW5oagooNiByb3dzKQoKCnBvc3RncmVzLSMgc2VsZWN0
IDE7CkVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgImEiCkxJTkUgMTogYSAKICAgICAg
ICBeCgoKUmVnYXJkcywKQ2hlbiBIdWFqdW4=
Hi

It is not bug. Upi can you a backslash commands for entering query

postgres=# select 10 \g ~foo
postgres=# \! cat foo
 ?column?
----------
       10
(1 row)

postgres=# select 10 as xx \gset
postgres=# \echo :xx
10

regards

Pavel Stehule

2014-10-29 10:09 GMT+01:00 chenhj <chjischj@163.com>:

> Hi,all
>
> psql treat backslash which is not the first character in the input line
> as meta-command,and failed to execute the next query.
> It seems to be a bug.
>
> Sample1:
> postgres=# select \1 set c2=c1%3 ;
> Invalid command \1. Try \? for help.
> postgres-# select 1;
> ERROR:  syntax error at or near "select"
> LINE 2: select 1;
>         ^
>
>
> Sample2:
> postgres=# a \l
>                               List of databases
>    Name    | Owner  | Encoding  |  Collate   |   Ctype    | Access
> privileges
>
> -----------+--------+-----------+------------+------------+-------------------
>  postgres  | chenhj | SQL_ASCII | C          | C          |
>  template0 | chenhj | SQL_ASCII | C          | C          | =c/chenhj
>    +
>            |        |           |            |            |
> chenhj=CTc/chenhj
>  template1 | chenhj | SQL_ASCII | C          | C          | =c/chenhj
>    +
>            |        |           |            |            |
> chenhj=CTc/chenhj
> (6 rows)
>
> postgres-# select 1;
> ERROR:  syntax error at or near "a"
> LINE 1: a
>         ^
>
> Regards,
> Chen Huajun
>
SGkKCgpJIHVuZGVyc3RhbmQsVGhhbmtzIQoKCnJlZ2FyZHMsCkNoZW4gSHVhanVuCkF0IDIwMTQt
MTAtMjkgMTc6MjU6MjMsICJQYXZlbCBTdGVodWxlIiA8cGF2ZWwuc3RlaHVsZUBnbWFpbC5jb20+
IHdyb3RlOgoKSGkKCgpJdCBpcyBub3QgYnVnLiBVcGkgY2FuIHlvdSBhIGJhY2tzbGFzaCBjb21t
YW5kcyBmb3IgZW50ZXJpbmcgcXVlcnkKCnBvc3RncmVzPSMgc2VsZWN0IDEwIFxnIH5mb28KcG9z
dGdyZXM9IyBcISBjYXQgZm9vCiA/Y29sdW1uPwotLS0tLS0tLS0tCiAgICAgICAxMAooMSByb3cp
Cgpwb3N0Z3Jlcz0jIHNlbGVjdCAxMCBhcyB4eCBcZ3NldApwb3N0Z3Jlcz0jIFxlY2hvIDp4eAox
MAoKCnJlZ2FyZHMKCgpQYXZlbCBTdGVodWxlCgoKCjIwMTQtMTAtMjkgMTA6MDkgR01UKzAxOjAw
IGNoZW5oaiA8Y2hqaXNjaGpAMTYzLmNvbT46CgpIaSxhbGwKCgpwc3FsIHRyZWF0IGJhY2tzbGFz
aCB3aGljaCBpcyBub3QgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgaW5wdXQgbGluZSBhcyBt
ZXRhLWNvbW1hbmQsYW5kIGZhaWxlZCB0byBleGVjdXRlIHRoZSBuZXh0IHF1ZXJ5LgpJdCBzZWVt
cyB0byBiZSBhIGJ1Zy4KCgpTYW1wbGUxOgpwb3N0Z3Jlcz0jIHNlbGVjdCBcMSBzZXQgYzI9YzEl
MyA7CkludmFsaWQgY29tbWFuZCBcMS4gVHJ5IFw/IGZvciBoZWxwLgpwb3N0Z3Jlcy0jIHNlbGVj
dCAxOwpFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJzZWxlY3QiCkxJTkUgMjogc2Vs
ZWN0IDE7CiAgICAgICAgXgoKCgoKU2FtcGxlMjoKcG9zdGdyZXM9IyBhIFxsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIGRhdGFiYXNlcwogICBOYW1lICAgIHwgT3duZXIg
IHwgRW5jb2RpbmcgIHwgIENvbGxhdGUgICB8ICAgQ3R5cGUgICAgfCBBY2Nlc3MgcHJpdmlsZWdl
cyAKLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCiBwb3N0Z3JlcyAgfCBjaGVuaGogfCBTUUxfQVNDSUkg
fCBDICAgICAgICAgIHwgQyAgICAgICAgICB8IAogdGVtcGxhdGUwIHwgY2hlbmhqIHwgU1FMX0FT
Q0lJIHwgQyAgICAgICAgICB8IEMgICAgICAgICAgfCA9Yy9jaGVuaGogICAgICAgICsKICAgICAg
ICAgICB8ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgY2hl
bmhqPUNUYy9jaGVuaGoKIHRlbXBsYXRlMSB8IGNoZW5oaiB8IFNRTF9BU0NJSSB8IEMgICAgICAg
ICAgfCBDICAgICAgICAgIHwgPWMvY2hlbmhqICAgICAgICArCiAgICAgICAgICAgfCAgICAgICAg
fCAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICB8IGNoZW5oaj1DVGMvY2hlbmhq
Cig2IHJvd3MpCgoKcG9zdGdyZXMtIyBzZWxlY3QgMTsKRVJST1I6ICBzeW50YXggZXJyb3IgYXQg
b3IgbmVhciAiYSIKTElORSAxOiBhIAogICAgICAgIF4KCgpSZWdhcmRzLApDaGVuIEh1YWp1bgoK