mirror of
https://github.com/postgres/postgres.git
synced 2025-11-12 05:01:15 +03:00
SQL-language functions are now callable in ordinary fmgr contexts ...
for example, an SQL function can be used in a functional index. (I make no promises about speed, but it'll work ;-).) Clean up and simplify handling of functions returning sets.
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/Attic/execFlatten.c,v 1.12 2000/01/26 05:56:21 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/Attic/execFlatten.c,v 1.13 2000/08/24 03:29:03 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -36,11 +36,12 @@ static bool FjoinBumpOuterNodes(TargetEntry *tlist, ExprContext *econtext,
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Datum
|
||||
ExecEvalIter(Iter *iterNode,
|
||||
ExprContext *econtext,
|
||||
bool *resultIsNull,
|
||||
bool *iterIsDone)
|
||||
bool *isNull,
|
||||
ExprDoneCond *isDone)
|
||||
{
|
||||
Node *expression;
|
||||
|
||||
@@ -52,14 +53,14 @@ ExecEvalIter(Iter *iterNode,
|
||||
* only worrying about postquel functions, c functions will come
|
||||
* later.
|
||||
*/
|
||||
return ExecEvalExpr(expression, econtext, resultIsNull, iterIsDone);
|
||||
return ExecEvalExpr(expression, econtext, isNull, isDone);
|
||||
}
|
||||
|
||||
void
|
||||
ExecEvalFjoin(TargetEntry *tlist,
|
||||
ExprContext *econtext,
|
||||
bool *isNullVect,
|
||||
bool *fj_isDone)
|
||||
ExprDoneCond *fj_isDone)
|
||||
{
|
||||
|
||||
#ifdef SETS_FIXED
|
||||
@@ -72,7 +73,7 @@ ExecEvalFjoin(TargetEntry *tlist,
|
||||
BoolPtr alwaysDone = fjNode->fj_alwaysDone;
|
||||
|
||||
if (fj_isDone)
|
||||
*fj_isDone = false;
|
||||
*fj_isDone = ExprMultipleResult;
|
||||
|
||||
/*
|
||||
* For the next tuple produced by the plan, we need to re-initialize
|
||||
|
||||
Reference in New Issue
Block a user