postgresql/src/backend/parser
Tom Lane 5c462baebc transformCreateStmt should put Ident nodes, not ColumnDef nodes, into
keys lists of Constraint nodes.  This eliminates a type pun that would
probably have caused trouble someday, and eliminates circular references
in the parsetree that were causing trouble now.
Also, change parser's uses of strcasecmp() to strcmp().  Since scan.l
has downcased any unquoted identifier, it is never correct to check an
identifier with strcasecmp() in the parser.  For example,
	CREATE TABLE FOO (f1 int, UNIQUE("F1"));
was accepted, which is wrong, and xlateSqlFunc did more than it should:
select datetime();
ERROR:  Function 'timestamp()' does not exist
(good)
select "DateTime"();
ERROR:  Function 'timestamp()' does not exist
(bad)
2000-03-24 23:34:19 +00:00
..
.cvsignore Add .cvsignore file so cvs doesn't complain if you have lex/yacc 1999-03-21 02:43:58 +00:00
analyze.c transformCreateStmt should put Ident nodes, not ColumnDef nodes, into 2000-03-24 23:34:19 +00:00
gram.y transformCreateStmt should put Ident nodes, not ColumnDef nodes, into 2000-03-24 23:34:19 +00:00
keywords.c Add syntax for BIT() and BIT VARYING(), but no underlying implementation 2000-03-21 06:00:41 +00:00
Makefile Removed MBFLAGS from makefiles since it's now done in include/config.h. 2000-01-19 02:59:03 +00:00
parse_agg.c Fix a bunch of minor portability problems and maybe-bugs revealed by 2000-03-17 02:36:41 +00:00
parse_clause.c Remove no-longer-necessary restriction against uplevel correlation vars 2000-03-23 07:38:30 +00:00
parse_coerce.c Hack parse_coerce so it won't try to constant-fold the dummy Const 2000-03-23 07:36:03 +00:00
parse_expr.c transformExpr() did the Wrong Thing if applied to a SubLink node that 2000-03-19 07:13:58 +00:00
parse_func.c Remove no-longer-necessary restriction against uplevel correlation vars 2000-03-23 07:38:30 +00:00
parse_node.c Make make_const() check the size and precision of a T_Float Value, 2000-02-24 01:59:17 +00:00
parse_oper.c Another go-round with resolution of ambiguous functions and operators. 2000-03-19 00:19:39 +00:00
parse_relation.c Remove no-longer-necessary restriction against uplevel correlation vars 2000-03-23 07:38:30 +00:00
parse_target.c Implement column aliases on views "CREATE VIEW name (collist)". 2000-03-14 23:06:59 +00:00
parse_type.c Add: 2000-01-26 05:58:53 +00:00
parser.c Add safety check on expression nesting depth. Default value is set by 2000-03-17 05:29:07 +00:00
README cleanup 1998-08-23 14:43:46 +00:00
scan.l Modify lexing of multi-char operators per pghackers discussion around 2000-03-18 18:03:12 +00:00
scansup.c Add: 2000-01-26 05:58:53 +00:00

This directory does more than tokenize and parse SQL queries.  It also
creates Query structures for the various complex queries that is passed
to the optimizer and then executor.

parser.c	things start here
scan.l		break query into tokens
scansup.c	handle escapes in input
keywords.c	turn keywords into specific tokens
gram.y		parse the tokens and fill query-type-specific structures
analyze.c	handle post-parse processing for each query type
parse_clause.c	handle clauses like WHERE, ORDER BY, GROUP BY, ...
parse_coerce.c	used for coercing expressions of different types
parse_expr.c	handle expressions like col, col + 3, x = 3 or x = 4
parse_oper.c	handle operations 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