2010-09-20 16:08:53 -04:00
|
|
|
src/backend/parser/README
|
2008-03-20 13:55:15 -04:00
|
|
|
|
|
|
|
|
Parser
|
2008-03-21 09:23:29 -04:00
|
|
|
======
|
2008-03-20 13:55:15 -04:00
|
|
|
|
1997-11-26 10:36:00 -05:00
|
|
|
This directory does more than tokenize and parse SQL queries. It also
|
2007-06-23 18:12:52 -04:00
|
|
|
creates Query structures for the various complex queries that are passed
|
1997-11-26 10:36:00 -05:00
|
|
|
to the optimizer and then executor.
|
|
|
|
|
|
|
|
|
|
parser.c things start here
|
|
|
|
|
scan.l break query into tokens
|
2007-06-23 18:12:52 -04:00
|
|
|
scansup.c handle escapes in input strings
|
2009-10-30 21:41:31 -04:00
|
|
|
gram.y parse the tokens and produce a "raw" parse tree
|
2007-06-23 18:12:52 -04:00
|
|
|
analyze.c top level of parse analysis for optimizable queries
|
2009-10-30 21:41:31 -04:00
|
|
|
parse_agg.c handle aggregates, like SUM(col1), AVG(col2), ...
|
1997-11-26 10:36:00 -05:00
|
|
|
parse_clause.c handle clauses like WHERE, ORDER BY, GROUP BY, ...
|
2008-04-08 21:00:46 -04:00
|
|
|
parse_coerce.c handle coercing expressions to different data types
|
2011-03-19 20:29:08 -04:00
|
|
|
parse_collate.c assign collation information in completed expressions
|
2009-10-30 21:41:31 -04:00
|
|
|
parse_cte.c handle Common Table Expressions (WITH clauses)
|
1997-11-26 10:36:00 -05:00
|
|
|
parse_expr.c handle expressions like col, col + 3, x = 3 or x = 4
|
2022-07-22 06:53:12 -04:00
|
|
|
parse_enr.c handle ephemeral named rels (trigger transition tables, ...)
|
1998-01-20 17:12:17 -05:00
|
|
|
parse_func.c handle functions, table.column and column identifiers
|
2025-09-07 21:07:14 -04:00
|
|
|
parse_jsontable.c handle JSON_TABLE
|
2022-07-22 06:53:12 -04:00
|
|
|
parse_merge.c handle MERGE
|
1997-11-26 10:36:00 -05:00
|
|
|
parse_node.c create nodes for various structures
|
2009-10-30 21:41:31 -04:00
|
|
|
parse_oper.c handle operators in expressions
|
|
|
|
|
parse_param.c handle Params (for the cases used in the core backend)
|
1997-11-26 10:36:00 -05:00
|
|
|
parse_relation.c support routines for tables and column handling
|
2009-10-30 21:41:31 -04:00
|
|
|
parse_target.c handle the result list of the query
|
2008-04-08 21:00:46 -04:00
|
|
|
parse_type.c support routines for data type handling
|
2007-06-23 18:12:52 -04:00
|
|
|
parse_utilcmd.c parse analysis for utility commands (done at execution time)
|
2016-03-23 20:22:08 -04:00
|
|
|
|
|
|
|
|
See also src/common/keywords.c, which contains the table of standard
|
|
|
|
|
keywords and the keyword lookup function. We separated that out because
|
|
|
|
|
various frontend code wants to use it too.
|