postgresql/src/backend/parser
Tom Lane 21c8ee7946 Sync backend/parser/scan.l with bin/psql/psqlscan.l.
Make some minor formatting adjustments to make it easier to diff these
files and see that they indeed implement the same flex rules (at least
to the extent that we want them to be the same).

(Someday it'd be nice to make ecpg's pgc.l more easily diff'able too,
but today is not that day.)

Also run relevant parts of these files and psqlscanslash.l through
pgindent.

No actual behavioral changes here, just obsessive neatnik-ism.
2016-03-19 14:36:22 -04:00
..
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
Makefile Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l standalone. 2016-03-19 12:07:24 -04:00
README Revise collation derivation method and expression-tree representation. 2011-03-19 20:30:08 -04:00
analyze.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
check_keywords.pl Update copyright for 2016 2016-01-02 13:33:40 -05:00
gram.y Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l standalone. 2016-03-19 12:07:24 -04:00
keywords.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
kwlookup.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
parse_agg.c Refactor pull_var_clause's API to make it less tedious to extend. 2016-03-10 15:53:07 -05:00
parse_clause.c Refactor pull_var_clause's API to make it less tedious to extend. 2016-03-10 15:53:07 -05:00
parse_coerce.c Add defenses against putting expanded objects into Const nodes. 2016-01-21 12:56:08 -05:00
parse_collate.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
parse_cte.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
parse_expr.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
parse_func.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
parse_node.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
parse_oper.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
parse_param.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
parse_relation.c Remove new coupling between NAMEDATALEN and MAX_LEVENSHTEIN_STRLEN. 2016-01-22 11:53:06 -05:00
parse_target.c Fix typos. 2016-03-15 18:06:11 -04:00
parse_type.c Add defenses against putting expanded objects into Const nodes. 2016-01-21 12:56:08 -05:00
parse_utilcmd.c Move pg_constraint.h function declarations to new file pg_constraint_fn.h. 2016-02-11 15:51:28 -05:00
parser.c Update copyright for 2016 2016-01-02 13:33:40 -05:00
scan.l Sync backend/parser/scan.l with bin/psql/psqlscan.l. 2016-03-19 14:36:22 -04:00
scansup.c Introduce parse_ident() 2016-03-18 18:16:14 +03:00

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)