diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-04-22 03:32:38 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-04-22 03:32:38 +0000 |
commit | 051b4210e3cb3f3a9ec7cd5ab4503b48f279ab48 (patch) | |
tree | bb7f62d9e6b675c82a95aef92cf23895e6bd2256 /src/backend/executor | |
parent | 435b9ed2f26a57e51a9f029250121fef2e8052b4 (diff) | |
download | postgresql-051b4210e3cb3f3a9ec7cd5ab4503b48f279ab48.tar.gz postgresql-051b4210e3cb3f3a9ec7cd5ab4503b48f279ab48.zip |
Fix for Hash and arrays
Diffstat (limited to 'src/backend/executor')
-rw-r--r-- | src/backend/executor/execQual.c | 7 | ||||
-rw-r--r-- | src/backend/executor/nodeHash.c | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index 7e9d6f0bace..9d943368a34 100644 --- a/src/backend/executor/execQual.c +++ b/src/backend/executor/execQual.c @@ -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, diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index e3b004c0a29..c71c3a3f440 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -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 |