Fix select @@ bool parameter bug.

This commit is contained in:
totaj
2023-08-01 14:33:19 +08:00
parent 74efc1a09a
commit 1108ae26e5
3 changed files with 12 additions and 5 deletions

View File

@ -3137,7 +3137,7 @@ Const* setValueToConstExpr(SetVariableExpr* set)
case PGC_BOOL: case PGC_BOOL:
{ {
bool variable_bool = false; 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; variable_bool = true;
} }
val = BoolGetDatum(variable_bool); val = BoolGetDatum(variable_bool);

View File

@ -110,6 +110,7 @@ set @@session.enable_broadcast = on;
set @@session.enable_broadcast = default; set @@session.enable_broadcast = default;
set @@enable_broadcast = (1 = 1); set @@enable_broadcast = (1 = 1);
set @@enable_broadcast = (true = true); set @@enable_broadcast = (true = true);
select @@enable_broadcast;
set @@enable_broadcast = (true = false); set @@enable_broadcast = (true = false);
select @@enable_broadcast; 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 \! @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 \! sleep 1
show enable_set_variable_b_format; show enable_set_variable_b_format;

View File

@ -237,23 +237,29 @@ set @@session.enable_broadcast = on;
set @@session.enable_broadcast = default; set @@session.enable_broadcast = default;
set @@enable_broadcast = (1 = 1); set @@enable_broadcast = (1 = 1);
set @@enable_broadcast = (true = true); set @@enable_broadcast = (true = true);
set @@enable_broadcast = (true = false);
select @@enable_broadcast; select @@enable_broadcast;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
set @@enable_broadcast = (true = false);
select @@enable_broadcast;
?column?
----------
f
(1 row)
select @@session.enable_broadcast; select @@session.enable_broadcast;
?column? ?column?
---------- ----------
t f
(1 row) (1 row)
select @@session.enable_broadcast = 'true'; select @@session.enable_broadcast = 'true';
?column? ?column?
---------- ----------
t f
(1 row) (1 row)
set global most_available_sync = t; set global most_available_sync = t;