From cf925936ecc031355cd56fbd392ec3180517a110 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 17 Jan 2022 13:59:46 +0100 Subject: [PATCH] Fix for new Boolean node The token in nodeTokenType() is actually the whole rest of the string, so we need to take into account the length to do the correct comparison. Without this, postgres_fdw tests fail under -DWRITE_READ_PARSE_PLAN_TREES. --- src/backend/nodes/read.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/nodes/read.c b/src/backend/nodes/read.c index 8435203f2b..1e61fde636 100644 --- a/src/backend/nodes/read.c +++ b/src/backend/nodes/read.c @@ -283,7 +283,8 @@ nodeTokenType(const char *token, int length) retval = RIGHT_PAREN; else if (*token == '{') retval = LEFT_BRACE; - else if (strcmp(token, "true") == 0 || strcmp(token, "false") == 0) + else if ((length == 4 && strncmp(token, "true", 4) == 0) || + (length == 5 && strncmp(token, "false", 5) == 0)) retval = T_Boolean; else if (*token == '"' && length > 1 && token[length - 1] == '"') retval = T_String;