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
Tom Lane e07ebd4b6e Catch stack overflow when recursing in transformFromClauseItem(). 3 years ago
..
.gitignore
Makefile JSON_TABLE 4 years ago
README Update src/backend/parser/README 3 years ago
analyze.c Make subquery aliases optional in the FROM clause. 3 years ago
check_keywords.pl Update copyright for 2022 4 years ago
gram.y Fix a few issues with REINDEX grammar 3 years ago
parse_agg.c Add support for MERGE SQL command 4 years ago
parse_clause.c Catch stack overflow when recursing in transformFromClauseItem(). 3 years ago
parse_coerce.c Fix failure to validate the result of select_common_type(). 4 years ago
parse_collate.c Pre-beta mechanical code beautification. 4 years ago
parse_cte.c Reject MERGE in CTEs and COPY 3 years ago
parse_enr.c Update copyright for 2022 4 years ago
parse_expr.c Improve performance of ORDER BY / DISTINCT aggregates 3 years ago
parse_func.c Improve performance of ORDER BY / DISTINCT aggregates 3 years ago
parse_jsontable.c Tweak detail and hint messages to be consistent with project policy 3 years ago
parse_merge.c Change mechanism to set up source targetlist in MERGE 4 years ago
parse_node.c In transformRowExpr(), check for too many columns in the row. 3 years ago
parse_oper.c Update copyright for 2022 4 years ago
parse_param.c Pre-beta mechanical code beautification. 4 years ago
parse_relation.c Check maximum number of columns in function RTEs, too. 3 years ago
parse_target.c Replace many MemSet calls with struct initialization 3 years ago
parse_type.c Add construct_array_builtin, deconstruct_array_builtin 4 years ago
parse_utilcmd.c In extensions, don't replace objects not belonging to the extension. 3 years ago
parser.c SQL/JSON constructors 4 years ago
scan.l Reject trailing junk after numeric literals 4 years ago
scansup.c Update copyright for 2022 4 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
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_enr.c handle ephemeral named rels (trigger transition tables, ...)
parse_func.c handle functions, table.column and column identifiers
parse_jsontable.c handle JSON_TABLE
parse_merge.c handle MERGE
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)

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.