Supplement fastcheck cases for improve numeric computation.

This commit is contained in:
hyc520
2022-08-18 19:52:33 +08:00
parent e94d589c4f
commit 26f55f32a4
2 changed files with 55 additions and 0 deletions

View File

@ -11,6 +11,7 @@ CREATE FOREIGN TABLE num_exp_sqrt (id int4 not null, expected numeric(210,10)) S
CREATE FOREIGN TABLE num_exp_ln (id int4 not null, expected numeric(210,10)) SERVER mot_server ;
CREATE FOREIGN TABLE num_exp_log10 (id int4 not null, expected numeric(210,10)) SERVER mot_server ;
CREATE FOREIGN TABLE num_exp_power_10_ln (id int4 not null, expected numeric(210,10)) SERVER mot_server ;
CREATE FOREIGN TABLE num_exp_sign (id int4 not null, expected numeric(210,10)) SERVER mot_server ;
CREATE FOREIGN TABLE num_result (id1 int4, id2 int4, result numeric(210,10)) SERVER mot_server ;
-- ******************************
-- * The following EXPECTED results are computed by bc(1)
@ -467,6 +468,18 @@ INSERT INTO num_exp_power_10_ln VALUES (8,'167361463828.07491320069016125952');
INSERT INTO num_exp_power_10_ln VALUES (9,'107511333880052007.04141124673540337457');
COMMIT TRANSACTION;
START TRANSACTION;
INSERT INTO num_exp_sign VALUES (0,'0');
INSERT INTO num_exp_sign VALUES (1,'0');
INSERT INTO num_exp_sign VALUES (2,'-1');
INSERT INTO num_exp_sign VALUES (3,'1');
INSERT INTO num_exp_sign VALUES (4,'1');
INSERT INTO num_exp_sign VALUES (5,'1');
INSERT INTO num_exp_sign VALUES (6,'1');
INSERT INTO num_exp_sign VALUES (7,'-1');
INSERT INTO num_exp_sign VALUES (8,'1');
INSERT INTO num_exp_sign VALUES (9,'-1');
COMMIT TRANSACTION;
START TRANSACTION;
INSERT INTO num_data VALUES (0, '0');
INSERT INTO num_data VALUES (1, '0');
INSERT INTO num_data VALUES (2, '-34338492.215397047');
@ -489,6 +502,7 @@ CREATE UNIQUE INDEX num_exp_sqrt_idx ON num_exp_sqrt (id);
CREATE UNIQUE INDEX num_exp_ln_idx ON num_exp_ln (id);
CREATE UNIQUE INDEX num_exp_log10_idx ON num_exp_log10 (id);
CREATE UNIQUE INDEX num_exp_power_10_ln_idx ON num_exp_power_10_ln (id);
CREATE UNIQUE INDEX num_exp_sign_idx ON num_exp_sign (id);
VACUUM ANALYZE num_exp_add;
VACUUM ANALYZE num_exp_sub;
VACUUM ANALYZE num_exp_div;
@ -497,6 +511,7 @@ VACUUM ANALYZE num_exp_sqrt;
VACUUM ANALYZE num_exp_ln;
VACUUM ANALYZE num_exp_log10;
VACUUM ANALYZE num_exp_power_10_ln;
VACUUM ANALYZE num_exp_sign;
-- ******************************
-- * Now check the behaviour of the NUMERIC type
-- ******************************
@ -661,6 +676,20 @@ SELECT t1.id1, t1.result, t2.expected
-----+--------+----------
(0 rows)
-- ******************************
-- * SIGN(value) check
-- ******************************
DELETE FROM num_result;
INSERT INTO num_result SELECT id, 0, SIGN(val)
FROM num_data;
SELECT t1.id1, t1.result, t2.expected
FROM num_result t1, num_exp_sign t2
WHERE t1.id1 = t2.id
AND t1.result != t2.expected;
id1 | result | expected
-----+--------+----------
(0 rows)
-- ******************************
-- * miscellaneous checks for things that have been broken in the past...
-- ******************************

View File

@ -13,6 +13,7 @@ CREATE FOREIGN TABLE num_exp_sqrt (id int4 not null, expected numeric(210,10)) S
CREATE FOREIGN TABLE num_exp_ln (id int4 not null, expected numeric(210,10)) SERVER mot_server ;
CREATE FOREIGN TABLE num_exp_log10 (id int4 not null, expected numeric(210,10)) SERVER mot_server ;
CREATE FOREIGN TABLE num_exp_power_10_ln (id int4 not null, expected numeric(210,10)) SERVER mot_server ;
CREATE FOREIGN TABLE num_exp_sign (id int4 not null, expected numeric(210,10)) SERVER mot_server ;
CREATE FOREIGN TABLE num_result (id1 int4, id2 int4, result numeric(210,10)) SERVER mot_server ;
@ -473,6 +474,18 @@ INSERT INTO num_exp_power_10_ln VALUES (8,'167361463828.07491320069016125952');
INSERT INTO num_exp_power_10_ln VALUES (9,'107511333880052007.04141124673540337457');
COMMIT TRANSACTION;
START TRANSACTION;
INSERT INTO num_exp_sign VALUES (0,'0');
INSERT INTO num_exp_sign VALUES (1,'0');
INSERT INTO num_exp_sign VALUES (2,'-1');
INSERT INTO num_exp_sign VALUES (3,'1');
INSERT INTO num_exp_sign VALUES (4,'1');
INSERT INTO num_exp_sign VALUES (5,'1');
INSERT INTO num_exp_sign VALUES (6,'1');
INSERT INTO num_exp_sign VALUES (7,'-1');
INSERT INTO num_exp_sign VALUES (8,'1');
INSERT INTO num_exp_sign VALUES (9,'-1');
COMMIT TRANSACTION;
START TRANSACTION;
INSERT INTO num_data VALUES (0, '0');
INSERT INTO num_data VALUES (1, '0');
INSERT INTO num_data VALUES (2, '-34338492.215397047');
@ -497,6 +510,7 @@ CREATE UNIQUE INDEX num_exp_sqrt_idx ON num_exp_sqrt (id);
CREATE UNIQUE INDEX num_exp_ln_idx ON num_exp_ln (id);
CREATE UNIQUE INDEX num_exp_log10_idx ON num_exp_log10 (id);
CREATE UNIQUE INDEX num_exp_power_10_ln_idx ON num_exp_power_10_ln (id);
CREATE UNIQUE INDEX num_exp_sign_idx ON num_exp_sign (id);
VACUUM ANALYZE num_exp_add;
VACUUM ANALYZE num_exp_sub;
@ -506,6 +520,7 @@ VACUUM ANALYZE num_exp_sqrt;
VACUUM ANALYZE num_exp_ln;
VACUUM ANALYZE num_exp_log10;
VACUUM ANALYZE num_exp_power_10_ln;
VACUUM ANALYZE num_exp_sign;
-- ******************************
-- * Now check the behaviour of the NUMERIC type
@ -636,6 +651,17 @@ SELECT t1.id1, t1.result, t2.expected
WHERE t1.id1 = t2.id
AND t1.result != t2.expected;
-- ******************************
-- * SIGN(value) check
-- ******************************
DELETE FROM num_result;
INSERT INTO num_result SELECT id, 0, SIGN(val)
FROM num_data;
SELECT t1.id1, t1.result, t2.expected
FROM num_result t1, num_exp_sign t2
WHERE t1.id1 = t2.id
AND t1.result != t2.expected;
-- ******************************
-- * miscellaneous checks for things that have been broken in the past...
-- ******************************