pgsql: Improve parser so that we can show an error cursor position for

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Improve parser so that we can show an error cursor position for
Date: 2006-03-14 22:48:25
Message-ID: 20060314224825.61BAB9DCCD5@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Improve parser so that we can show an error cursor position for errors
during parse analysis, not only errors detected in the flex/bison stages.
This is per my earlier proposal. This commit includes all the basic
infrastructure, but locations are only tracked and reported for errors
involving column references, function calls, and operators. More could
be done later but this seems like a good set to start with. I've also
moved the ReportSyntaxErrorPosition logic out of psql and into libpq,
which should make it available to more people --- even within psql this
is an improvement because warnings weren't handled by ReportSyntaxErrorPosition.

Modified Files:
--------------
pgsql/contrib/earthdistance/expected:
earthdistance.out (r1.8 -> r1.9)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/earthdistance/expected/earthdistance.out.diff?r1=1.8&r2=1.9)
pgsql/src/backend/access/common:
tupdesc.c (r1.114 -> r1.115)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/common/tupdesc.c.diff?r1=1.114&r2=1.115)
pgsql/src/backend/catalog:
pg_aggregate.c (r1.78 -> r1.79)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_aggregate.c.diff?r1=1.78&r2=1.79)
pg_operator.c (r1.95 -> r1.96)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_operator.c.diff?r1=1.95&r2=1.96)
pgsql/src/backend/commands:
aggregatecmds.c (r1.32 -> r1.33)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/aggregatecmds.c.diff?r1=1.32&r2=1.33)
comment.c (r1.87 -> r1.88)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/comment.c.diff?r1=1.87&r2=1.88)
define.c (r1.94 -> r1.95)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/define.c.diff?r1=1.94&r2=1.95)
functioncmds.c (r1.72 -> r1.73)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/functioncmds.c.diff?r1=1.72&r2=1.73)
opclasscmds.c (r1.42 -> r1.43)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/opclasscmds.c.diff?r1=1.42&r2=1.43)
operatorcmds.c (r1.28 -> r1.29)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/operatorcmds.c.diff?r1=1.28&r2=1.29)
schemacmds.c (r1.39 -> r1.40)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/schemacmds.c.diff?r1=1.39&r2=1.40)
sequence.c (r1.128 -> r1.129)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/sequence.c.diff?r1=1.128&r2=1.129)
tablecmds.c (r1.180 -> r1.181)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablecmds.c.diff?r1=1.180&r2=1.181)
typecmds.c (r1.88 -> r1.89)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/typecmds.c.diff?r1=1.88&r2=1.89)
view.c (r1.93 -> r1.94)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/view.c.diff?r1=1.93&r2=1.94)
pgsql/src/backend/executor:
spi.c (r1.148 -> r1.149)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/spi.c.diff?r1=1.148&r2=1.149)
pgsql/src/backend/nodes:
copyfuncs.c (r1.329 -> r1.330)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c.diff?r1=1.329&r2=1.330)
equalfuncs.c (r1.265 -> r1.266)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c.diff?r1=1.265&r2=1.266)
makefuncs.c (r1.49 -> r1.50)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/makefuncs.c.diff?r1=1.49&r2=1.50)
outfuncs.c (r1.269 -> r1.270)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c.diff?r1=1.269&r2=1.270)
readfuncs.c (r1.185 -> r1.186)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/readfuncs.c.diff?r1=1.185&r2=1.186)
pgsql/src/backend/optimizer/plan:
initsplan.c (r1.116 -> r1.117)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/initsplan.c.diff?r1=1.116&r2=1.117)
pgsql/src/backend/optimizer/util:
clauses.c (r1.209 -> r1.210)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.209&r2=1.210)
pgsql/src/backend/parser:
analyze.c (r1.330 -> r1.331)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/analyze.c.diff?r1=1.330&r2=1.331)
gram.y (r2.534 -> r2.535)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y.diff?r1=2.534&r2=2.535)
parse_clause.c (r1.147 -> r1.148)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_clause.c.diff?r1=1.147&r2=1.148)
parse_expr.c (r1.190 -> r1.191)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_expr.c.diff?r1=1.190&r2=1.191)
parse_func.c (r1.184 -> r1.185)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_func.c.diff?r1=1.184&r2=1.185)
parse_node.c (r1.91 -> r1.92)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_node.c.diff?r1=1.91&r2=1.92)
parse_oper.c (r1.85 -> r1.86)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_oper.c.diff?r1=1.85&r2=1.86)
parse_relation.c (r1.119 -> r1.120)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_relation.c.diff?r1=1.119&r2=1.120)
parse_target.c (r1.140 -> r1.141)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_target.c.diff?r1=1.140&r2=1.141)
parse_type.c (r1.78 -> r1.79)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_type.c.diff?r1=1.78&r2=1.79)
scan.l (r1.132 -> r1.133)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/scan.l.diff?r1=1.132&r2=1.133)
pgsql/src/backend/tcop:
postgres.c (r1.481 -> r1.482)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/postgres.c.diff?r1=1.481&r2=1.482)
pgsql/src/backend/utils/adt:
ruleutils.c (r1.215 -> r1.216)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c.diff?r1=1.215&r2=1.216)
pgsql/src/bin/psql:
common.c (r1.115 -> r1.116)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/bin/psql/common.c.diff?r1=1.115&r2=1.116)
pgsql/src/include/nodes:
makefuncs.h (r1.54 -> r1.55)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/makefuncs.h.diff?r1=1.54&r2=1.55)
parsenodes.h (r1.303 -> r1.304)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h.diff?r1=1.303&r2=1.304)
pgsql/src/include/parser:
analyze.h (r1.31 -> r1.32)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/analyze.h.diff?r1=1.31&r2=1.32)
gramparse.h (r1.33 -> r1.34)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/gramparse.h.diff?r1=1.33&r2=1.34)
parse_func.h (r1.54 -> r1.55)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_func.h.diff?r1=1.54&r2=1.55)
parse_node.h (r1.47 -> r1.48)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_node.h.diff?r1=1.47&r2=1.48)
parse_oper.h (r1.38 -> r1.39)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_oper.h.diff?r1=1.38&r2=1.39)
parse_relation.h (r1.52 -> r1.53)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_relation.h.diff?r1=1.52&r2=1.53)
parse_type.h (r1.31 -> r1.32)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_type.h.diff?r1=1.31&r2=1.32)
pgsql/src/include/tcop:
tcopprot.h (r1.80 -> r1.81)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/tcop/tcopprot.h.diff?r1=1.80&r2=1.81)
pgsql/src/interfaces/libpq:
fe-connect.c (r1.327 -> r1.328)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/libpq/fe-connect.c.diff?r1=1.327&r2=1.328)
fe-exec.c (r1.181 -> r1.182)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/libpq/fe-exec.c.diff?r1=1.181&r2=1.182)
fe-protocol3.c (r1.25 -> r1.26)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/libpq/fe-protocol3.c.diff?r1=1.25&r2=1.26)
libpq-int.h (r1.111 -> r1.112)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/libpq/libpq-int.h.diff?r1=1.111&r2=1.112)
pgsql/src/pl/plperl/expected:
plperl_elog.out (r1.3 -> r1.4)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plperl/expected/plperl_elog.out.diff?r1=1.3&r2=1.4)
pgsql/src/pl/plperl:
plperl.c (r1.105 -> r1.106)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plperl/plperl.c.diff?r1=1.105&r2=1.106)
pgsql/src/pl/plpgsql/src:
pl_comp.c (r1.100 -> r1.101)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/pl_comp.c.diff?r1=1.100&r2=1.101)
pgsql/src/pl/plpython:
plpython.c (r1.75 -> r1.76)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/plpython.c.diff?r1=1.75&r2=1.76)
pgsql/src/pl/tcl:
pltcl.c (r1.100 -> r1.101)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/tcl/pltcl.c.diff?r1=1.100&r2=1.101)
pgsql/src/test/regress/expected:
alter_table.out (r1.92 -> r1.93)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/alter_table.out.diff?r1=1.92&r2=1.93)
arrays.out (r1.28 -> r1.29)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/arrays.out.diff?r1=1.28&r2=1.29)
errors.out (r1.50 -> r1.51)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/errors.out.diff?r1=1.50&r2=1.51)
geometry.out (r1.21 -> r1.22)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/geometry.out.diff?r1=1.21&r2=1.22)
geometry_1.out (r1.6 -> r1.7)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/geometry_1.out.diff?r1=1.6&r2=1.7)
geometry_2.out (r1.3 -> r1.4)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/geometry_2.out.diff?r1=1.3&r2=1.4)
horology.out (r1.58 -> r1.59)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/horology.out.diff?r1=1.58&r2=1.59)
join.out (r1.26 -> r1.27)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/join.out.diff?r1=1.26&r2=1.27)
join_1.out (r1.7 -> r1.8)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/join_1.out.diff?r1=1.7&r2=1.8)
plpgsql.out (r1.43 -> r1.44)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/plpgsql.out.diff?r1=1.43&r2=1.44)
prepare.out (r1.10 -> r1.11)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/prepare.out.diff?r1=1.10&r2=1.11)
rowtypes.out (r1.6 -> r1.7)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/rowtypes.out.diff?r1=1.6&r2=1.7)
select_implicit.out (r1.14 -> r1.15)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/select_implicit.out.diff?r1=1.14&r2=1.15)
select_implicit_1.out (r1.6 -> r1.7)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/select_implicit_1.out.diff?r1=1.6&r2=1.7)
select_implicit_2.out (r1.3 -> r1.4)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/select_implicit_2.out.diff?r1=1.3&r2=1.4)
strings.out (r1.27 -> r1.28)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/strings.out.diff?r1=1.27&r2=1.28)
time.out (r1.10 -> r1.11)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/time.out.diff?r1=1.10&r2=1.11)
timetz.out (r1.5 -> r1.6)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/timetz.out.diff?r1=1.5&r2=1.6)
transactions.out (r1.13 -> r1.14)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/transactions.out.diff?r1=1.13&r2=1.14)
union.out (r1.10 -> r1.11)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/union.out.diff?r1=1.10&r2=1.11)
update.out (r1.2 -> r1.3)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/update.out.diff?r1=1.2&r2=1.3)
without_oid.out (r1.6 -> r1.7)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/without_oid.out.diff?r1=1.6&r2=1.7)
pgsql/src/test/regress/output:
constraints.source (r1.41 -> r1.42)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/output/constraints.source.diff?r1=1.41&r2=1.42)
create_function_1.source (r1.28 -> r1.29)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/output/create_function_1.source.diff?r1=1.28&r2=1.29)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2006-03-14 22:50:47 pgsql: Missed this file in previous commit :-(
Previous Message User Gsmet 2006-03-14 21:27:34 pgfouine - www: s/2005/2006 again