postgresql/src/backend/parser
Bruce Momjian d4f626507c This is mostly the same as an earlier patch I
didn't hear anything about, but which would
have broken with the function manager changes
anyway.

Well, this patch checks that a unique constraint
of some form (unique or pk) is on the referenced
columns of an FK constraint and that the columns
in the referencing table exist at creation time.
The former is to move closer to SQL compatibility
and the latter is in answer to a bug report.
I also added a basic check of this functionality
to the alter table and foreign key regression
tests.

Stephan Szabo
sszabo@bigpanda.com
2000-08-29 04:20:47 +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 New configure test for flex, which recognizes only flex but does so in all 2000-08-28 11:53:23 +00:00
README cleanup 1998-08-23 14:43:46 +00:00
analyze.c This is mostly the same as an earlier patch I 2000-08-29 04:20:47 +00:00
gram.y Rename BITSPERBYTE to BITS_PER_BYTE to avoid conflict with <values.h> 2000-08-26 21:53:44 +00:00
keywords.c Implement LIKE/ESCAPE. Change parser to use like()/notlike() 2000-08-06 18:06:44 +00:00
parse_agg.c Revise aggregate functions per earlier discussions in pghackers. 2000-07-17 03:05:41 +00:00
parse_clause.c Clean up #include's. 2000-06-15 03:33:12 +00:00
parse_coerce.c Type lztext is toast. 2000-07-30 22:14:09 +00:00
parse_expr.c Remove 'func_tlist' from Func expression nodes, likewise 'param_tlist' 2000-08-08 15:43:12 +00:00
parse_func.c SQL-language functions are now callable in ordinary fmgr contexts ... 2000-08-24 03:29:15 +00:00
parse_node.c SQL-language functions are now callable in ordinary fmgr contexts ... 2000-08-24 03:29:15 +00:00
parse_oper.c First round of changes for new fmgr interface. fmgr itself and the 2000-05-28 17:56:29 +00:00
parse_relation.c Remove 'func_tlist' from Func expression nodes, likewise 'param_tlist' 2000-08-08 15:43:12 +00:00
parse_target.c Remove 'func_tlist' from Func expression nodes, likewise 'param_tlist' 2000-08-08 15:43:12 +00:00
parse_type.c Mark functions as static and ifdef NOT_USED as appropriate. 2000-06-08 22:38:00 +00:00
parser.c Ye-old pgindent run. Same 4-space tabs. 2000-04-12 17:17:23 +00:00
scan.l Make scanner multibyte aware. Currently it may produce an incorrect 2000-08-22 13:01:20 +00:00
scansup.c Ye-old pgindent run. Same 4-space tabs. 2000-04-12 17:17:23 +00:00

README

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