postgresql/src/backend/parser
Tom Lane af0161e527 Give a suitable HINT when an INSERT's data source is a RowExpr containing
the same number of columns expected by the insert.  This suggests that there
were extra parentheses that converted the intended column list into a row
expression.

Original patch by Marko Tiikkaja, rather heavily editorialized by me.
2010-09-18 18:37:01 +00:00
..
.cvsignore Remove all traces that suggest that a non-Bison yacc might be supported, and 2008-08-29 13:02:33 +00:00
Makefile Fix a few places where we needed -I. in CPPFLAGS to work properly in 2010-01-05 03:56:52 +00:00
README Implement parser hooks for processing ColumnRef and ParamRef nodes, as per my 2009-10-31 01:41:31 +00:00
analyze.c Give a suitable HINT when an INSERT's data source is a RowExpr containing 2010-09-18 18:37:01 +00:00
gram.y Add missing processing of OptTemp in CREATE IF NOT EXISTS variant 2010-08-20 14:55:05 +00:00
keywords.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
kwlookup.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
parse_agg.c Recognize functional dependency on primary keys. This allows a table's 2010-08-07 02:44:09 +00:00
parse_clause.c Allow ORDER BY/GROUP BY/etc items to match targetlist items regardless of 2010-07-18 19:37:49 +00:00
parse_coerce.c Fix IsBinaryCoercible to not confuse a cast using in/out functions 2010-03-04 09:39:53 +00:00
parse_cte.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
parse_expr.c Improved version of patch to protect pg_get_expr() against misuse: 2010-07-29 23:16:33 +00:00
parse_func.c In HEAD only, revert kluge solution for preventing misuse of pg_get_expr(). 2010-09-03 01:26:52 +00:00
parse_node.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parse_oper.c In HEAD only, revert kluge solution for preventing misuse of pg_get_expr(). 2010-09-03 01:26:52 +00:00
parse_param.c Revert patch to coerce 'unknown' type parameters in the backend. As Tom 2010-08-19 16:54:43 +00:00
parse_relation.c Fix stupid typo in refnameRangeTblEntry() --- mea maxima culpa. 2010-04-28 00:46:33 +00:00
parse_target.c pgindent run for 9.0 2010-02-26 02:01:40 +00:00
parse_type.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parse_utilcmd.c Fix failure of "ALTER TABLE t ADD COLUMN c serial" when done by non-owner. 2010-08-18 18:35:21 +00:00
parser.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
scan.l Change the default value of standard_conforming_strings to on. 2010-07-20 00:34:44 +00:00
scansup.c pgindent run for 9.0, second run 2010-07-06 19:19:02 +00:00

README

$PostgreSQL: pgsql/src/backend/parser/README,v 1.11 2009/10/31 01:41:31 tgl Exp $

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