mirror of
https://github.com/postgres/postgres.git
synced 2026-03-10 18:28:35 -04:00
discussion (including making def_arg allow reserved words), add missed opt_definition for UNIQUE case. Put the reloptions support code in a less random place (I chose to make a new file access/common/reloptions.c). Eliminate header inclusion creep. Make the index options functions safely user-callable (seems like client apps might like to be able to test validity of options before trying to make an index). Reduce overhead for normal case with no options by allowing rd_options to be NULL. Fix some unmaintainably klugy code, including getting rid of Natts_pg_class_fixed at long last. Some stylistic cleanup too, and pay attention to keeping comments in sync with code. Documentation still needs work, though I did fix the omissions in catalogs.sgml and indexam.sgml. |
||
|---|---|---|
| .. | ||
| .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