1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-02 09:02:37 +03:00

Fix for Hash and arrays

This commit is contained in:
Vadim B. Mikheev
1997-04-22 03:32:38 +00:00
parent 435b9ed2f2
commit 051b4210e3
3 changed files with 17 additions and 6 deletions

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.10 1997/01/10 20:17:31 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.11 1997/04/22 03:32:35 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -98,7 +98,6 @@ ExecEvalArrayRef(ArrayRef *arrayRef,
int *lIndex;
char *dataPtr;
execConstByVal = arrayRef->refelembyval;
*isNull = false;
array_scanner = (ArrayType*)ExecEvalExpr(arrayRef->refexpr,
econtext,
@ -138,6 +137,8 @@ ExecEvalArrayRef(ArrayRef *arrayRef,
assgnexpr, econtext,
isNull, &dummy);
if (*isNull) return (Datum)NULL;
execConstByVal = arrayRef->refelembyval;
execConstLen = arrayRef->refelemlength;
if (lIndex == NULL)
return (Datum) array_set(array_scanner, i, upper.indx, dataPtr,
arrayRef->refelembyval,
@ -149,6 +150,8 @@ ExecEvalArrayRef(ArrayRef *arrayRef,
arrayRef->refelembyval,
arrayRef->refelemlength, isNull);
}
execConstByVal = arrayRef->refelembyval;
execConstLen = arrayRef->refelemlength;
if (lIndex == NULL)
return (Datum) array_ref(array_scanner, i, upper.indx,
arrayRef->refelembyval,

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.7 1996/11/06 06:47:40 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.8 1997/04/22 03:32:38 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -536,8 +536,10 @@ ExecHashGetBucket(HashJoinTable hashtable,
/* ----------------
* Get the join attribute value of the tuple
* ----------------
* ...It's quick hack - use ExecEvalExpr instead of ExecEvalVar:
* hashkey may be T_ArrayRef, not just T_Var. - vadim 04/22/97
*/
keyval = ExecEvalVar(hashkey, econtext, &isNull);
keyval = ExecEvalExpr((Node*)hashkey, econtext, &isNull, NULL);
/*
* keyval could be null, so we better point it to something