15670430创建于 2020年12月28日历史提交
set enable_vector_engine=on;
-- problem:
-- system function log2() has some defacts. when passed the special value 0x8000000000000002,
-- incorrect value is returned. we have to fix the returned value.
-- but we only concern how many bytes is used to hold the diff value, not exlcuding how many bits.
-- so rewrite function SetDeltaBitsAndBytes() and rename it
CREATE TABLE cstore_log2_error
(
	a int,
	b bigint
) with (orientation = column)  ;
COPY cstore_log2_error FROM '@abs_srcdir@/data/cstore_log2_error.data' delimiter '|';
SELECT * FROM cstore_log2_error ORDER BY 1, 2;
 a |          b           
---+----------------------
 1 | -9223372036854775808
 1 | -9223372036854775808
 1 | -9223372036854775808
 1 | -9223372036854775808
 1 | -9223372036854775808
 1 | -9223372036854775808
 1 | -9223372036854775808
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 | -9223372036854775807
 1 |                    3
 1 |                    3
 1 |                    3
 1 |                    3
 1 |  9223372036854775807
 1 |  9223372036854775807
 1 |  9223372036854775807
 1 |  9223372036854775807
 1 |  9223372036854775807
 1 |  9223372036854775807
 1 |  9223372036854775807
 1 |  9223372036854775807
(30 rows)

DROP TABLE cstore_log2_error;