Discussion:
FailedAssertion
(too old to reply)
j***@uwaterloo.ca
2011-03-03 02:56:40 UTC
Permalink
Recently,

I was running my HashJoin with the new ExecHash implemented (and only the
changes required in ExecHashJoin to do so) and noticed that my
outerNode->hashkeys was null as someone else also mentioned.

I was able to set these hashkeys (I believe) properly, but this caused the
program from issuing the correct results to causing an error that says:

"TRAP: FailedAssertion("!(attnum <= tuple_type->natts)", File:
"execQual.c", Line: 491)"

I noticed that this error comes from somewhere within
ExecHashGetHashValue() when this call is made in ExecHash:

hashvalue = ExecHashGetHashValue(hashtable, econtext, hashkeys);

Any idea what might be causing such an error (I have to assume it is the
hashkeys because that is the only change I made)???

It is my understanding that having outerNode->hashkeys as NULL would be
incorrect - and that we do want these set...

Thanks.
Anup Kumar Chalamalla
2011-03-03 06:47:58 UTC
Permalink
Hi,

Yes, infact it does seem that it has nothing to do with hashtable,
hashkeys or econtext being NULL. Basically the attnum here is being
checked if it is valid, and is done using Assert Checking. The value of
the variable "attnum" here is invalid. It's as simple as that.

I don't know what the limit of the value of "attnum" should be in this
case. Looks like it is comparing with the number of attributes of a
tuple of certain type. Try commenting that line out in execQual.c and
see if everything works fine or if you find some other strange errors
from which you can deduce where your program goes wrong.

Anup
Post by j***@uwaterloo.ca
Recently,
I was running my HashJoin with the new ExecHash implemented (and only the
changes required in ExecHashJoin to do so) and noticed that my
outerNode->hashkeys was null as someone else also mentioned.
I was able to set these hashkeys (I believe) properly, but this caused the
"execQual.c", Line: 491)"
I noticed that this error comes from somewhere within
hashvalue = ExecHashGetHashValue(hashtable, econtext, hashkeys);
Any idea what might be causing such an error (I have to assume it is the
hashkeys because that is the only change I made)???
It is my understanding that having outerNode->hashkeys as NULL would be
incorrect - and that we do want these set...
Thanks.
Ken Salem
2011-03-03 16:38:40 UTC
Permalink
Have you gone through ExecInitHashJoin to ensure that the
new hash node is being initialized properly?

-KMS
Post by j***@uwaterloo.ca
Recently,
I was running my HashJoin with the new ExecHash implemented (and only the
changes required in ExecHashJoin to do so) and noticed that my
outerNode->hashkeys was null as someone else also mentioned.
I was able to set these hashkeys (I believe) properly, but this caused the
"execQual.c", Line: 491)"
I noticed that this error comes from somewhere within
hashvalue = ExecHashGetHashValue(hashtable, econtext, hashkeys);
Any idea what might be causing such an error (I have to assume it is the
hashkeys because that is the only change I made)???
It is my understanding that having outerNode->hashkeys as NULL would be
incorrect - and that we do want these set...
Thanks.
Loading...