pgsql: Extend the parser location infrastructure to include a location - Mailing list pgsql-committers

From tgl@postgresql.org (Tom Lane)
Subject pgsql: Extend the parser location infrastructure to include a location
Date
Msg-id 20080828230948.E72F0755315@cvs.postgresql.org
Whole thread Raw
List pgsql-committers
Log Message:
-----------
Extend the parser location infrastructure to include a location field in
most node types used in expression trees (both before and after parse
analysis).  This allows us to place an error cursor in many situations
where we formerly could not, because the information wasn't available
beyond the very first level of parse analysis.  There's a fair amount
of work still to be done to persuade individual ereport() calls to actually
include an error location, but this gets the initdb-forcing part of the
work out of the way; and the situation is already markedly better than
before for complaints about unimplementable implicit casts, such as
CASE and UNION constructs with incompatible alternative data types.
Per my proposal of a few days ago.

Modified Files:
--------------
    pgsql/src/backend/catalog:
        heap.c (r1.338 -> r1.339)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/heap.c?r1=1.338&r2=1.339)
    pgsql/src/backend/commands:
        prepare.c (r1.90 -> r1.91)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/prepare.c?r1=1.90&r2=1.91)
        tablecmds.c (r1.263 -> r1.264)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablecmds.c?r1=1.263&r2=1.264)
        typecmds.c (r1.122 -> r1.123)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/typecmds.c?r1=1.122&r2=1.123)
    pgsql/src/backend/nodes:
        copyfuncs.c (r1.401 -> r1.402)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c?r1=1.401&r2=1.402)
        equalfuncs.c (r1.328 -> r1.329)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c?r1=1.328&r2=1.329)
        makefuncs.c (r1.58 -> r1.59)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/makefuncs.c?r1=1.58&r2=1.59)
        nodeFuncs.c (r1.30 -> r1.31)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/nodeFuncs.c?r1=1.30&r2=1.31)
        outfuncs.c (r1.335 -> r1.336)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c?r1=1.335&r2=1.336)
        readfuncs.c (r1.212 -> r1.213)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/readfuncs.c?r1=1.212&r2=1.213)
    pgsql/src/backend/optimizer/plan:
        createplan.c (r1.246 -> r1.247)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/createplan.c?r1=1.246&r2=1.247)
        subselect.c (r1.139 -> r1.140)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/subselect.c?r1=1.139&r2=1.140)
    pgsql/src/backend/optimizer/prep:
        prepqual.c (r1.58 -> r1.59)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepqual.c?r1=1.58&r2=1.59)
        preptlist.c (r1.90 -> r1.91)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/preptlist.c?r1=1.90&r2=1.91)
        prepunion.c (r1.154 -> r1.155)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepunion.c?r1=1.154&r2=1.155)
    pgsql/src/backend/optimizer/util:
        clauses.c (r1.265 -> r1.266)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c?r1=1.265&r2=1.266)
        var.c (r1.77 -> r1.78)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/var.c?r1=1.77&r2=1.78)
    pgsql/src/backend/parser:
        analyze.c (r1.377 -> r1.378)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/analyze.c?r1=1.377&r2=1.378)
        gram.y (r2.618 -> r2.619)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y?r1=2.618&r2=2.619)
        parse_agg.c (r1.81 -> r1.82)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_agg.c?r1=1.81&r2=1.82)
        parse_clause.c (r1.176 -> r1.177)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_clause.c?r1=1.176&r2=1.177)
        parse_coerce.c (r2.164 -> r2.165)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_coerce.c?r1=2.164&r2=2.165)
        parse_expr.c (r1.231 -> r1.232)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_expr.c?r1=1.231&r2=1.232)
        parse_func.c (r1.205 -> r1.206)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_func.c?r1=1.205&r2=1.206)
        parse_node.c (r1.101 -> r1.102)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_node.c?r1=1.101&r2=1.102)
        parse_oper.c (r1.104 -> r1.105)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_oper.c?r1=1.104&r2=1.105)
        parse_relation.c (r1.133 -> r1.134)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_relation.c?r1=1.133&r2=1.134)
        parse_target.c (r1.161 -> r1.162)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_target.c?r1=1.161&r2=1.162)
        parse_utilcmd.c (r2.15 -> r2.16)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_utilcmd.c?r1=2.15&r2=2.16)
    pgsql/src/backend/rewrite:
        rewriteHandler.c (r1.178 -> r1.179)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteHandler.c?r1=1.178&r2=1.179)
        rewriteManip.c (r1.111 -> r1.112)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteManip.c?r1=1.111&r2=1.112)
    pgsql/src/include/catalog:
        catversion.h (r1.480 -> r1.481)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h?r1=1.480&r2=1.481)
    pgsql/src/include/nodes:
        makefuncs.h (r1.61 -> r1.62)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/makefuncs.h?r1=1.61&r2=1.62)
        nodeFuncs.h (r1.27 -> r1.28)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/nodeFuncs.h?r1=1.27&r2=1.28)
        parsenodes.h (r1.371 -> r1.372)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h?r1=1.371&r2=1.372)
        primnodes.h (r1.139 -> r1.140)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/primnodes.h?r1=1.139&r2=1.140)
    pgsql/src/include/parser:
        parse_coerce.h (r1.76 -> r1.77)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_coerce.h?r1=1.76&r2=1.77)
        parse_node.h (r1.54 -> r1.55)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_node.h?r1=1.54&r2=1.55)
    pgsql/src/test/regress/expected:
        arrays.out (r1.38 -> r1.39)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/arrays.out?r1=1.38&r2=1.39)
        select_implicit.out (r1.15 -> r1.16)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/select_implicit.out?r1=1.15&r2=1.16)
        select_implicit_1.out (r1.7 -> r1.8)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/select_implicit_1.out?r1=1.7&r2=1.8)
        select_implicit_2.out (r1.4 -> r1.5)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/select_implicit_2.out?r1=1.4&r2=1.5)
        xml.out (r1.20 -> r1.21)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/xml.out?r1=1.20&r2=1.21)
        xml_1.out (r1.21 -> r1.22)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/xml_1.out?r1=1.21&r2=1.22)

pgsql-committers by date:

Previous
From: dpage@pgfoundry.org (Dave Page)
Date:
Subject: stackbuilder - wizard: Use the project binary and osurce directories,
Next
From: petere@postgresql.org (Peter Eisentraut)
Date:
Subject: pgsql: Remove all traces that suggest that a non-Bison yacc might be