pgsql: Improve parser so that we can show an error cursor position for - Mailing list pgsql-committers
From | tgl@postgresql.org (Tom Lane) |
---|---|
Subject | pgsql: Improve parser so that we can show an error cursor position for |
Date | |
Msg-id | 20060314224825.61BAB9DCCD5@postgresql.org Whole thread Raw |
List | 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)
pgsql-committers by date: