Thread: pgsql/ oc/src/sgml/features.sgml rc/backend/ex ...
pgsql/ oc/src/sgml/features.sgml rc/backend/ex ...
From
thomas@postgresql.org (Thomas Lockhart)
Date:
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().