1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-07 19:06:32 +03:00

The attached patch fixes some spelling mistakes, makes the

comments on one of the optimizer functions a lot more
clear, adds a summary of the recent KSQO discussion to the
comments in the code, adds regression tests for the bug with
sequence state Tom fixed recently and another reg. test, and
removes some PostQuel legacy stuff: ExecAppend -> ExecInsert,
ExecRetrieve -> ExecSelect, etc. This was changed because the
elog() messages from this routine are user-visible, so we
should be using the SQL terms.

Neil Conway
This commit is contained in:
Bruce Momjian
2002-06-25 17:27:20 +00:00
parent 8a9462867a
commit ed275aea42
13 changed files with 125 additions and 98 deletions

View File

@@ -1,7 +1,7 @@
/*-------------------------------------------------------------------------
*
* prepkeyset.c
* Special preperation for keyset queries.
* Special preparation for keyset queries (KSQO).
*
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
@@ -14,12 +14,6 @@
#include "postgres.h"
#include "optimizer/planmain.h"
/*
* Node_Copy
* a macro to simplify calling of copyObject on the specified field
*/
#define Node_Copy(from, newnode, field) newnode->field = copyObject(from->field)
bool _use_keyset_query_optimizer = FALSE;
#ifdef ENABLE_KEY_SET_QUERY
@@ -55,13 +49,20 @@ static int TotalExpr;
* a HAVING, or a GROUP BY. It must be a single table and have KSQO
* set to 'on'.
*
* The primary use of this transformation is to avoid the exponrntial
* The primary use of this transformation is to avoid the exponential
* memory consumption of cnfify() and to make use of index access
* methods.
*
* daveh@insightdist.com 1998-08-31
*
* May want to also prune out duplicate terms.
*
* XXX: this code is currently not compiled because it has not been
* updated to work with the re-implementation of UNION/INTERSECT/EXCEPT
* in PostgreSQL 7.1. However, it is of questionable value in any
* case, because it changes the semantics of the original query:
* UNION will add an implicit SELECT DISTINCT, which might change
* the results that are returned.
**********************************************************************/
void
transformKeySetQuery(Query *origNode)