2016-12-21 20:04:27 +00:00
#!/usr/bin/env bash
2015-05-12 04:55:14 +00:00
2017-12-15 19:34:19 +00:00
CURDIR = $( cd " $( dirname " ${ BASH_SOURCE [0] } " ) " && pwd )
. $CURDIR /../shell_config.sh
2015-05-12 04:55:14 +00:00
function create {
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT --query= "DROP TABLE IF EXISTS summing"
$CLICKHOUSE_CLIENT --query= "DROP TABLE IF EXISTS collapsing"
$CLICKHOUSE_CLIENT --query= "DROP TABLE IF EXISTS aggregating"
$CLICKHOUSE_CLIENT --query= "DROP TABLE IF EXISTS replacing"
$CLICKHOUSE_CLIENT --query= "CREATE TABLE summing (d Date DEFAULT today(), x UInt64, s UInt64 DEFAULT 1) ENGINE = SummingMergeTree(d, x, 8192)"
$CLICKHOUSE_CLIENT --query= "CREATE TABLE collapsing (d Date DEFAULT today(), x UInt64, s Int8 DEFAULT 1) ENGINE = CollapsingMergeTree(d, x, 8192, s)"
$CLICKHOUSE_CLIENT --query= "CREATE TABLE aggregating (d Date DEFAULT today(), x UInt64, s AggregateFunction(sum, UInt64)) ENGINE = AggregatingMergeTree(d, x, 8192)"
$CLICKHOUSE_CLIENT --query= "CREATE TABLE replacing (d Date DEFAULT today(), x UInt64, s Int8 DEFAULT 1, v UInt64) ENGINE = ReplacingMergeTree(d, (x), 8192, v)"
2015-05-12 04:55:14 +00:00
}
function cleanup {
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT --query= "DROP TABLE summing"
$CLICKHOUSE_CLIENT --query= "DROP TABLE collapsing"
$CLICKHOUSE_CLIENT --query= "DROP TABLE aggregating"
$CLICKHOUSE_CLIENT --query= "DROP TABLE replacing"
2015-05-12 04:55:14 +00:00
}
function test {
2017-04-05 11:52:23 +00:00
create
2016-08-13 05:06:36 +00:00
2017-04-05 11:52:23 +00:00
SUM = $(( $1 + $2 ))
MAX = $(( $1 > $2 ? $1 : $2 ))
2015-05-12 04:55:14 +00:00
2017-04-05 11:52:23 +00:00
SETTINGS = "--min_insert_block_size_rows=0 --min_insert_block_size_bytes=0"
2016-08-13 05:06:36 +00:00
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT $SETTINGS --query= " INSERT INTO summing (x) SELECT number AS x FROM system.numbers LIMIT $1 "
$CLICKHOUSE_CLIENT $SETTINGS --query= " INSERT INTO summing (x) SELECT number AS x FROM system.numbers LIMIT $2 "
2015-05-12 04:55:14 +00:00
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT $SETTINGS --query= " INSERT INTO collapsing (x) SELECT number AS x FROM system.numbers LIMIT $1 "
$CLICKHOUSE_CLIENT $SETTINGS --query= " INSERT INTO collapsing (x) SELECT number AS x FROM system.numbers LIMIT $2 "
2015-05-12 04:55:14 +00:00
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT $SETTINGS --query= " INSERT INTO aggregating (d, x, s) SELECT today() AS d, number AS x, sumState(materialize(toUInt64(1))) AS s FROM (SELECT number FROM system.numbers LIMIT $1 ) GROUP BY number "
$CLICKHOUSE_CLIENT $SETTINGS --query= " INSERT INTO aggregating (d, x, s) SELECT today() AS d, number AS x, sumState(materialize(toUInt64(1))) AS s FROM (SELECT number FROM system.numbers LIMIT $2 ) GROUP BY number "
2015-05-12 04:55:14 +00:00
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT $SETTINGS --query= " INSERT INTO replacing (x, v) SELECT number AS x, toUInt64(number % 3 == 0) FROM system.numbers LIMIT $1 "
$CLICKHOUSE_CLIENT $SETTINGS --query= " INSERT INTO replacing (x, v) SELECT number AS x, toUInt64(number % 3 == 1) FROM system.numbers LIMIT $2 "
2017-07-17 19:45:16 +00:00
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT --query= " SELECT count() = $SUM , sum(s) = $SUM FROM summing "
$CLICKHOUSE_CLIENT --query= "OPTIMIZE TABLE summing"
$CLICKHOUSE_CLIENT --query= " SELECT count() = $MAX , sum(s) = $SUM FROM summing "
2017-04-05 11:52:23 +00:00
echo
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT --query= " SELECT count() = $SUM , sum(s) = $SUM FROM collapsing "
$CLICKHOUSE_CLIENT --query= "OPTIMIZE TABLE collapsing" --server_logs_file= '/dev/null' ;
$CLICKHOUSE_CLIENT --query= " SELECT count() = $MAX , sum(s) = $MAX FROM collapsing "
2017-04-05 11:52:23 +00:00
echo
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT --query= " SELECT count() = $SUM , sumMerge(s) = $SUM FROM aggregating "
$CLICKHOUSE_CLIENT --query= "OPTIMIZE TABLE aggregating"
$CLICKHOUSE_CLIENT --query= " SELECT count() = $MAX , sumMerge(s) = $SUM FROM aggregating "
2017-04-05 11:52:23 +00:00
echo
2019-04-16 14:13:13 +00:00
$CLICKHOUSE_CLIENT --query= " SELECT count() = $SUM , sum(s) = $SUM FROM replacing "
$CLICKHOUSE_CLIENT --query= "OPTIMIZE TABLE replacing"
$CLICKHOUSE_CLIENT --query= " SELECT count() = $MAX , sum(s) = $MAX FROM replacing "
$CLICKHOUSE_CLIENT --query= " SELECT count() = sum(v) FROM replacing where x % 3 == 0 and x < $1 "
$CLICKHOUSE_CLIENT --query= " SELECT count() = sum(v) FROM replacing where x % 3 == 1 and x < $2 "
$CLICKHOUSE_CLIENT --query= "SELECT sum(v) = 0 FROM replacing where x % 3 == 2"
2017-07-17 19:45:16 +00:00
echo
2017-04-05 11:52:23 +00:00
echo
2015-05-12 04:55:14 +00:00
}
2017-12-15 19:34:19 +00:00
merged_rows_0 = ` $CLICKHOUSE_CLIENT -q "select value from system.events where event = 'MergedRows'" `
2017-09-14 13:56:54 +00:00
2015-05-12 04:55:14 +00:00
test 8191 8191
test 8191 8192
test 8192 8191
test 8192 8192
test 8192 8193
test 8193 8192
test 8193 8193
test 8191 8193
test 8193 8191
test 8193 8194
test 8194 8193
test 8194 8194
2017-12-15 19:34:19 +00:00
merged_rows_1 = ` $CLICKHOUSE_CLIENT -q "select value from system.events where event = 'MergedRows'" `
2017-09-14 13:56:54 +00:00
[ [ $merged_rows_1 -le $merged_rows_0 ] ]
2015-05-12 04:55:14 +00:00
cleanup