mirror of
https://github.com/postgres/postgres.git
synced 2025-04-29 13:56:47 +03:00
Make new complaint about unsafe Unicode literals include an error location.
Every other ereport in scan.l has one, this should too.
This commit is contained in:
parent
249a899f73
commit
1bbbcb04f0
@ -24,7 +24,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/parser/scan.l,v 1.152 2009/05/05 18:32:17 petere Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/parser/scan.l,v 1.153 2009/05/05 21:09:23 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -469,12 +469,13 @@ other .
|
||||
startlit();
|
||||
}
|
||||
{xusstart} {
|
||||
SET_YYLLOC();
|
||||
if (!standard_conforming_strings)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("unsafe use of string constant with Unicode escapes"),
|
||||
errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off.")));
|
||||
SET_YYLLOC();
|
||||
errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."),
|
||||
lexer_errposition()));
|
||||
BEGIN(xus);
|
||||
startlit();
|
||||
}
|
||||
|
@ -62,12 +62,18 @@ LINE 1: SELECT U&'wrong: +0061' UESCAPE '+';
|
||||
SET standard_conforming_strings TO off;
|
||||
SELECT U&'d\0061t\+000061' AS U&"d\0061t\+000061";
|
||||
ERROR: unsafe use of string constant with Unicode escapes
|
||||
LINE 1: SELECT U&'d\0061t\+000061' AS U&"d\0061t\+000061";
|
||||
^
|
||||
DETAIL: String constants with Unicode escapes cannot be used when standard_conforming_strings is off.
|
||||
SELECT U&'d!0061t\+000061' UESCAPE '!' AS U&"d*0061t\+000061" UESCAPE '*';
|
||||
ERROR: unsafe use of string constant with Unicode escapes
|
||||
LINE 1: SELECT U&'d!0061t\+000061' UESCAPE '!' AS U&"d*0061t\+000061...
|
||||
^
|
||||
DETAIL: String constants with Unicode escapes cannot be used when standard_conforming_strings is off.
|
||||
SELECT U&' \' UESCAPE '!' AS "tricky";
|
||||
ERROR: unsafe use of string constant with Unicode escapes
|
||||
LINE 1: SELECT U&' \' UESCAPE '!' AS "tricky";
|
||||
^
|
||||
DETAIL: String constants with Unicode escapes cannot be used when standard_conforming_strings is off.
|
||||
SELECT 'tricky' AS U&"\" UESCAPE '!';
|
||||
\
|
||||
@ -77,12 +83,18 @@ SELECT 'tricky' AS U&"\" UESCAPE '!';
|
||||
|
||||
SELECT U&'wrong: \061';
|
||||
ERROR: unsafe use of string constant with Unicode escapes
|
||||
LINE 1: SELECT U&'wrong: \061';
|
||||
^
|
||||
DETAIL: String constants with Unicode escapes cannot be used when standard_conforming_strings is off.
|
||||
SELECT U&'wrong: \+0061';
|
||||
ERROR: unsafe use of string constant with Unicode escapes
|
||||
LINE 1: SELECT U&'wrong: \+0061';
|
||||
^
|
||||
DETAIL: String constants with Unicode escapes cannot be used when standard_conforming_strings is off.
|
||||
SELECT U&'wrong: +0061' UESCAPE '+';
|
||||
ERROR: unsafe use of string constant with Unicode escapes
|
||||
LINE 1: SELECT U&'wrong: +0061' UESCAPE '+';
|
||||
^
|
||||
DETAIL: String constants with Unicode escapes cannot be used when standard_conforming_strings is off.
|
||||
RESET standard_conforming_strings;
|
||||
--
|
||||
|
Loading…
x
Reference in New Issue
Block a user