1src/backend/parser/README
2
3Parser
4======
5
6This directory does more than tokenize and parse SQL queries.  It also
7creates Query structures for the various complex queries that are passed
8to the optimizer and then executor.
9
10parser.c	things start here
11scan.l		break query into tokens
12scansup.c	handle escapes in input strings
13gram.y		parse the tokens and produce a "raw" parse tree
14analyze.c	top level of parse analysis for optimizable queries
15parse_agg.c	handle aggregates, like SUM(col1),  AVG(col2), ...
16parse_clause.c	handle clauses like WHERE, ORDER BY, GROUP BY, ...
17parse_coerce.c	handle coercing expressions to different data types
18parse_collate.c	assign collation information in completed expressions
19parse_cte.c	handle Common Table Expressions (WITH clauses)
20parse_expr.c	handle expressions like col, col + 3, x = 3 or x = 4
21parse_func.c	handle functions, table.column and column identifiers
22parse_node.c	create nodes for various structures
23parse_oper.c	handle operators in expressions
24parse_param.c	handle Params (for the cases used in the core backend)
25parse_relation.c support routines for tables and column handling
26parse_target.c	handle the result list of the query
27parse_type.c	support routines for data type handling
28parse_utilcmd.c	parse analysis for utility commands (done at execution time)
29
30See also src/common/keywords.c, which contains the table of standard
31keywords and the keyword lookup function.  We separated that out because
32various frontend code wants to use it too.
33