postgresql/src/backend/parser
Tom Lane f213131f20 Fix IS NULL and IS NOT NULL tests on row-valued expressions to conform to
the SQL spec, viz IS NULL is true if all the row's fields are null, IS NOT
NULL is true if all the row's fields are not null.  The former coding got
this right for a limited number of cases with IS NULL (ie, those where it
could disassemble a ROW constructor at parse time), but was entirely wrong
for IS NOT NULL.  Per report from Teodor.

I desisted from changing the behavior for arrays, since on closer inspection
it's not clear that there's any support for that in the SQL spec.  This
probably needs more consideration.
2006-09-28 20:51:43 +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 Fix problems with column name list of CREATE TABLE AS being applied to 2006-09-18 16:04:04 +00:00
gram.y Fix IS NULL and IS NOT NULL tests on row-valued expressions to conform to 2006-09-28 20:51:43 +00:00
keywords.c Add the ability to create indexes 'concurrently', that is, without 2006-08-25 04:06:58 +00:00
Makefile Re-introduce the yylex filter function formerly used to support UNION 2006-05-27 17:38:46 +00:00
parse_agg.c Aggregate functions now support multiple input arguments. I also took 2006-07-27 19:52:07 +00:00
parse_clause.c Cause '*' and 'foo.*' notations to mark the referenced RTE(s) as 2006-08-14 23:39:32 +00:00
parse_coerce.c Code review for bigint-LIMIT patch. Fix missed planner dependency, 2006-07-26 19:31:51 +00:00
parse_expr.c Tweak SPI_cursor_open to allow INSERT/UPDATE/DELETE RETURNING; this was 2006-08-12 20:05:56 +00:00
parse_func.c Aggregate functions now support multiple input arguments. I also took 2006-07-27 19:52:07 +00:00
parse_node.c Add support for multi-row VALUES clauses as part of INSERT statements 2006-08-02 01:59:48 +00:00
parse_oper.c Remove 576 references of include files that were not needed. 2006-07-14 14:52:27 +00:00
parse_relation.c Add support for multi-row VALUES clauses as part of INSERT statements 2006-08-02 01:59:48 +00:00
parse_target.c Cause '*' and 'foo.*' notations to mark the referenced RTE(s) as 2006-08-14 23:39:32 +00:00
parse_type.c Fix notice message from DROP FUNCTION IF EXISTS, and improve message 2006-09-25 15:17:34 +00:00
parser.c Fix some missing inclusions identified with new pgcheckdefines tool. 2006-07-15 03:35:21 +00:00
README cleanup 1998-08-23 14:43:46 +00:00
scan.l Fix bugs in plpgsql and ecpg caused by assuming that isspace() would only 2006-09-22 21:39:58 +00:00
scansup.c Fix bugs in plpgsql and ecpg caused by assuming that isspace() would only 2006-09-22 21:39:58 +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