diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index afb61981ce..27af379d7e 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.85 2009/06/11 14:48:56 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.86 2009/07/12 17:12:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -28,8 +28,8 @@ #include "commands/defrem.h" #include "commands/proclang.h" #include "miscadmin.h" -#include "parser/gramparse.h" #include "parser/parse_func.h" +#include "parser/parser.h" #include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index f22e7be5d8..846f34e19d 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.288 2009/06/18 01:27:02 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.289 2009/07/12 17:12:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -51,7 +51,6 @@ #include "nodes/nodeFuncs.h" #include "nodes/parsenodes.h" #include "optimizer/clauses.h" -#include "parser/gramparse.h" #include "parser/parse_clause.h" #include "parser/parse_coerce.h" #include "parser/parse_expr.h" diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 06499fa9bc..dd71071efd 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -4,14 +4,14 @@ /*------------------------------------------------------------------------- * * gram.y - * POSTGRES SQL YACC rules/actions + * POSTGRESQL BISON rules/actions * * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.666 2009/07/06 02:58:40 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.667 2009/07/12 17:12:33 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -58,6 +58,7 @@ #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/gramparse.h" +#include "parser/parser.h" #include "storage/lmgr.h" #include "utils/date.h" #include "utils/datetime.h" @@ -6807,7 +6808,7 @@ opt_hold: /* EMPTY */ { $$ = 0; } * * There is an ambiguity when a sub-SELECT is within an a_expr and there * are excess parentheses: do the parentheses belong to the sub-SELECT or - * to the surrounding a_expr? We don't really care, but yacc wants to know. + * to the surrounding a_expr? We don't really care, but bison wants to know. * To resolve the ambiguity, we are careful to define the grammar so that * the decision is staved off as long as possible: as long as we can keep * absorbing parentheses into the sub-SELECT, we will do so, and only when @@ -8204,7 +8205,7 @@ a_expr: c_expr { $$ = $1; } } /* * These operators must be called out explicitly in order to make use - * of yacc/bison's automatic operator-precedence handling. All other + * of bison's automatic operator-precedence handling. All other * operator names are handled by the generic productions using "Op", * below; and all those operators will have the same precedence. * diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c index 0abd802fea..05e7fb9ee5 100644 --- a/src/backend/parser/keywords.c +++ b/src/backend/parser/keywords.c @@ -9,16 +9,14 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.212 2009/03/08 16:53:30 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.213 2009/07/12 17:12:33 tgl Exp $ * *------------------------------------------------------------------------- */ #include "postgres.h" -#include "nodes/nodes.h" -#include "nodes/parsenodes.h" +#include "parser/gramparse.h" #include "parser/keywords.h" -#include "parser/gram.h" #define PG_KEYWORD(a,b,c) {a,b,c}, diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index e5a3621cce..0c93f58c17 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -19,7 +19,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/parser/parse_utilcmd.c,v 2.21 2009/06/11 14:49:00 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/parser/parse_utilcmd.c,v 2.22 2009/07/12 17:12:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,12 +42,12 @@ #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/analyze.h" -#include "parser/gramparse.h" #include "parser/parse_clause.h" #include "parser/parse_expr.h" #include "parser/parse_relation.h" #include "parser/parse_type.h" #include "parser/parse_utilcmd.h" +#include "parser/parser.h" #include "rewrite/rewriteManip.h" #include "utils/acl.h" #include "utils/builtins.h" diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c index ee77c38f86..1e7f93af53 100644 --- a/src/backend/parser/parser.c +++ b/src/backend/parser/parser.c @@ -14,15 +14,14 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/parser.c,v 1.78 2009/06/11 14:49:00 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/parser/parser.c,v 1.79 2009/07/12 17:12:34 tgl Exp $ * *------------------------------------------------------------------------- */ #include "postgres.h" -#include "parser/gramparse.h" /* required before parser/gram.h! */ -#include "parser/gram.h" +#include "parser/gramparse.h" #include "parser/parser.h" diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 6e18a41db1..1483627510 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -24,7 +24,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/scan.l,v 1.153 2009/05/05 21:09:23 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/parser/scan.l,v 1.154 2009/07/12 17:12:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -35,8 +35,6 @@ #include "parser/gramparse.h" #include "parser/keywords.h" -/* Not needed now that this file is compiled as part of gram.y */ -/* #include "parser/gram.h" */ #include "parser/scansup.h" #include "mb/pg_wchar.h" diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index f52bf8b5a1..6fdef41cc0 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.300 2009/06/11 14:49:04 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.301 2009/07/12 17:12:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -39,10 +39,10 @@ #include "nodes/nodeFuncs.h" #include "optimizer/clauses.h" #include "optimizer/tlist.h" -#include "parser/gramparse.h" #include "parser/keywords.h" #include "parser/parse_func.h" #include "parser/parse_oper.h" +#include "parser/parser.h" #include "parser/parsetree.h" #include "rewrite/rewriteHandler.h" #include "rewrite/rewriteManip.h" diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 210bd6ba6a..66fa7810ae 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut . * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.505 2009/06/11 14:49:06 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.506 2009/07/12 17:12:34 tgl Exp $ * *-------------------------------------------------------------------- */ @@ -44,10 +44,10 @@ #include "optimizer/geqo.h" #include "optimizer/paths.h" #include "optimizer/planmain.h" -#include "parser/gramparse.h" #include "parser/parse_expr.h" #include "parser/parse_relation.h" #include "parser/parse_type.h" +#include "parser/parser.h" #include "parser/scansup.h" #include "pgstat.h" #include "postmaster/autovacuum.h" diff --git a/src/include/parser/gramparse.h b/src/include/parser/gramparse.h index 86719855be..31290a270c 100644 --- a/src/include/parser/gramparse.h +++ b/src/include/parser/gramparse.h @@ -1,13 +1,17 @@ /*------------------------------------------------------------------------- * * gramparse.h - * Declarations for routines exported from lexer and parser files. + * Shared definitions for the "raw" parser (flex and bison phases only) + * + * NOTE: this file is only meant to be included in the core parsing files, + * ie, parser.c, gram.y, scan.l, and keywords.c. Definitions that are needed + * outside the core parser should be in parser.h. * * * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/parser/gramparse.h,v 1.44 2009/06/11 14:49:11 momjian Exp $ + * $PostgreSQL: pgsql/src/include/parser/gramparse.h,v 1.45 2009/07/12 17:12:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -27,17 +31,10 @@ */ #define YYLTYPE int -typedef enum -{ - BACKSLASH_QUOTE_OFF, - BACKSLASH_QUOTE_ON, - BACKSLASH_QUOTE_SAFE_ENCODING -} BackslashQuoteType; - -/* GUC variables in scan.l (every one of these is a bad idea :-() */ -extern int backslash_quote; -extern bool escape_string_warning; -extern bool standard_conforming_strings; +/* + * After defining YYLTYPE, it's safe to include gram.h. + */ +#include "parser/gram.h" /* from parser.c */ @@ -53,7 +50,5 @@ extern void base_yyerror(const char *message); /* from gram.y */ extern void parser_init(void); extern int base_yyparse(void); -extern List *SystemFuncName(char *name); -extern TypeName *SystemTypeName(char *name); #endif /* GRAMPARSE_H */ diff --git a/src/include/parser/parser.h b/src/include/parser/parser.h index cbe879302f..becc24a9a9 100644 --- a/src/include/parser/parser.h +++ b/src/include/parser/parser.h @@ -1,23 +1,43 @@ /*------------------------------------------------------------------------- * * parser.h - * Definitions for the "raw" parser (lex and yacc phases only) + * Definitions for the "raw" parser (flex and bison phases only) * + * This is the external API for the raw lexing/parsing functions. * * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/parser/parser.h,v 1.25 2009/04/19 21:50:08 tgl Exp $ + * $PostgreSQL: pgsql/src/include/parser/parser.h,v 1.26 2009/07/12 17:12:34 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef PARSER_H #define PARSER_H -#include "nodes/pg_list.h" +#include "nodes/parsenodes.h" + +typedef enum +{ + BACKSLASH_QUOTE_OFF, + BACKSLASH_QUOTE_ON, + BACKSLASH_QUOTE_SAFE_ENCODING +} BackslashQuoteType; + +/* GUC variables in scan.l (every one of these is a bad idea :-() */ +extern int backslash_quote; +extern bool escape_string_warning; +extern bool standard_conforming_strings; + + +/* Primary entry points for the raw parsing functions */ extern List *raw_parser(const char *str); extern char *pg_parse_string_token(const char *token); +/* Utility functions exported by gram.y (perhaps these should be elsewhere) */ +extern List *SystemFuncName(char *name); +extern TypeName *SystemTypeName(char *name); + #endif /* PARSER_H */ diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c index 659e797f2c..1b501d52f1 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.136 2009/06/11 14:49:14 momjian Exp $ + * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.137 2009/07/12 17:12:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -28,7 +28,6 @@ #include "catalog/pg_type.h" #include "funcapi.h" #include "nodes/makefuncs.h" -#include "parser/gramparse.h" #include "parser/parse_type.h" #include "tcop/tcopprot.h" #include "utils/array.h"