CVSROOT: /cvsroot
Module name: pgsql
Changes by: thomas@postgresql.org 02/07/04 11:24:11
Modified files:
doc/src/sgml : features.sgml
Log message:
Move INTERSECT DISTINCT to the supported category. Error in docs.
Modified files:
src/backend/executor: execQual.c
src/backend/nodes: outfuncs.c readfuncs.c
src/backend/optimizer/path: costsize.c
src/backend/optimizer/util: clauses.c
src/backend/parser: gram.y keywords.c parse_expr.c
src/backend/utils/adt: ruleutils.c
src/include/nodes: primnodes.h
Log message:
Implement the IS DISTINCT FROM operator per SQL99.
Reused the Expr node to hold DISTINCT which strongly resembles
the existing OP info. Define DISTINCT_EXPR which strongly resembles
the existing OPER_EXPR opType, but with handling for NULLs required
by SQL99.
We have explicit support for single-element DISTINCT comparisons
all the way through to the executor. But, multi-element DISTINCTs
are handled by expanding into a comparison tree in gram.y as is done for
other row comparisons. Per discussions, it might be desirable to move
this into one or more purpose-built nodes to be handled in the backend.
Define the optional ROW keyword and token per SQL99.
This allows single-element row constructs, which were formerly disallowed
due to shift/reduce conflicts with parenthesized a_expr clauses.
Define the SQL99 TREAT() function. Currently, use as a synonym for CAST().