提交 f796387b 编写于 作者: M Marc G. Fournier

|From: Dan McGuirk <mcguirk@indirect.com>

|
|This patch fixes a backend crash that happens sometimes when you try to
|join on a field that contains NULL in some rows.  Postgres tries to
|compute a hash value of the field you're joining on, but when the field
|is NULL, the pointer it thinks is pointing to the data is really just
|pointing to random memory.  This forces the hash value of NULL to be 0.
|
|It seems that nothing matches NULL on joins, even other NULL's (with or
|without this patch).  Is that what's supposed to happen?
|
上级 9848d365
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.3 1996/07/26 20:03:21 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.4 1996/08/19 01:52:36 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -527,6 +527,16 @@ ExecHashGetBucket(HashJoinTable hashtable,
*/
keyval = ExecEvalVar(hashkey, econtext, &isNull);
/*
* keyval could be null, so we better point it to something
* valid before trying to run hashFunc on it. --djm 8/17/96
*/
if(isNull) {
execConstByVal = 0;
execConstLen = 0;
keyval = (Datum)"";
}
/* ------------------
* compute the hash function
* ------------------
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册