diff options
author | Alvaro Herrera | 2020-01-22 21:35:05 +0000 |
---|---|---|
committer | Alvaro Herrera | 2020-01-22 21:37:39 +0000 |
commit | 611ce856f5a862a291a05d148828208e1f4ed46b (patch) | |
tree | cf0380adb7cb556b3f12669c219048e470f66e94 | |
parent | 41c184bc642b25f67fb1d8ee290f28805fa5a0b4 (diff) |
Add BRIN test case
This test case was sketched in commit message 4c87010981f3 to explain an
ancient bug; it translates to a coverage increase, so add it to the BRIN
regression tests.
-rw-r--r-- | src/test/regress/expected/brin.out | 19 | ||||
-rw-r--r-- | src/test/regress/sql/brin.sql | 10 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/test/regress/expected/brin.out b/src/test/regress/expected/brin.out index ca80f00dc90..0b14c73fc64 100644 --- a/src/test/regress/expected/brin.out +++ b/src/test/regress/expected/brin.out @@ -483,6 +483,25 @@ SELECT brin_summarize_range('brin_summarize_idx', -1); ERROR: block number out of range: -1 SELECT brin_summarize_range('brin_summarize_idx', 4294967296); ERROR: block number out of range: 4294967296 +-- test value merging in add_value +CREATE TABLE brintest_2 (n numrange); +CREATE INDEX brinidx_2 ON brintest_2 USING brin (n); +INSERT INTO brintest_2 VALUES ('empty'); +INSERT INTO brintest_2 VALUES (numrange(0, 2^1000::numeric)); +INSERT INTO brintest_2 VALUES ('(-1, 0)'); +SELECT brin_desummarize_range('brinidx', 0); + brin_desummarize_range +------------------------ + +(1 row) + +SELECT brin_summarize_range('brinidx', 0); + brin_summarize_range +---------------------- + 1 +(1 row) + +DROP TABLE brintest_2; -- test brin cost estimates behave sanely based on correlation of values CREATE TABLE brin_test (a INT, b INT); INSERT INTO brin_test SELECT x/100,x%100 FROM generate_series(1,10000) x(x); diff --git a/src/test/regress/sql/brin.sql b/src/test/regress/sql/brin.sql index 11f8fe9bb32..1289e76ecb9 100644 --- a/src/test/regress/sql/brin.sql +++ b/src/test/regress/sql/brin.sql @@ -448,6 +448,16 @@ SELECT brin_summarize_range('brin_summarize_idx', 4294967295); SELECT brin_summarize_range('brin_summarize_idx', -1); SELECT brin_summarize_range('brin_summarize_idx', 4294967296); +-- test value merging in add_value +CREATE TABLE brintest_2 (n numrange); +CREATE INDEX brinidx_2 ON brintest_2 USING brin (n); +INSERT INTO brintest_2 VALUES ('empty'); +INSERT INTO brintest_2 VALUES (numrange(0, 2^1000::numeric)); +INSERT INTO brintest_2 VALUES ('(-1, 0)'); + +SELECT brin_desummarize_range('brinidx', 0); +SELECT brin_summarize_range('brinidx', 0); +DROP TABLE brintest_2; -- test brin cost estimates behave sanely based on correlation of values CREATE TABLE brin_test (a INT, b INT); |