mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-05 19:09:58 +08:00
Have psql escape bytes in strings for variables follow the backend
conventions of only allowing octal, like \045. Remove support for \decimal, \0octal, and \0xhex which matches the strtol() function but didn't make sense with backslashes. These now return the same character: test=> \set x '\54' test=> \echo :x , test=> \set x '\054' test=> \echo :x , THIS IS A BACKWARD COMPATIBILITY CHANGE.
This commit is contained in:
parent
6616e23264
commit
f13c132072
@ -33,7 +33,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/bin/psql/psqlscan.l,v 1.10 2005/05/26 01:24:29 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/psql/psqlscan.l,v 1.11 2005/05/30 14:50:35 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -849,29 +849,10 @@ other .
|
||||
"\\r" { appendPQExpBufferChar(output_buf, '\r'); }
|
||||
"\\f" { appendPQExpBufferChar(output_buf, '\f'); }
|
||||
|
||||
"\\"[1-9][0-9]* {
|
||||
/* decimal case */
|
||||
appendPQExpBufferChar(output_buf,
|
||||
(char) strtol(yytext + 1, NULL, 0));
|
||||
}
|
||||
|
||||
"\\"0[0-7]* {
|
||||
"\\"[0-7]{1,3} {
|
||||
/* octal case */
|
||||
appendPQExpBufferChar(output_buf,
|
||||
(char) strtol(yytext + 1, NULL, 0));
|
||||
}
|
||||
|
||||
"\\"0[xX][0-9A-Fa-f]+ {
|
||||
/* hex case */
|
||||
appendPQExpBufferChar(output_buf,
|
||||
(char) strtol(yytext + 1, NULL, 0));
|
||||
}
|
||||
|
||||
"\\"0[xX] {
|
||||
/* failed hex case */
|
||||
yyless(2);
|
||||
appendPQExpBufferChar(output_buf,
|
||||
(char) strtol(yytext + 1, NULL, 0));
|
||||
(char) strtol(yytext + 1, NULL, 8));
|
||||
}
|
||||
|
||||
"\\". { emit(yytext + 1, 1); }
|
||||
|
Loading…
Reference in New Issue
Block a user