From 1108ae26e5c840383f3ede5f35dabcb67133620b Mon Sep 17 00:00:00 2001 From: totaj Date: Tue, 1 Aug 2023 14:33:19 +0800 Subject: [PATCH] Fix select @@ bool parameter bug. --- src/common/backend/parser/parse_coerce.cpp | 2 +- .../regress/input/set_system_variables_test.source | 3 ++- .../regress/output/set_system_variables_test.source | 12 +++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/common/backend/parser/parse_coerce.cpp b/src/common/backend/parser/parse_coerce.cpp index af255e1db..02fb56e2d 100644 --- a/src/common/backend/parser/parse_coerce.cpp +++ b/src/common/backend/parser/parse_coerce.cpp @@ -3137,7 +3137,7 @@ Const* setValueToConstExpr(SetVariableExpr* set) case PGC_BOOL: { bool variable_bool = false; - if (strcmp(variable_str,"true") || strcmp(variable_str,"on")) { + if (strcmp(variable_str, "true") == 0 || strcmp(variable_str,"on") == 0) { variable_bool = true; } val = BoolGetDatum(variable_bool); diff --git a/src/test/regress/input/set_system_variables_test.source b/src/test/regress/input/set_system_variables_test.source index e05b69ac9..072996398 100644 --- a/src/test/regress/input/set_system_variables_test.source +++ b/src/test/regress/input/set_system_variables_test.source @@ -110,6 +110,7 @@ set @@session.enable_broadcast = on; set @@session.enable_broadcast = default; set @@enable_broadcast = (1 = 1); set @@enable_broadcast = (true = true); +select @@enable_broadcast; set @@enable_broadcast = (true = false); select @@enable_broadcast; @@ -298,4 +299,4 @@ drop database if exists test_set; \! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1 -c "enable_set_variable_b_format=off" >/dev/null 2>&1 \! sleep 1 -show enable_set_variable_b_format; \ No newline at end of file +show enable_set_variable_b_format; diff --git a/src/test/regress/output/set_system_variables_test.source b/src/test/regress/output/set_system_variables_test.source index c08cff1fd..145d12f84 100644 --- a/src/test/regress/output/set_system_variables_test.source +++ b/src/test/regress/output/set_system_variables_test.source @@ -237,23 +237,29 @@ set @@session.enable_broadcast = on; set @@session.enable_broadcast = default; set @@enable_broadcast = (1 = 1); set @@enable_broadcast = (true = true); -set @@enable_broadcast = (true = false); select @@enable_broadcast; ?column? ---------- t (1 row) +set @@enable_broadcast = (true = false); +select @@enable_broadcast; + ?column? +---------- + f +(1 row) + select @@session.enable_broadcast; ?column? ---------- - t + f (1 row) select @@session.enable_broadcast = 'true'; ?column? ---------- - t + f (1 row) set global most_available_sync = t;