From cf925936ecc031355cd56fbd392ec3180517a110 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: 2022年1月17日 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 8435203f2bd..1e61fde6367 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; -- 2.39.5

AltStyle によって変換されたページ (->オリジナル) /