Files
openGauss-server/src/test/regress/input/set_system_variables_test.source
2023-08-01 15:01:00 +08:00

303 lines
10 KiB
Plaintext

-- dbcompatibility is A Format
set codegen_cost_threshold = default;
set codegen_cost_threshold = 10000;
set @@codegen_cost_threshold = 10000;
set @@session.codegen_cost_threshold = 10000;
set @@session.codegen_cost_threshold = default;
select @@session.codegen_cost_threshold;
select @@session.codegen_cost_threshold = 1001;
set @@global.dcf_connect_timeout = 6000;
select @@global.dcf_connect_timeout;
set global dcf_connect_timeout = 6000;
set global dcf_connect_timeout = abs(6000);
set session codegen_cost_threshold = 10000 * 1;
set codegen_cost_threshold = 10000 * 1;
set codegen_cost_threshold = (select 10000);
-- test type not support
set codegen_cost_threshold = '1'::money;
set @@session.codegen_cost_threshold = '1'::money;
set application_name = '00:00:01'::time;
set @@session.application_name = '00:00:01'::time;
create database test_set dbcompatibility 'b';
\c test_set
-- dbcompatibility is B Format, enable_set_variable_b_format=off
set codegen_cost_threshold = default;
set codegen_cost_threshold = 10000;
set @@codegen_cost_threshold = 10000;
set @@session.codegen_cost_threshold = 10000;
set @@session.codegen_cost_threshold = default;
select @@session.codegen_cost_threshold;
select @@session.codegen_cost_threshold = 1001;
set @@global.dcf_connect_timeout = 6000;
select @@global.dcf_connect_timeout;
set global dcf_connect_timeout = 6000;
set global dcf_connect_timeout = abs(6000);
set session codegen_cost_threshold = 10000 * 1;
set codegen_cost_threshold = 10000 * 1;
set codegen_cost_threshold = (select 10000);
\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1 -c "enable_set_variable_b_format=on" >/dev/null 2>&1
\! sleep 1
-- dbcompatibility is B Format, enable_set_variable_b_format=on
-- test integer params, e.g. codegen_cost_threshold
set codegen_cost_threshold = default;
set codegen_cost_threshold = 10000;
set codegen_cost_threshold = 10000 + 1;
set codegen_cost_threshold = @@session.codegen_cost_threshold + 1;
set @@codegen_cost_threshold = 10000;
set @@session.codegen_cost_threshold = 10000;
set @@session.codegen_cost_threshold = '10000';
set @@session.codegen_cost_threshold = '10000' + 1;
set @@session.codegen_cost_threshold = default;
set @@session.codegen_cost_threshold = 10000*2;
set @@session.codegen_cost_threshold = @@session.codegen_cost_threshold * 2;
set @@session.codegen_cost_threshold = abs(1000 + 1);
set @@session.codegen_cost_threshold = (select abs(1000 + 1));
select @@session.codegen_cost_threshold;
select @@session.codegen_cost_threshold = 1001;
select @@session.codegen_cost_threshold = 1002;
select @@session.codegen_cost_threshold * 2;
select abs(@@session.codegen_cost_threshold) + 1;
set @@global.dcf_connect_timeout = '6000';
set @@global.dcf_connect_timeout = 6000 + 1;
set @@global.dcf_connect_timeout = @@global.dcf_connect_timeout * 2;
set @@global.dcf_connect_timeout = (select 6000 + 1);
set @@global.dcf_connect_timeout = 6000;
select pg_sleep(1);
select @@global.dcf_connect_timeout;
select @@global.dcf_connect_timeout = 6000;
select @@global.dcf_connect_timeout = 6001;
select @@global.dcf_connect_timeout * 2;
select @@global.dcf_connect_timeout + 1;
select 1 + @@global.dcf_connect_timeout;
select abs(@@global.dcf_connect_timeout) + 1;
-- fail example
set @@session.codegen_cost_threshold = 'aaa';
set dcf_connect_timeout = 6000;
set @@dcf_connect_timeout = 6000;
-- test bool params, e.g. enable_broadcast
set enable_broadcast = default;
set enable_broadcast = (true = true);
set session enable_broadcast = @@enable_broadcast;
set @@enable_broadcast = on;
set @@enable_broadcast = 'on';
set @@enable_broadcast = off;
set @@enable_broadcast = true;
set @@enable_broadcast = 'true';
set @@enable_broadcast = false;
set @@enable_broadcast = t;
set @@enable_broadcast = f;
set @@enable_broadcast = default;
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;
select @@session.enable_broadcast;
select @@session.enable_broadcast = 'true';
set global most_available_sync = t;
set @@global.most_available_sync = t;
set @@global.most_available_sync = true;
set @@global.most_available_sync = 'true';
set @@global.most_available_sync = false;
set @@global.most_available_sync = on;
set @@global.most_available_sync = off;
-- fail example
set enable_broadcast = 10000;
set most_available_sync = t;
set global most_available_sync = default;
-- test string params, e.g. application_name
set application_name = default;
set application_name = gsql;
set application_name = (select 'gsql');
set session application_name = (select 'gsql');
set @@application_name = '';
set @@application_name = default;
set @@session.application_name = aaa;
set @@session.application_name = default;
set @@session.application_name = 'aaa';
set @@session.application_name = ('aaa' = 'aaa');
select @@application_name;
select @@session.application_name;
select (@@session.application_name = 'gsql');
select char_length(@@application_name);
select char_length(@@session.application_name);
set @@global.syslog_ident = 'postgres1';
set global syslog_ident = 'postgres1';
set global syslog_ident = left('postgres1',8);
set @@global.syslog_ident = ('postgres1' = 'postgres1');
set @@global.syslog_ident = 'postgres';
select pg_sleep(1);
select @@global.syslog_ident;
select char_length(@@global.syslog_ident);
select (@@global.syslog_ident = 'postgres1');
-- fail example
set @@session.application_name = (aaa = aaa);
set syslog_ident = 'postgres';
-- test enum params, e.g. explain_perf_mode
set explain_perf_mode = default;
set explain_perf_mode = normal;
set explain_perf_mode = @@explain_perf_mode;
set session explain_perf_mode = (select @@explain_perf_mode);
set @@explain_perf_mode = normal;
set @@explain_perf_mode = default;
set @@session.explain_perf_mode = normal;
set @@session.explain_perf_mode = default;
select @@session.explain_perf_mode;
select @@explain_perf_mode;
select char_length(@@session.explain_perf_mode);
select @@session.explain_perf_mode = 'normal';
set global trace_recovery_messages = log;
set @@global.trace_recovery_messages = info;
set @@global.trace_recovery_messages = log;
select pg_sleep(1);
select @@global.trace_recovery_messages;
select char_length(@@global.trace_recovery_messages);
-- fail example
set @@session.explain_perf_mode = 'aa';
-- test enum params, e.g. explain_perf_mode
set cpu_index_tuple_cost = default;
set cpu_index_tuple_cost = 0.006;
set cpu_index_tuple_cost = 0.006 +1;
set session cpu_index_tuple_cost = (select @@cpu_index_tuple_cost);
set @@cpu_index_tuple_cost = 0.006;
set @@cpu_index_tuple_cost = default;
set @@session.cpu_index_tuple_cost = 0.006;
set @@session.cpu_index_tuple_cost = default;
set @@session.cpu_index_tuple_cost = 0.006 +1;
set @@session.cpu_index_tuple_cost = @@session.cpu_index_tuple_cost;
set @@session.cpu_index_tuple_cost = @@session.cpu_index_tuple_cost * 2;
select @@session.cpu_index_tuple_cost;
select @@cpu_index_tuple_cost;
select @@cpu_index_tuple_cost * 2;
select abs(@@cpu_index_tuple_cost);
set global checkpoint_completion_target = 0.3;
set global checkpoint_completion_target = 0.3 * 1;
set global checkpoint_completion_target = abs(0.3);
set @@global.checkpoint_completion_target = abs(0.3);
select pg_sleep(1);
select @@global.checkpoint_completion_target;
select @@global.checkpoint_completion_target * 2;
select @@global.checkpoint_completion_target + 1;
-- test expr
set role = 'root';
set @@session.codegen_cost_threshold = 20000 / 2;
set @@session.codegen_cost_threshold = 20000 % 10001;
set @@session.enable_broadcast = (1 < 2);
set @@session.enable_broadcast = (1 = 2);
set @@session.enable_broadcast = (1 IS NOT DISTINCT FROM (select 2));
set @@session.enable_broadcast = (1 IS OF (INT));
set @@session.backwrite_quantity = generate_series(1024,20000);
create table t1(f1 int);
insert into t1 values (1024);
set @@session.backwrite_quantity = (select * from t1);
insert into t1 values (1025);
set @@session.backwrite_quantity = (select * from t1);
-- test multiset
set global log_destination = 'stderr,syslog', @v1:=@v2:='aaa' ,@@codegen_cost_threshold = 10000, @v3:= 1, @@session.cpu_index_tuple_cost = default, @@application_name = (select 'gsql');
set global log_destination = 'stderr,syslog', @@codegen_cost_threshold = 10000, @v1:= 1;
set global log_destination = 'stderr', @@codegen_cost_threshold = abs(10000), @v1:= @@codegen_cost_threshold;
set @@session.codegen_cost_threshold = 10000, @v2:=@v1:= 1;
set global log_destination = 'stderr,syslog', @@codegen_cost_threshold = 10000, @v1:= 1, global checkpoint_completion_target = 0.3 * 1;
set @v1 := 10000;
set @v2:=@v1:= 9999,@@session.codegen_cost_threshold = @v1 ;
-- fail e.g.
set global log_destination = stderr,syslog;
set global log_destination = stderr,syslog , @v1:= 1, @@codegen_cost_threshold = 10000;
set global log_destination = stderr,syslog , @v1:= 1, @@codegen_cost_threshold = aa;
set global log_destination = 'stderr', @v1:= 1, @@codegen_cost_threshold = 'aa';
-- test type not support
set codegen_cost_threshold = '1'::money;
set @@session.codegen_cost_threshold = '1'::money;
set application_name = '00:00:01'::time;
set @@session.application_name = '00:00:01'::time;
-- test procedure
create table test_pro(a int);
create or replace procedure pro1()
as
begin
insert into test_pro values(@@session_timeout);
end;
/
call pro1();
set @@session_timeout = 700;
call pro1();
set @@session_timeout = 800;
call pro1();
select * from test_pro;
create or replace procedure proc1 as
declare
v1 integer;
v2 integer;
begin
set @@session.session_timeout = 240;
set @@global.dcf_connect_timeout = 60000;
select @@session.session_timeout, @@global.dcf_connect_timeout into v1,v2;
raise info 'v1:%', v1;
raise info 'v2:%', v2;
end;
/
-- test b_format_behavior_compat_options param
\c test_set
show b_format_behavior_compat_options;
set b_format_behavior_compat_options = 'enable_set_variables, enable_set_variables';
show b_format_behavior_compat_options;
set @v1 = 1;
select @v1;
\c regression
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;