postgresql/src/backend/parser
Tom Lane d54ca56743 Install a lookaside cache to speed up repeated lookups of the same operator
by short-circuiting schema search path and ambiguous-operator resolution
computations.  Remarkably, this buys as much as 45% speedup of repetitive
simple queries that involve operators that are not an exact match to the
input datatypes.  It should be marginally faster even for exact-match
cases, though I've not had success in proving an improvement in benchmark
tests.  Per report from Guillame Smet and subsequent discussion.
2007-11-28 18:47:56 +00:00
..
.cvsignore Add .cvsignore file so cvs doesn't complain if you have lex/yacc 1999-03-21 02:43:58 +00:00
Makefile Separate parse-analysis for utility commands out of parser/analyze.c 2007-06-23 22:12:52 +00:00
README Separate parse-analysis for utility commands out of parser/analyze.c 2007-06-23 22:12:52 +00:00
analyze.c pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
gram.y Remove the hack in the grammar that "optimized away" DEFAULT NULL clauses. 2007-10-29 19:40:40 +00:00
keywords.c pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
parse_agg.c Fix up text concatenation so that it accepts all the reasonable cases that 2007-06-06 23:00:50 +00:00
parse_clause.c pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
parse_coerce.c Fix select_common_type() so that it can select a domain type, if all inputs 2007-11-26 16:46:51 +00:00
parse_expr.c Re-run pgindent with updated list of typedefs. (Updated README should 2007-11-15 22:25:18 +00:00
parse_func.c pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
parse_node.c Separate parse-analysis for utility commands out of parser/analyze.c 2007-06-23 22:12:52 +00:00
parse_oper.c Install a lookaside cache to speed up repeated lookups of the same operator 2007-11-28 18:47:56 +00:00
parse_relation.c Ensure that typmod decoration on a datatype name is validated in all cases, 2007-11-11 19:22:49 +00:00
parse_target.c pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
parse_type.c pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
parse_utilcmd.c pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
parser.c pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
scan.l Perform post-escaping encoding validity checks on SQL literals and COPY input 2007-09-12 20:49:27 +00:00
scansup.c Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00

README

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
keywords.c	turn keywords into specific tokens
gram.y		parse the tokens and fill query-type-specific structures
analyze.c	top level of parse analysis for optimizable queries
parse_clause.c	handle clauses like WHERE, ORDER BY, GROUP BY, ...
parse_coerce.c	handle coercing expressions to different types
parse_expr.c	handle expressions like col, col + 3, x = 3 or x = 4
parse_oper.c	handle operators in expressions
parse_agg.c	handle aggregates, like SUM(col1),  AVG(col2), ...
parse_func.c	handle functions, table.column and column identifiers
parse_node.c	create nodes for various structures
parse_target.c	handle the result list of the query
parse_relation.c support routines for tables and column handling
parse_type.c	support routines for type handling
parse_utilcmd.c	parse analysis for utility commands (done at execution time)