aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2021-09-09 10:23:29 +0200
committerPeter Eisentraut <peter@eisentraut.org>2021-09-09 10:23:29 +0200
commit0ffbe900ce599d204536b9623291e05e965da23e (patch)
tree933c85079bb6ba2b0f15fb981ff761e79c01f253 /src
parent639a86e36aaecb84faaf941dcd0b183ba0aba9e9 (diff)
downloadpostgresql-0ffbe900ce599d204536b9623291e05e965da23e.tar.gz
postgresql-0ffbe900ce599d204536b9623291e05e965da23e.zip
Fix _equalA_Const
639a86e36aaecb84faaf941dcd0b183ba0aba9e9 neglected to make the necessary adjustments to _equalA_Const. Found only via COPY_PARSE_PLAN_TREES.
Diffstat (limited to 'src')
-rw-r--r--src/backend/nodes/equalfuncs.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 231380ccf74..4bad709f835 100644
--- a/src/backend/nodes/equalfuncs.c
+++ b/src/backend/nodes/equalfuncs.c
@@ -2409,8 +2409,14 @@ _equalParamRef(const ParamRef *a, const ParamRef *b)
static bool
_equalA_Const(const A_Const *a, const A_Const *b)
{
- if (!equal(&a->val, &b->val)) /* hack for in-line val field */
+ /*
+ * Hack for in-line val field. Also val is not valid is isnull is
+ * true.
+ */
+ if (!a->isnull && !b->isnull &&
+ !equal(&a->val, &b->val))
return false;
+ COMPARE_SCALAR_FIELD(isnull);
COMPARE_LOCATION_FIELD(location);
return true;