postgresql/src/backend/parser
Tom Lane a676386b58 Remove operator_precedence_warning.
This GUC was always intended as a temporary solution to help with
finding 9.4-to-9.5 migration issues.  Now that all pre-9.5 branches
are out of support, and 9.5 will be too before v14 is released,
it seems like it's okay to drop it.  Doing so allows removal of
several hundred lines of poorly-tested code in parse_expr.c,
which have been a fertile source of bugs when people did use this.

Discussion: https://postgr.es/m/2234320.1607117945@sss.pgh.pa.us
2020-12-08 16:29:52 -05:00
..
.gitignore
analyze.c Fix cases of discarding result from list API functions 2020-11-11 08:03:51 +01:00
check_keywords.pl Standardize order of use strict and use warnings in Perl code 2020-09-21 17:04:36 +02:00
gram.y Remove operator_precedence_warning. 2020-12-08 16:29:52 -05:00
Makefile
parse_agg.c Add for_each_from, to simplify loops starting from non-first list cells. 2020-09-28 20:33:13 -04:00
parse_clause.c Improve our ability to regurgitate SQL-syntax function calls. 2020-11-04 12:34:50 -05:00
parse_coerce.c Add select_common_typmod() 2020-10-27 18:10:42 +01:00
parse_collate.c
parse_cte.c
parse_enr.c
parse_expr.c Remove operator_precedence_warning. 2020-12-08 16:29:52 -05:00
parse_func.c Move per-agg and per-trans duplicate finding to the planner. 2020-11-24 10:45:00 +02:00
parse_node.c
parse_oper.c
parse_param.c Make procedure OUT parameters work with JDBC 2020-10-27 09:01:54 +01:00
parse_relation.c Improve the error message for an inappropriate column definition list. 2020-09-22 10:49:11 -04:00
parse_target.c Remove operator_precedence_warning. 2020-12-08 16:29:52 -05:00
parse_type.c
parse_utilcmd.c Ensure that expandTableLikeClause() re-examines the same table. 2020-12-01 14:02:27 -05:00
parser.c
README
scan.l
scansup.c Make postgres.bki use the same literal-string syntax as postgresql.conf. 2020-10-04 16:09:55 -04:00

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_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)

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.