v6-0002-Fix-jumbling-of-empty-arrays-in-plan-nodes.patch

text/x-diff

Filename: v6-0002-Fix-jumbling-of-empty-arrays-in-plan-nodes.patch
Type: text/x-diff
Part: 1
Message: Re: [PATCH] Optionally record Plan IDs to track plan changes for a query
From 70c9720a8edd84fd31c4e9a9b1978765df5dbaea Mon Sep 17 00:00:00 2001
From: Andrey Kazachkov <andrey.kazachkov@tantorlabs.ru>
Date: Wed, 24 Dec 2025 18:47:34 +0300
Subject: [PATCH v6 2/2] Fix jumbling of empty arrays in plan nodes

---
 src/backend/nodes/queryjumblefuncs.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/backend/nodes/queryjumblefuncs.c b/src/backend/nodes/queryjumblefuncs.c
index 5717480dbf5..a0d28827269 100644
--- a/src/backend/nodes/queryjumblefuncs.c
+++ b/src/backend/nodes/queryjumblefuncs.c
@@ -555,7 +555,10 @@ do { \
 		AppendJumble(jstate, (const unsigned char *) expr->item->words, sizeof(bitmapword) * expr->item->nwords); \
 } while(0)
 #define JUMBLE_ARRAY(item, len) \
-	AppendJumble(jstate, (const unsigned char *) expr->item, sizeof(*(expr->item)) * len)
+	do { \
+		if (len) \
+			AppendJumble(jstate, (const unsigned char *) expr->item, sizeof(*(expr->item)) * len); \
+	} while (0)
 #define JUMBLE_STRING(str) \
 do { \
 	if (expr->str) \
-- 
2.43.0