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