From 9fbd52808e92d16ae9815a1e6d515829bf7bd025 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 29 May 2003 20:40:36 +0000 Subject: [PATCH] Adopt latest bison's spelling of 'syntax error' rather than 'parse error' for grammar-detected problems. Revert Makefile hack that kept it looking like the pre-bison-1.875 output. --- doc/src/sgml/xfunc.sgml | 4 +- src/backend/parser/Makefile | 10 +--- src/backend/parser/gram.y | 4 +- src/backend/parser/scan.l | 12 +++- src/test/regress/expected/errors.out | 56 +++++++++---------- src/test/regress/expected/strings.out | 2 +- src/test/regress/output/constraints.source | 4 +- .../regress/output/create_function_1.source | 2 +- 8 files changed, 47 insertions(+), 47 deletions(-) diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index 4f9018e1d5..f6298a0ecc 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -1,5 +1,5 @@ @@ -330,7 +330,7 @@ SELECT (new_emp()).name; SELECT new_emp().name; -ERROR: parser: parse error at or near "." +ERROR: syntax error at or near "." diff --git a/src/backend/parser/Makefile b/src/backend/parser/Makefile index 5720452f81..b6698d2ae2 100644 --- a/src/backend/parser/Makefile +++ b/src/backend/parser/Makefile @@ -2,7 +2,7 @@ # # Makefile for parser # -# $Header: /cvsroot/pgsql/src/backend/parser/Makefile,v 1.40 2003/02/10 04:44:45 tgl Exp $ +# $Header: /cvsroot/pgsql/src/backend/parser/Makefile,v 1.41 2003/05/29 20:40:36 tgl Exp $ # #------------------------------------------------------------------------- @@ -38,17 +38,11 @@ gram.o: $(srcdir)/scan.c $(srcdir)/gram.c: $(srcdir)/parse.h ; -# The sed hack is so that we can get the same error messages with -# bison 1.875 and later as we did with earlier bisons. Eventually, -# I suppose, we should re-standardize on "syntax error" --- in which -# case flip the sed translation, but don't remove it. - $(srcdir)/parse.h: gram.y ifdef YACC $(YACC) -d $(YFLAGS) $< - sed -e 's/"syntax error/"parse error/' < y.tab.c > $(srcdir)/gram.c + mv -f y.tab.c $(srcdir)/gram.c mv -f y.tab.h $(srcdir)/parse.h - rm -f y.tab.c else @$(missing) bison $< $@ endif diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 681738253b..ec2f331609 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.415 2003/05/28 16:03:57 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.416 2003/05/29 20:40:36 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -4680,7 +4680,7 @@ table_ref: relation_expr * popular demand, but for now let's just implement * the spec and see if anyone complains. * However, it does seem like a good idea to emit - * an error message that's better than "parse error". + * an error message that's better than "syntax error". */ elog(ERROR, "sub-SELECT in FROM must have an alias" "\n\tFor example, FROM (SELECT ...) [AS] foo"); diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index c1f53ac8eb..6cb5972b2f 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.105 2003/04/27 20:09:44 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.106 2003/05/29 20:40:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -581,13 +581,19 @@ yyerror(const char *message) cursorpos = pg_mbstrlen_with_len(scanbuf, loc - scanbuf) + 1; if (*loc == YY_END_OF_BUFFER_CHAR) + { + /* translator: %s is typically "syntax error" */ ereport(ERROR, - (errmsg("parser: %s at end of input", message), + (errmsg("%s at end of input", message), errposition(cursorpos))); + } else + { + /* translator: first %s is typically "syntax error" */ ereport(ERROR, - (errmsg("parser: %s at or near \"%s\"", message, loc), + (errmsg("%s at or near \"%s\"", message, loc), errposition(cursorpos))); + } } diff --git a/src/test/regress/expected/errors.out b/src/test/regress/expected/errors.out index 6c38629217..c97b8346b1 100644 --- a/src/test/regress/expected/errors.out +++ b/src/test/regress/expected/errors.out @@ -22,13 +22,13 @@ select 1; -- missing relation name select; -ERROR: parser: parse error at or near ";" at character 7 +ERROR: syntax error at or near ";" at character 7 -- no such relation select * from nonesuch; ERROR: Relation "nonesuch" does not exist -- missing target list select from pg_database; -ERROR: parser: parse error at or near "from" at character 8 +ERROR: syntax error at or near "from" at character 8 -- bad name in target list select nonesuch from pg_database; ERROR: Attribute "nonesuch" not found @@ -40,7 +40,7 @@ select * from pg_database where pg_database.datname = nonesuch; ERROR: Attribute "nonesuch" not found -- bad select distinct on syntax, distinct attribute missing select distinct on (foobar) from pg_database; -ERROR: parser: parse error at or near "from" at character 29 +ERROR: syntax error at or near "from" at character 29 -- bad select distinct on syntax, distinct attribute not in target list select distinct on (foobar) * from pg_database; ERROR: Attribute "foobar" not found @@ -49,7 +49,7 @@ ERROR: Attribute "foobar" not found -- missing relation name (this had better not wildcard!) delete from; -ERROR: parser: parse error at or near ";" at character 12 +ERROR: syntax error at or near ";" at character 12 -- no such relation delete from nonesuch; ERROR: Relation "nonesuch" does not exist @@ -58,7 +58,7 @@ ERROR: Relation "nonesuch" does not exist -- missing relation name (this had better not wildcard!) drop table; -ERROR: parser: parse error at or near ";" at character 11 +ERROR: syntax error at or near ";" at character 11 -- no such relation drop table nonesuch; ERROR: table "nonesuch" does not exist @@ -68,7 +68,7 @@ ERROR: table "nonesuch" does not exist -- relation renaming -- missing relation name alter table rename; -ERROR: parser: parse error at or near ";" at character 19 +ERROR: syntax error at or near ";" at character 19 -- no such relation alter table nonesuch rename to newnonesuch; ERROR: Relation "nonesuch" does not exist @@ -122,10 +122,10 @@ ERROR: Define: "basetype" unspecified -- missing index name drop index; -ERROR: parser: parse error at or near ";" at character 11 +ERROR: syntax error at or near ";" at character 11 -- bad index name drop index 314159; -ERROR: parser: parse error at or near "314159" at character 12 +ERROR: syntax error at or near "314159" at character 12 -- no such index drop index nonesuch; ERROR: index "nonesuch" does not exist @@ -134,13 +134,13 @@ ERROR: index "nonesuch" does not exist -- missing aggregate name drop aggregate; -ERROR: parser: parse error at or near ";" at character 15 +ERROR: syntax error at or near ";" at character 15 -- missing aggregate type drop aggregate newcnt1; -ERROR: parser: parse error at or near ";" at character 23 +ERROR: syntax error at or near ";" at character 23 -- bad aggregate name drop aggregate 314159 (int); -ERROR: parser: parse error at or near "314159" at character 16 +ERROR: syntax error at or near "314159" at character 16 -- bad aggregate type drop aggregate newcnt (nonesuch); ERROR: Type "nonesuch" does not exist @@ -155,10 +155,10 @@ ERROR: RemoveAggregate: aggregate newcnt(real) does not exist -- missing function name drop function (); -ERROR: parser: parse error at or near "(" at character 15 +ERROR: syntax error at or near "(" at character 15 -- bad function name drop function 314159(); -ERROR: parser: parse error at or near "314159" at character 15 +ERROR: syntax error at or near "314159" at character 15 -- no such function drop function nonesuch(); ERROR: RemoveFunction: function nonesuch() does not exist @@ -167,10 +167,10 @@ ERROR: RemoveFunction: function nonesuch() does not exist -- missing type name drop type; -ERROR: parser: parse error at or near ";" at character 10 +ERROR: syntax error at or near ";" at character 10 -- bad type name drop type 314159; -ERROR: parser: parse error at or near "314159" at character 11 +ERROR: syntax error at or near "314159" at character 11 -- no such type drop type nonesuch; ERROR: Type "nonesuch" does not exist @@ -179,22 +179,22 @@ ERROR: Type "nonesuch" does not exist -- missing everything drop operator; -ERROR: parser: parse error at or near ";" at character 14 +ERROR: syntax error at or near ";" at character 14 -- bad operator name drop operator equals; -ERROR: parser: parse error at or near ";" at character 21 +ERROR: syntax error at or near ";" at character 21 -- missing type list drop operator ===; -ERROR: parser: parse error at or near ";" at character 18 +ERROR: syntax error at or near ";" at character 18 -- missing parentheses drop operator int4, int4; -ERROR: parser: parse error at or near "," at character 19 +ERROR: syntax error at or near "," at character 19 -- missing operator name drop operator (int4, int4); -ERROR: parser: parse error at or near "(" at character 15 +ERROR: syntax error at or near "(" at character 15 -- missing type list contents drop operator === (); -ERROR: parser: parse error at or near ")" at character 20 +ERROR: syntax error at or near ")" at character 20 -- no such operator drop operator === (int4); ERROR: parser: argument type missing (use NONE for unary operators) @@ -206,7 +206,7 @@ drop operator = (nonesuch); ERROR: parser: argument type missing (use NONE for unary operators) -- no such type1 drop operator = ( , int4); -ERROR: parser: parse error at or near "," at character 19 +ERROR: syntax error at or near "," at character 19 -- no such type1 drop operator = (nonesuch, int4); ERROR: Type "nonesuch" does not exist @@ -215,28 +215,28 @@ drop operator = (int4, nonesuch); ERROR: Type "nonesuch" does not exist -- no such type2 drop operator = (int4, ); -ERROR: parser: parse error at or near ")" at character 24 +ERROR: syntax error at or near ")" at character 24 -- -- DROP RULE -- missing rule name drop rule; -ERROR: parser: parse error at or near ";" at character 10 +ERROR: syntax error at or near ";" at character 10 -- bad rule name drop rule 314159; -ERROR: parser: parse error at or near "314159" at character 11 +ERROR: syntax error at or near "314159" at character 11 -- no such rule drop rule nonesuch on noplace; ERROR: Relation "noplace" does not exist -- bad keyword drop tuple rule nonesuch; -ERROR: parser: parse error at or near "tuple" at character 6 +ERROR: syntax error at or near "tuple" at character 6 -- no such rule drop instance rule nonesuch on noplace; -ERROR: parser: parse error at or near "instance" at character 6 +ERROR: syntax error at or near "instance" at character 6 -- no such rule drop rewrite rule nonesuch; -ERROR: parser: parse error at or near "rewrite" at character 6 +ERROR: syntax error at or near "rewrite" at character 6 -- -- Check that division-by-zero is properly caught. -- diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out index 26c18d1690..8af8deff2f 100644 --- a/src/test/regress/expected/strings.out +++ b/src/test/regress/expected/strings.out @@ -18,7 +18,7 @@ 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 75 +ERROR: syntax error at or near "' - third line'" at character 75 -- -- test conversions between various string types -- E021-10 implicit casting among the character data types diff --git a/src/test/regress/output/constraints.source b/src/test/regress/output/constraints.source index 7a0e335509..ec1cc3b16a 100644 --- a/src/test/regress/output/constraints.source +++ b/src/test/regress/output/constraints.source @@ -45,12 +45,12 @@ SELECT '' AS four, * FROM DEFAULTEXPR_TBL; -- syntax errors -- test for extraneous comma CREATE TABLE error_tbl (i int DEFAULT (100, )); -ERROR: parser: parse error at or near "," at character 43 +ERROR: syntax error at or near "," at character 43 -- this will fail because gram.y uses b_expr not a_expr for defaults, -- to avoid a shift/reduce conflict that arises from NOT NULL being -- part of the column definition syntax: CREATE TABLE error_tbl (b1 bool DEFAULT 1 IN (1, 2)); -ERROR: parser: parse error at or near "IN" at character 43 +ERROR: syntax error at or near "IN" at character 43 -- this should work, however: CREATE TABLE error_tbl (b1 bool DEFAULT (1 IN (1, 2))); DROP TABLE error_tbl; diff --git a/src/test/regress/output/create_function_1.source b/src/test/regress/output/create_function_1.source index b416c66cdd..fcca5be63d 100644 --- a/src/test/regress/output/create_function_1.source +++ b/src/test/regress/output/create_function_1.source @@ -51,7 +51,7 @@ CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql ERROR: return type mismatch in function: declared to return integer, returns "unknown" CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql AS 'not even SQL'; -ERROR: parser: parse error at or near "not" at character 1 +ERROR: syntax error at or near "not" at character 1 CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql AS 'SELECT 1, 2, 3;'; ERROR: function declared to return integer returns multiple columns in final SELECT