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:

Previous
From: gsmet@pgfoundry.org (User Gsmet)
Date:
Subject: pgfouine - www: s/2005/2006 again
Next
From: tgl@postgresql.org (Tom Lane)
Date:
Subject: pgsql: Missed this file in previous commit :-(