mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 11:03:36 +08:00
We now use INT64_MAX and INT64_MIN as the max and min values for dimension_slice ranges. If a dimension_slice has a range_start of INT64_MIN or the range_end is INT64_MAX, we remove the corresponding check constraint on the chunk since it signifies that this end of the range is infinite. Closed ranges now always have INT64_MIN as range_end of first slice and range_end of INT64_MAX for the last slice. Also, points corresponding to INT64_MAX are always put in the same slice as INT64_MAX-1 to avoid problems with the semantics that coordinate < range_end.
50 lines
3.0 KiB
SQL
50 lines
3.0 KiB
SQL
\unset ECHO
|
|
\o /dev/null
|
|
\ir include/test_utils.sql
|
|
\o
|
|
\set ECHO errors
|
|
\set VERBOSITY default
|
|
|
|
\o /dev/null
|
|
|
|
--open
|
|
SELECT assert_equal(0::bigint, actual_range_start), assert_equal(10::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(0,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(0::bigint, actual_range_start), assert_equal(10::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(9,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(10::bigint, actual_range_start), assert_equal(20::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(10,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(-10::bigint, actual_range_start), assert_equal(0::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(-1,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(-10::bigint, actual_range_start), assert_equal(0::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(-10,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(-20::bigint, actual_range_start), assert_equal(-10::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(-11,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
--test that the ends are cut as needed to prevent overflow/undeflow.
|
|
SELECT assert_equal(-9223372036854775808, actual_range_start), assert_equal(-9223372036854775800::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(-9223372036854775808,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(-9223372036854775808, actual_range_start), assert_equal(-9223372036854775800::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(-9223372036854775807,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(9223372036854775800::bigint, actual_range_start), assert_equal(9223372036854775807::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(9223372036854775807,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(9223372036854775800::bigint, actual_range_start), assert_equal(9223372036854775807::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_open(9223372036854775806,10) AS res(actual_range_start, actual_range_end);
|
|
|
|
|
|
|
|
--closed
|
|
SELECT assert_equal((-9223372036854775808)::bigint, actual_range_start), assert_equal(1073741823::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_closed(0,2::smallint) AS res(actual_range_start, actual_range_end);
|
|
|
|
SELECT assert_equal(1073741823::bigint, actual_range_start), assert_equal(9223372036854775807::bigint, actual_range_end)
|
|
FROM _timescaledb_internal.dimension_calculate_default_range_closed(1073741824,2::smallint) AS res(actual_range_start, actual_range_end);
|