139 lines
6.4 KiB
SQL
139 lines
6.4 KiB
SQL
-- create extension
|
|
SET client_min_messages TO 'error';
|
|
DROP EXTENSION IF EXISTS polar_parameter_check;
|
|
RESET client_min_messages;
|
|
CREATE EXTENSION polar_parameter_check;
|
|
|
|
-- name check
|
|
-- positive case
|
|
select * from polar_parameter_name_check('enable_hashjoin');
|
|
select * from polar_parameter_name_check('max_connections');
|
|
select * from polar_parameter_name_check('synchronous_standby_names');
|
|
select * from polar_parameter_name_check('wal_level');
|
|
-- negetive case
|
|
select * from polar_parameter_name_check('.');
|
|
select * from polar_parameter_name_check('xxxx');
|
|
select * from polar_parameter_name_check('0');
|
|
select * from polar_parameter_name_check('');
|
|
select * from polar_parameter_name_check(NULL);
|
|
|
|
-- value check
|
|
-- test grammar valid case
|
|
|
|
-- 1. PGC_BOOL
|
|
-- positive case
|
|
select * from polar_parameter_value_check('enable_hashjoin', 'true');
|
|
select * from polar_parameter_value_check('enable_hashjoin', 'false');
|
|
select * from polar_parameter_value_check('enable_hashjoin', '1');
|
|
select * from polar_parameter_value_check('enable_hashjoin', '0');
|
|
select * from polar_parameter_value_check('enable_hashjoin', 'on');
|
|
select * from polar_parameter_value_check('enable_hashjoin', 'off');
|
|
-- negetive case
|
|
select * from polar_parameter_value_check('enable_hashjoin', 'xx');
|
|
select * from polar_parameter_value_check('enable_hashjoin', '2');
|
|
select * from polar_parameter_value_check('enable_hashjoin', '..');
|
|
select * from polar_parameter_value_check('enable_hashjoin', '-1');
|
|
|
|
-- 2. PGC_INT
|
|
-- positive case
|
|
select * from polar_parameter_value_check('max_connections', '1');
|
|
select * from polar_parameter_value_check('max_connections', '2');
|
|
select * from polar_parameter_value_check('max_connections', '10');
|
|
select * from polar_parameter_value_check('max_connections', '100');
|
|
select * from polar_parameter_value_check('max_connections', '100000');
|
|
-- negetive case
|
|
select * from polar_parameter_value_check('max_connections', '0');
|
|
select * from polar_parameter_value_check('max_connections', '9999999');
|
|
select * from polar_parameter_value_check('max_connections', '-1');
|
|
select * from polar_parameter_value_check('max_connections', 'xx');
|
|
|
|
-- 3. PGC_REAL
|
|
-- positive case
|
|
select * from polar_parameter_value_check('jit_above_cost', '1.0');
|
|
select * from polar_parameter_value_check('jit_above_cost', '3.14');
|
|
select * from polar_parameter_value_check('jit_above_cost', '1');
|
|
select * from polar_parameter_value_check('jit_above_cost', '20.9');
|
|
-- negetive case
|
|
select * from polar_parameter_value_check('jit_above_cost', 'xx');
|
|
select * from polar_parameter_value_check('jit_above_cost', 'test_case');
|
|
|
|
-- 4. PGC_STRING
|
|
-- positive case
|
|
select * from polar_parameter_value_check('synchronous_standby_names', 'xxx');
|
|
select * from polar_parameter_value_check('synchronous_standby_names', '123');
|
|
select * from polar_parameter_value_check('synchronous_standby_names', '_standby');
|
|
select * from polar_parameter_value_check('synchronous_standby_names', 'WhUhKhSn');
|
|
|
|
select * from polar_parameter_value_check('log_line_prefix', '%m [%p]');
|
|
select * from polar_parameter_value_check('log_line_prefix', 'xxxxx');
|
|
select * from polar_parameter_value_check('log_line_prefix', '%s');
|
|
|
|
select * from polar_parameter_value_check('TimeZone', 'GMT');
|
|
select * from polar_parameter_value_check('TimeZone', 'America/Atikokan');
|
|
select * from polar_parameter_value_check('TimeZone', 'Europe/Dublin');
|
|
select * from polar_parameter_value_check('TimeZone', 'Asia/Jerusalem');
|
|
|
|
-- negetive case
|
|
select * from polar_parameter_value_check('TimeZone', 'xxxx');
|
|
select * from polar_parameter_value_check('TimeZone', 'beijing');
|
|
select * from polar_parameter_value_check('TimeZone', '090909');
|
|
|
|
-- 5. PGC_ENUM
|
|
-- positive case
|
|
select * from polar_parameter_value_check('backslash_quote', 'safe_encoding');
|
|
select * from polar_parameter_value_check('backslash_quote', 'on');
|
|
select * from polar_parameter_value_check('backslash_quote', 'off');
|
|
select * from polar_parameter_value_check('backslash_quote', 'true');
|
|
select * from polar_parameter_value_check('backslash_quote', 'false');
|
|
-- negetive case
|
|
select * from polar_parameter_value_check('backslash_quote', '2');
|
|
select * from polar_parameter_value_check('backslash_quote', 'xx');
|
|
select * from polar_parameter_value_check('backslash_quote', '234');
|
|
select * from polar_parameter_value_check('backslash_quote', '.');
|
|
select * from polar_parameter_value_check('backslash_quote', 'yueo');
|
|
|
|
-- positive case
|
|
select * from polar_parameter_value_check('wal_level', 'minimal');
|
|
select * from polar_parameter_value_check('wal_level', 'replica');
|
|
select * from polar_parameter_value_check('wal_level', 'archive');
|
|
select * from polar_parameter_value_check('wal_level', 'hot_standby');
|
|
select * from polar_parameter_value_check('wal_level', 'logical');
|
|
-- negetive case
|
|
select * from polar_parameter_value_check('wal_level', '0');
|
|
select * from polar_parameter_value_check('wal_level', 'x');
|
|
select * from polar_parameter_value_check('wal_level', '234');
|
|
select * from polar_parameter_value_check('wal_level', '.');
|
|
select * from polar_parameter_value_check('wal_level', 'yueo');
|
|
|
|
-- 6. nonexistent variable
|
|
select * from polar_parameter_value_check('abc', 'true');
|
|
select * from polar_parameter_value_check('123', 'false');
|
|
|
|
-- test poar_ or rds_ case
|
|
select * from polar_parameter_value_check('max_connections', '1');
|
|
select * from polar_parameter_value_check('polar_max_connections', '1');
|
|
select * from polar_parameter_value_check('rds_max_connections', '1');
|
|
|
|
select * from polar_parameter_value_check('max_connections', '9999');
|
|
select * from polar_parameter_value_check('polar_max_connections', '9999');
|
|
select * from polar_parameter_value_check('rds_max_connections', '9999');
|
|
|
|
|
|
select * from polar_parameter_value_check('max_connections', '1000000000');
|
|
select * from polar_parameter_value_check('polar_max_connections', '1000000000');
|
|
select * from polar_parameter_value_check('rds_max_connections', '1000000000');
|
|
|
|
-- test grammar invalid case
|
|
select * from polar_parameter_value_check('max_connections', 1111);
|
|
select * from polar_parameter_value_check('max_connections', 123);
|
|
select * from polar_parameter_value_check(123, 'xx');
|
|
select * from polar_parameter_value_check(123, 123);
|
|
|
|
-- test special case
|
|
select * from polar_parameter_value_check('max_connections', NULL);
|
|
select * from polar_parameter_value_check(NULL, NULL);
|
|
select * from polar_parameter_value_check(NULL, '1');
|
|
|
|
select * from polar_parameter_value_check('max_connections', '');
|
|
select * from polar_parameter_value_check('', '1');
|
|
select * from polar_parameter_value_check('', ''); |