ClickHouse/tests/queries/0_stateless/01414_low_cardinality_nullable.sql
2024-02-13 17:56:20 +00:00

225 lines
9.5 KiB
SQL

SET allow_suspicious_low_cardinality_types=1;
DROP TABLE IF EXISTS lc_nullable;
CREATE TABLE lc_nullable (
order_key Array(LowCardinality(Nullable(UInt64))),
i8 Array(LowCardinality(Nullable(Int8))),
i16 Array(LowCardinality(Nullable(Int16))),
i32 Array(LowCardinality(Nullable(Int32))),
i64 Array(LowCardinality(Nullable(Int64))),
u8 Array(LowCardinality(Nullable(UInt8))),
u16 Array(LowCardinality(Nullable(UInt16))),
u32 Array(LowCardinality(Nullable(UInt32))),
u64 Array(LowCardinality(Nullable(UInt64))),
f32 Array(LowCardinality(Nullable(Float32))),
f64 Array(LowCardinality(Nullable(Float64))),
date Array(LowCardinality(Nullable(Date))),
date_time Array(LowCardinality(Nullable(DateTime('Asia/Istanbul')))),
str Array(LowCardinality(Nullable(String))),
fixed_string Array(LowCardinality(Nullable(FixedString(5))))
) ENGINE = MergeTree() ORDER BY order_key SETTINGS allow_nullable_key = 1;
INSERT INTO lc_nullable SELECT
groupArray(number) AS order_key,
groupArray(toInt8(number)) AS i8,
groupArray(toInt16(number)) AS i16,
groupArray(toInt32(number)) AS i32,
groupArray(toInt64(number)) AS i64,
groupArray(toUInt8(number)) AS u8,
groupArray(toUInt16(number)) AS u16,
groupArray(toUInt32(number)) AS u32,
groupArray(toUInt64(number)) AS u64,
groupArray(toFloat32(number)) AS f32,
groupArray(toFloat64(number)) AS f64,
groupArray(toDate(number, 'Asia/Istanbul')) AS date,
groupArray(toDateTime(number, 'Asia/Istanbul')) AS date_time,
groupArray(toString(number)) AS str,
groupArray(toFixedString(toString(number), 5)) AS fixed_string
FROM (SELECT number FROM system.numbers LIMIT 15);
INSERT INTO lc_nullable SELECT
groupArray(num) AS order_key,
groupArray(toInt8(num)) AS i8,
groupArray(toInt16(num)) AS i16,
groupArray(toInt32(num)) AS i32,
groupArray(toInt64(num)) AS i64,
groupArray(toUInt8(num)) AS u8,
groupArray(toUInt16(num)) AS u16,
groupArray(toUInt32(num)) AS u32,
groupArray(toUInt64(num)) AS u64,
groupArray(toFloat32(num)) AS f32,
groupArray(toFloat64(num)) AS f64,
groupArray(toDate(num, 'Asia/Istanbul')) AS date,
groupArray(toDateTime(num, 'Asia/Istanbul')) AS date_time,
groupArray(toString(num)) AS str,
groupArray(toFixedString(toString(num), 5)) AS fixed_string
FROM (SELECT negate(number) as num FROM system.numbers LIMIT 15);
INSERT INTO lc_nullable SELECT
groupArray(number) AS order_key,
groupArray(toInt8(number)) AS i8,
groupArray(toInt16(number)) AS i16,
groupArray(toInt32(number)) AS i32,
groupArray(toInt64(number)) AS i64,
groupArray(toUInt8(number)) AS u8,
groupArray(toUInt16(number)) AS u16,
groupArray(toUInt32(number)) AS u32,
groupArray(toUInt64(number)) AS u64,
groupArray(toFloat32(number)) AS f32,
groupArray(toFloat64(number)) AS f64,
groupArray(toDate(number, 'Asia/Istanbul')) AS date,
groupArray(toDateTime(number, 'Asia/Istanbul')) AS date_time,
groupArray(toString(number)) AS str,
groupArray(toFixedString(toString(number), 5)) AS fixed_string
FROM (SELECT number FROM system.numbers WHERE number >= 5 LIMIT 15);
INSERT INTO lc_nullable SELECT
groupArray(number) AS order_key,
groupArray(toInt8(number)) AS i8,
groupArray(toInt16(number)) AS i16,
groupArray(toInt32(number)) AS i32,
groupArray(toInt64(number)) AS i64,
groupArray(toUInt8(number)) AS u8,
groupArray(toUInt16(number)) AS u16,
groupArray(toUInt32(number)) AS u32,
groupArray(toUInt64(number)) AS u64,
groupArray(toFloat32(number)) AS f32,
groupArray(toFloat64(number)) AS f64,
groupArray(toDate(number, 'Asia/Istanbul')) AS date,
groupArray(toDateTime(number, 'Asia/Istanbul')) AS date_time,
groupArray(toString(number)) AS str,
groupArray(toFixedString(toString(number), 5)) AS fixed_string
FROM (SELECT number FROM system.numbers WHERE number >= 10 LIMIT 15);
INSERT INTO lc_nullable SELECT
n AS order_key,
n AS i8,
n AS i16,
n AS i32,
n AS i64,
n AS u8,
n AS u16,
n AS u32,
n AS u64,
n AS f32,
n AS f64,
n AS date,
n AS date_time,
n AS str,
n AS fixed_string
FROM (SELECT [NULL] AS n);
INSERT INTO lc_nullable SELECT
[NULL, n] AS order_key,
[NULL, toInt8(n)] AS i8,
[NULL, toInt16(n)] AS i16,
[NULL, toInt32(n)] AS i32,
[NULL, toInt64(n)] AS i64,
[NULL, toUInt8(n)] AS u8,
[NULL, toUInt16(n)] AS u16,
[NULL, toUInt32(n)] AS u32,
[NULL, toUInt64(n)] AS u64,
[NULL, toFloat32(n)] AS f32,
[NULL, toFloat64(n)] AS f64,
[NULL, toDate(n, 'Asia/Istanbul')] AS date,
[NULL, toDateTime(n, 'Asia/Istanbul')] AS date_time,
[NULL, toString(n)] AS str,
[NULL, toFixedString(toString(n), 5)] AS fixed_string
FROM (SELECT 100 as n);
SELECT count() FROM lc_nullable WHERE has(i8, 1);
SELECT count() FROM lc_nullable WHERE has(i16, 1);
SELECT count() FROM lc_nullable WHERE has(i32, 1);
SELECT count() FROM lc_nullable WHERE has(i64, 1);
SELECT count() FROM lc_nullable WHERE has(u8, 1);
SELECT count() FROM lc_nullable WHERE has(u16, 1);
SELECT count() FROM lc_nullable WHERE has(u32, 1);
SELECT count() FROM lc_nullable WHERE has(u64, 1);
SELECT count() FROM lc_nullable WHERE has(f32, 1);
SELECT count() FROM lc_nullable WHERE has(f64, 1);
SELECT count() FROM lc_nullable WHERE has(date, toDate('1970-01-02'));
SELECT count() FROM lc_nullable WHERE has(date_time, toDateTime('1970-01-01 02:00:01', 'Asia/Istanbul'));
SELECT count() FROM lc_nullable WHERE has(str, '1');
SELECT count() FROM lc_nullable WHERE has(fixed_string, toFixedString('1', 5));
SELECT count() FROM lc_nullable WHERE has(i8, -1);
SELECT count() FROM lc_nullable WHERE has(i16, -1);
SELECT count() FROM lc_nullable WHERE has(i32, -1);
SELECT count() FROM lc_nullable WHERE has(i64, -1);
SELECT count() FROM lc_nullable WHERE has(u8, -1);
SELECT count() FROM lc_nullable WHERE has(u16, -1);
SELECT count() FROM lc_nullable WHERE has(u32, -1);
SELECT count() FROM lc_nullable WHERE has(u64, -1);
SELECT count() FROM lc_nullable WHERE has(f32, -1);
SELECT count() FROM lc_nullable WHERE has(f64, -1);
SELECT count() FROM lc_nullable WHERE has(str, '-1');
SELECT count() FROM lc_nullable WHERE has(fixed_string, toFixedString('-1', 5));
SELECT count() FROM lc_nullable WHERE has(i8, 5);
SELECT count() FROM lc_nullable WHERE has(i16, 5);
SELECT count() FROM lc_nullable WHERE has(i32, 5);
SELECT count() FROM lc_nullable WHERE has(i64, 5);
SELECT count() FROM lc_nullable WHERE has(u8, 5);
SELECT count() FROM lc_nullable WHERE has(u16, 5);
SELECT count() FROM lc_nullable WHERE has(u32, 5);
SELECT count() FROM lc_nullable WHERE has(u64, 5);
SELECT count() FROM lc_nullable WHERE has(f32, 5);
SELECT count() FROM lc_nullable WHERE has(f64, 5);
SELECT count() FROM lc_nullable WHERE has(date, toDate('1970-01-06'));
SELECT count() FROM lc_nullable WHERE has(date_time, toDateTime('1970-01-01 02:00:05', 'Asia/Istanbul'));
SELECT count() FROM lc_nullable WHERE has(str, '5');
SELECT count() FROM lc_nullable WHERE has(fixed_string, toFixedString('5', 5));
SELECT count() FROM lc_nullable WHERE has(i8, 10);
SELECT count() FROM lc_nullable WHERE has(i16, 10);
SELECT count() FROM lc_nullable WHERE has(i32, 10);
SELECT count() FROM lc_nullable WHERE has(i64, 10);
SELECT count() FROM lc_nullable WHERE has(u8, 10);
SELECT count() FROM lc_nullable WHERE has(u16, 10);
SELECT count() FROM lc_nullable WHERE has(u32, 10);
SELECT count() FROM lc_nullable WHERE has(u64, 10);
SELECT count() FROM lc_nullable WHERE has(f32, 10);
SELECT count() FROM lc_nullable WHERE has(f64, 10);
SELECT count() FROM lc_nullable WHERE has(date, toDate('1970-01-11'));
SELECT count() FROM lc_nullable WHERE has(date_time, toDateTime('1970-01-01 02:00:10', 'Asia/Istanbul'));
SELECT count() FROM lc_nullable WHERE has(str, '10');
SELECT count() FROM lc_nullable WHERE has(fixed_string, toFixedString('10', 5));
SELECT count() FROM lc_nullable WHERE has(i8, NULL);
SELECT count() FROM lc_nullable WHERE has(i16, NULL);
SELECT count() FROM lc_nullable WHERE has(i32, NULL);
SELECT count() FROM lc_nullable WHERE has(i64, NULL);
SELECT count() FROM lc_nullable WHERE has(u8, NULL);
SELECT count() FROM lc_nullable WHERE has(u16, NULL);
SELECT count() FROM lc_nullable WHERE has(u32, NULL);
SELECT count() FROM lc_nullable WHERE has(u64, NULL);
SELECT count() FROM lc_nullable WHERE has(f32, NULL);
SELECT count() FROM lc_nullable WHERE has(f64, NULL);
SELECT count() FROM lc_nullable WHERE has(date, NULL);
SELECT count() FROM lc_nullable WHERE has(date_time, NULL);
SELECT count() FROM lc_nullable WHERE has(str, NULL);
SELECT count() FROM lc_nullable WHERE has(fixed_string, NULL);
SELECT count() FROM lc_nullable WHERE has(i8, 100);
SELECT count() FROM lc_nullable WHERE has(i16, 100);
SELECT count() FROM lc_nullable WHERE has(i32, 100);
SELECT count() FROM lc_nullable WHERE has(i64, 100);
SELECT count() FROM lc_nullable WHERE has(u8, 100);
SELECT count() FROM lc_nullable WHERE has(u16, 100);
SELECT count() FROM lc_nullable WHERE has(u32, 100);
SELECT count() FROM lc_nullable WHERE has(u64, 100);
SELECT count() FROM lc_nullable WHERE has(f32, 100);
SELECT count() FROM lc_nullable WHERE has(f64, 100);
SELECT count() FROM lc_nullable WHERE has(date, toDate('1970-04-11'));
SELECT count() FROM lc_nullable WHERE has(date_time, toDateTime('1970-01-01 02:01:40', 'Asia/Istanbul'));
SELECT count() FROM lc_nullable WHERE has(str, '100');
SELECT count() FROM lc_nullable WHERE has(fixed_string, toFixedString('100', 5));
SELECT count() FROM lc_nullable WHERE has(date, toDate(has(u64, 1), '1970-01\002'));
DROP TABLE IF EXISTS lc_nullable;