On Sun, 18 Aug 2002, Tom Lane wrote: > Peter Eisentraut <[EMAIL PROTECTED]> writes: > > In strings.sql: > > > -- illegal string continuation syntax > > SELECT 'first line' > > ' - next line' /* this comment is not allowed here */ > > ' - third line' > > AS "Illegal comment within continuation"; > > ERROR: parser: parse error at or near "' - third line'" at character 89 > > > Character 89 is the end of the "third line" line, but the parse error is > > at the beginning of that line. > > This is fixed as of my later commit. > > > In create_function_1.sql: > > > CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql > > AS 'not even SQL'; > > ERROR: parser: parse error at or near "not" at character 1 > > > Clearly confusing. > > "Character 1" is correct as of the context that the parser is working > in, namely the function body. I don't think we can do much to change > that, but perhaps we could make the message read like > ERROR: parser: parse error at or near "not" at character 1 of function body > This would require giving the parser some sort of context-identifying > string to tack onto the message, but that doesn't seem too hard.
Tom, Reworking the code to taken into account token_start seems to work. elog(ERROR, "parser: %s at or near \"%s\" at character %i", message,token_start ? token_start : yytext, token_start ? (unsigned int)(token_start - scanbuf + 1) : (unsigned int)(yytext - scanbuf + 1)); I will submit a patch once I do some more testing to find other possible situations where this plays up. Gavin ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org