mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-13 01:23:22 +02:00
fbd26d6984
took some rejiggering of typename and ACL parsing, as well as moving parse_analyze call out of parser(). Restructure postgres.c processing so that parse analysis and rewrite are skipped when in abort-transaction state. Only COMMIT and ABORT statements will be processed beyond the raw parser() phase. This addresses problem of parser failing with database access errors while in aborted state (see pghackers discussions around 7/28/00). Also fix some bugs with COMMIT/ABORT statements appearing in the middle of a single query input string. Function, operator, and aggregate arguments/results can now use full TypeName production, in particular foo[] for array types. DROP OPERATOR and COMMENT ON OPERATOR were broken for unary operators. Allow CREATE AGGREGATE to accept unquoted numeric constants for initcond. |
||
---|---|---|
.. | ||
.cvsignore | ||
analyze.c | ||
gram.y | ||
keywords.c | ||
Makefile | ||
parse_agg.c | ||
parse_clause.c | ||
parse_coerce.c | ||
parse_expr.c | ||
parse_func.c | ||
parse_node.c | ||
parse_oper.c | ||
parse_relation.c | ||
parse_target.c | ||
parse_type.c | ||
parser.c | ||
README | ||
scan.l | ||
scansup.c |
This directory does more than tokenize and parse SQL queries. It also creates Query structures for the various complex queries that is passed to the optimizer and then executor. parser.c things start here scan.l break query into tokens scansup.c handle escapes in input keywords.c turn keywords into specific tokens gram.y parse the tokens and fill query-type-specific structures analyze.c handle post-parse processing for each query type parse_clause.c handle clauses like WHERE, ORDER BY, GROUP BY, ... parse_coerce.c used for coercing expressions of different types parse_expr.c handle expressions like col, col + 3, x = 3 or x = 4 parse_oper.c handle operations in expressions parse_agg.c handle aggregates, like SUM(col1), AVG(col2), ... parse_func.c handle functions, table.column and column identifiers parse_node.c create nodes for various structures parse_target.c handle the result list of the query parse_relation.c support routines for tables and column handling parse_type.c support routines for type handling