You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
postgres/src/backend/parser
Joe Conway 43797ed42a Create new ParseExprKind for use by policy expressions. 11 years ago
..
.gitignore
Makefile Refactor flex and bison make rules 13 years ago
README Revise collation derivation method and expression-tree representation. 15 years ago
analyze.c Fix bug around assignment expressions containing indirections. 11 years ago
check_keywords.pl Update copyright for 2015 11 years ago
gram.y Redesign tablesample method API, and do extensive code review. 11 years ago
keywords.c Update copyright for 2015 11 years ago
kwlookup.c Update copyright for 2015 11 years ago
parse_agg.c Create new ParseExprKind for use by policy expressions. 11 years ago
parse_clause.c Fix flattening of nested grouping sets. 11 years ago
parse_coerce.c Rename coerce_type() local variable. 11 years ago
parse_collate.c Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 11 years ago
parse_cte.c Update copyright for 2015 11 years ago
parse_expr.c Create new ParseExprKind for use by policy expressions. 11 years ago
parse_func.c Redesign tablesample method API, and do extensive code review. 11 years ago
parse_node.c Update copyright for 2015 11 years ago
parse_oper.c Setup cursor position for schema-qualified elements 11 years ago
parse_param.c Update copyright for 2015 11 years ago
parse_relation.c pgindent run for 9.5 11 years ago
parse_target.c Support GROUPING SETS, CUBE and ROLLUP. 11 years ago
parse_type.c pgindent run for 9.5 11 years ago
parse_utilcmd.c pgindent run for 9.5 11 years ago
parser.c Make operator precedence follow the SQL standard more closely. 11 years ago
scan.l Make operator precedence follow the SQL standard more closely. 11 years ago
scansup.c Update copyright for 2015 11 years ago

README

src/backend/parser/README

Parser
======

This directory does more than tokenize and parse SQL queries. It also
creates Query structures for the various complex queries that are passed
to the optimizer and then executor.

parser.c things start here
scan.l break query into tokens
scansup.c handle escapes in input strings
kwlookup.c turn keywords into specific tokens
keywords.c table of standard keywords (passed to kwlookup.c)
gram.y parse the tokens and produce a "raw" parse tree
analyze.c top level of parse analysis for optimizable queries
parse_agg.c handle aggregates, like SUM(col1), AVG(col2), ...
parse_clause.c handle clauses like WHERE, ORDER BY, GROUP BY, ...
parse_coerce.c handle coercing expressions to different data types
parse_collate.c assign collation information in completed expressions
parse_cte.c handle Common Table Expressions (WITH clauses)
parse_expr.c handle expressions like col, col + 3, x = 3 or x = 4
parse_func.c handle functions, table.column and column identifiers
parse_node.c create nodes for various structures
parse_oper.c handle operators in expressions
parse_param.c handle Params (for the cases used in the core backend)
parse_relation.c support routines for tables and column handling
parse_target.c handle the result list of the query
parse_type.c support routines for data type handling
parse_utilcmd.c parse analysis for utility commands (done at execution time)