diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-05-28 16:04:02 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-05-28 16:04:02 +0000 |
| commit | fc8d970cbcdd6f025475822a4cf01dfda0873226 (patch) | |
| tree | ca697026dbada6a022dec471191aab5a0ba7eb20 /src/backend/tcop/pquery.c | |
| parent | e5f19598e07e9a0fc0a5c0f18bfac1fe92d21fc5 (diff) | |
| download | postgresql-fc8d970cbcdd6f025475822a4cf01dfda0873226.tar.gz | |
Replace functional-index facility with expressional indexes. Any column
of an index can now be a computed expression instead of a simple variable.
Restrictions on expressions are the same as for predicates (only immutable
functions, no sub-selects). This fixes problems recently introduced with
inlining SQL functions, because the inlining transformation is applied to
both expression trees so the planner can still match them up. Along the
way, improve efficiency of handling index predicates (both predicates and
index expressions are now cached by the relcache) and fix 7.3 oversight
that didn't record dependencies of predicate expressions.
Diffstat (limited to 'src/backend/tcop/pquery.c')
| -rw-r--r-- | src/backend/tcop/pquery.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c index 7a66a9095e..1cad3ec31a 100644 --- a/src/backend/tcop/pquery.c +++ b/src/backend/tcop/pquery.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.65 2003/05/27 17:49:46 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.66 2003/05/28 16:03:58 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -713,8 +713,9 @@ PortalRunUtility(Portal portal, Query *query, * without freezing a snapshot. By extension we allow SHOW * not to set a snapshot. The other stmts listed are just * efficiency hacks. Beware of listing anything that can - * modify the database --- if, say, it has to update a - * functional index, then it had better have a snapshot. + * modify the database --- if, say, it has to update an + * index with expressions that invoke user-defined functions, + * then it had better have a snapshot. */ if (! (IsA(utilityStmt, TransactionStmt) || IsA(utilityStmt, LockStmt) || |
