diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-09-01 20:42:46 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-09-01 20:42:46 +0000 |
| commit | b153c0920960a6059b67969469166fb29c0105d7 (patch) | |
| tree | 4e7100ecdca88746c369ae2a6a43468925f3194d /src/include/nodes | |
| parent | 9ac4299163247645c6e391f5f65735c6cb78ccb9 (diff) | |
Add a bunch of new error location reports to parse-analysis error messages.
There are still some weak spots around JOIN USING and relation alias lists,
but most errors reported within backend/parser/ now have locations.
Diffstat (limited to 'src/include/nodes')
| -rw-r--r-- | src/include/nodes/makefuncs.h | 4 | ||||
| -rw-r--r-- | src/include/nodes/parsenodes.h | 17 | ||||
| -rw-r--r-- | src/include/nodes/primnodes.h | 3 |
3 files changed, 14 insertions, 10 deletions
diff --git a/src/include/nodes/makefuncs.h b/src/include/nodes/makefuncs.h index d8ffa442247..d4e58cfe5f3 100644 --- a/src/include/nodes/makefuncs.h +++ b/src/include/nodes/makefuncs.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/makefuncs.h,v 1.62 2008/08/28 23:09:48 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/makefuncs.h,v 1.63 2008/09/01 20:42:45 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -56,7 +56,7 @@ extern Alias *makeAlias(const char *aliasname, List *colnames); extern RelabelType *makeRelabelType(Expr *arg, Oid rtype, int32 rtypmod, CoercionForm rformat); -extern RangeVar *makeRangeVar(char *schemaname, char *relname); +extern RangeVar *makeRangeVar(char *schemaname, char *relname, int location); extern TypeName *makeTypeName(char *typnam); extern TypeName *makeTypeNameFromNameList(List *names); diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 7eea3175896..2a4f6f1421a 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -13,7 +13,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.373 2008/08/30 01:39:14 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.374 2008/09/01 20:42:45 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -358,10 +358,11 @@ typedef struct ResTarget typedef struct SortBy { NodeTag type; - SortByDir sortby_dir; /* ASC/DESC/USING */ + Node *node; /* expression to sort on */ + SortByDir sortby_dir; /* ASC/DESC/USING/default */ SortByNulls sortby_nulls; /* NULLS FIRST/LAST */ List *useOp; /* name of op to use, if SORTBY_USING */ - Node *node; /* expression to sort on */ + int location; /* operator location, or -1 if none/unknown */ } SortBy; /* @@ -466,7 +467,9 @@ typedef struct DefElem * LockingClause - raw representation of FOR UPDATE/SHARE options * * Note: lockedRels == NIL means "all relations in query". Otherwise it - * is a list of String nodes giving relation eref names. + * is a list of RangeVar nodes. (We use RangeVar mainly because it carries + * a location field --- currently, parse analysis insists on unqualified + * names in LockingClause.) */ typedef struct LockingClause { @@ -1742,7 +1745,7 @@ typedef struct RuleStmt typedef struct NotifyStmt { NodeTag type; - RangeVar *relation; /* qualified name to notify */ + char *conditionname; /* condition name to notify */ } NotifyStmt; /* ---------------------- @@ -1752,7 +1755,7 @@ typedef struct NotifyStmt typedef struct ListenStmt { NodeTag type; - RangeVar *relation; /* name to listen on */ + char *conditionname; /* condition name to listen on */ } ListenStmt; /* ---------------------- @@ -1762,7 +1765,7 @@ typedef struct ListenStmt typedef struct UnlistenStmt { NodeTag type; - RangeVar *relation; /* name to unlisten on, or NULL for all */ + char *conditionname; /* name to unlisten on, or NULL for all */ } UnlistenStmt; /* ---------------------- diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h index e4de091a751..e144251dd1c 100644 --- a/src/include/nodes/primnodes.h +++ b/src/include/nodes/primnodes.h @@ -10,7 +10,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.140 2008/08/28 23:09:48 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.141 2008/09/01 20:42:45 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -76,6 +76,7 @@ typedef struct RangeVar * on children? */ bool istemp; /* is this a temp relation/sequence? */ Alias *alias; /* table alias & optional column aliases */ + int location; /* token location, or -1 if unknown */ } RangeVar; /* |
