Fixes for parallel test run (#5506)

This commit is contained in:
proller 2019-06-03 20:36:27 +03:00 committed by GitHub
parent f70eed78d8
commit 88f3a48afa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
100 changed files with 1902 additions and 1895 deletions

View File

@ -19,7 +19,7 @@ from errno import ESRCH
import termcolor
from random import random
import commands
from multiprocessing import Pool
import multiprocessing
from contextlib import closing
@ -369,6 +369,8 @@ def main(args):
continue
jobs = args.jobs
if jobs > tests_n:
jobs = tests_n
if jobs > run_total:
run_total = jobs
@ -379,7 +381,7 @@ def main(args):
all_tests_array.append([all_tests[start : end], suite, suite_dir, suite_tmp_dir, run_total])
if jobs > 1:
with closing(Pool(processes=jobs)) as pool:
with closing(multiprocessing.Pool(processes=jobs)) as pool:
pool.map(run_tests_array, all_tests_array)
pool.terminate()
else:
@ -432,7 +434,7 @@ if __name__ == '__main__':
parser.add_argument('--force-color', action='store_true', default=False)
parser.add_argument('--database', default='test', help='Default database for tests')
parser.add_argument('--parallel', default='1/1', help='One parallel test run number/total')
parser.add_argument('-j', '--jobs', default=1, help='Run all tests in parallel', type=int)
parser.add_argument('-j', '--jobs', default=1, help='Run all tests in parallel', type=int) # default=multiprocessing.cpu_count()
parser.add_argument('--no-stateless', action='store_true', help='Disable all stateless tests')
parser.add_argument('--no-stateful', action='store_true', help='Disable all stateful tests')

View File

@ -1,14 +1,14 @@
d Date
k UInt64
i32 Int32
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32) ENGINE = MergeTree(d, k, 8192)
2015-01-01 10 42
d Date
k UInt64
i32 Int32
n.ui8 Array(UInt8)
n.s Array(String)
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String)) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String)) ENGINE = MergeTree(d, k, 8192)
2015-01-01 8 40 [1,2,3] ['12','13','14']
2015-01-01 10 42 [] []
d Date
@ -17,7 +17,7 @@ i32 Int32
n.ui8 Array(UInt8)
n.s Array(String)
n.d Array(Date)
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String), `n.d` Array(Date)) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String), `n.d` Array(Date)) ENGINE = MergeTree(d, k, 8192)
2015-01-01 7 39 [10,20,30] ['120','130','140'] ['2000-01-01','2000-01-01','2000-01-03']
2015-01-01 8 40 [1,2,3] ['12','13','14'] ['0000-00-00','0000-00-00','0000-00-00']
2015-01-01 10 42 [] [] []
@ -28,7 +28,7 @@ n.ui8 Array(UInt8)
n.s Array(String)
n.d Array(Date)
s String DEFAULT \'0\'
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String), `n.d` Array(Date), `s` String DEFAULT \'0\') ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String), `n.d` Array(Date), `s` String DEFAULT \'0\') ENGINE = MergeTree(d, k, 8192)
2015-01-01 6 38 [10,20,30] ['asd','qwe','qwe'] ['2000-01-01','2000-01-01','2000-01-03'] 100500
2015-01-01 7 39 [10,20,30] ['120','130','140'] ['2000-01-01','2000-01-01','2000-01-03'] 0
2015-01-01 8 40 [1,2,3] ['12','13','14'] ['0000-00-00','0000-00-00','0000-00-00'] 0
@ -39,7 +39,7 @@ i32 Int32
n.ui8 Array(UInt8)
n.s Array(String)
s Int64
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String), `s` Int64) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String), `s` Int64) ENGINE = MergeTree(d, k, 8192)
2015-01-01 6 38 [10,20,30] ['asd','qwe','qwe'] 100500
2015-01-01 7 39 [10,20,30] ['120','130','140'] 0
2015-01-01 8 40 [1,2,3] ['12','13','14'] 0
@ -51,7 +51,7 @@ n.ui8 Array(UInt8)
n.s Array(String)
s UInt32
n.d Array(Date)
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String), `s` UInt32, `n.d` Array(Date)) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `n.ui8` Array(UInt8), `n.s` Array(String), `s` UInt32, `n.d` Array(Date)) ENGINE = MergeTree(d, k, 8192)
2015-01-01 6 38 [10,20,30] ['asd','qwe','qwe'] 100500 ['0000-00-00','0000-00-00','0000-00-00']
2015-01-01 7 39 [10,20,30] ['120','130','140'] 0 ['0000-00-00','0000-00-00','0000-00-00']
2015-01-01 8 40 [1,2,3] ['12','13','14'] 0 ['0000-00-00','0000-00-00','0000-00-00']
@ -65,7 +65,7 @@ k UInt64
i32 Int32
n.s Array(String)
s UInt32
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `n.s` Array(String), `s` UInt32) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `n.s` Array(String), `s` UInt32) ENGINE = MergeTree(d, k, 8192)
2015-01-01 6 38 ['asd','qwe','qwe'] 100500
2015-01-01 7 39 ['120','130','140'] 0
2015-01-01 8 40 ['12','13','14'] 0
@ -74,7 +74,7 @@ d Date
k UInt64
i32 Int32
s UInt32
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `s` UInt32) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `s` UInt32) ENGINE = MergeTree(d, k, 8192)
2015-01-01 6 38 100500
2015-01-01 7 39 0
2015-01-01 8 40 0
@ -85,7 +85,7 @@ i32 Int32
s UInt32
n.s Array(String)
n.d Array(Date)
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `s` UInt32, `n.s` Array(String), `n.d` Array(Date)) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `s` UInt32, `n.s` Array(String), `n.d` Array(Date)) ENGINE = MergeTree(d, k, 8192)
2015-01-01 6 38 100500 [] []
2015-01-01 7 39 0 [] []
2015-01-01 8 40 0 [] []
@ -94,7 +94,7 @@ d Date
k UInt64
i32 Int32
s UInt32
CREATE TABLE test.alter (`d` Date, `k` UInt64, `i32` Int32, `s` UInt32) ENGINE = MergeTree(d, k, 8192)
CREATE TABLE test.alter_00061 (`d` Date, `k` UInt64, `i32` Int32, `s` UInt32) ENGINE = MergeTree(d, k, 8192)
2015-01-01 6 38 100500
2015-01-01 7 39 0
2015-01-01 8 40 0

View File

@ -1,71 +1,71 @@
DROP TABLE IF EXISTS test.alter;
CREATE TABLE test.alter (d Date, k UInt64, i32 Int32) ENGINE=MergeTree(d, k, 8192);
DROP TABLE IF EXISTS test.alter_00061;
CREATE TABLE test.alter_00061 (d Date, k UInt64, i32 Int32) ENGINE=MergeTree(d, k, 8192);
INSERT INTO test.alter VALUES ('2015-01-01', 10, 42);
INSERT INTO test.alter_00061 VALUES ('2015-01-01', 10, 42);
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter ADD COLUMN n Nested(ui8 UInt8, s String);
INSERT INTO test.alter VALUES ('2015-01-01', 8, 40, [1,2,3], ['12','13','14']);
ALTER TABLE test.alter_00061 ADD COLUMN n Nested(ui8 UInt8, s String);
INSERT INTO test.alter_00061 VALUES ('2015-01-01', 8, 40, [1,2,3], ['12','13','14']);
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter ADD COLUMN `n.d` Array(Date);
INSERT INTO test.alter VALUES ('2015-01-01', 7, 39, [10,20,30], ['120','130','140'],['2000-01-01','2000-01-01','2000-01-03']);
ALTER TABLE test.alter_00061 ADD COLUMN `n.d` Array(Date);
INSERT INTO test.alter_00061 VALUES ('2015-01-01', 7, 39, [10,20,30], ['120','130','140'],['2000-01-01','2000-01-01','2000-01-03']);
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter ADD COLUMN s String DEFAULT '0';
INSERT INTO test.alter VALUES ('2015-01-01', 6,38,[10,20,30],['asd','qwe','qwe'],['2000-01-01','2000-01-01','2000-01-03'],'100500');
ALTER TABLE test.alter_00061 ADD COLUMN s String DEFAULT '0';
INSERT INTO test.alter_00061 VALUES ('2015-01-01', 6,38,[10,20,30],['asd','qwe','qwe'],['2000-01-01','2000-01-01','2000-01-03'],'100500');
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter DROP COLUMN `n.d`, MODIFY COLUMN s Int64;
ALTER TABLE test.alter_00061 DROP COLUMN `n.d`, MODIFY COLUMN s Int64;
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter ADD COLUMN `n.d` Array(Date), MODIFY COLUMN s UInt32;
ALTER TABLE test.alter_00061 ADD COLUMN `n.d` Array(Date), MODIFY COLUMN s UInt32;
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
OPTIMIZE TABLE test.alter;
OPTIMIZE TABLE test.alter_00061;
SELECT * FROM test.alter ORDER BY k;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter DROP COLUMN n.ui8, DROP COLUMN n.d;
ALTER TABLE test.alter_00061 DROP COLUMN n.ui8, DROP COLUMN n.d;
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter DROP COLUMN n.s;
ALTER TABLE test.alter_00061 DROP COLUMN n.s;
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter ADD COLUMN n.s Array(String), ADD COLUMN n.d Array(Date);
ALTER TABLE test.alter_00061 ADD COLUMN n.s Array(String), ADD COLUMN n.d Array(Date);
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
ALTER TABLE test.alter DROP COLUMN n;
ALTER TABLE test.alter_00061 DROP COLUMN n;
DESC TABLE test.alter;
SHOW CREATE TABLE test.alter;
SELECT * FROM test.alter ORDER BY k;
DESC TABLE test.alter_00061;
SHOW CREATE TABLE test.alter_00061;
SELECT * FROM test.alter_00061 ORDER BY k;
DROP TABLE test.alter;
DROP TABLE test.alter_00061;

View File

@ -3,4 +3,4 @@
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
[ "$NO_SHELL_CONFIG" ] || . $CURDIR/../shell_config.sh
seq 1 1000 | sed -r 's/.+/CREATE TABLE IF NOT EXISTS test.buf (a UInt8) ENGINE = Buffer(test, b, 1, 1, 1, 1, 1, 1, 1); DROP TABLE test.buf;/' | $CLICKHOUSE_CLIENT -n
seq 1 1000 | sed -r 's/.+/CREATE TABLE IF NOT EXISTS buf_00097 (a UInt8) ENGINE = Buffer(currentDatabase(), b, 1, 1, 1, 1, 1, 1, 1); DROP TABLE buf_00097;/' | $CLICKHOUSE_CLIENT -n

View File

@ -1,10 +1,10 @@
DROP TABLE IF EXISTS null;
CREATE TABLE null (a Array(UInt64), b Array(String), c Array(Array(Date))) ENGINE = Memory;
DROP TABLE IF EXISTS null_00117;
CREATE TABLE null_00117 (a Array(UInt64), b Array(String), c Array(Array(Date))) ENGINE = Memory;
INSERT INTO null (a) VALUES ([1,2]), ([3, 4]), ([ 5 ,6]), ([ 7 , 8 ]), ([]), ([ ]);
INSERT INTO null (b) VALUES ([ 'Hello' , 'World' ]);
INSERT INTO null (c) VALUES ([ ]), ([ [ ] ]), ([[],[]]), ([['2015-01-01', '2015-01-02'], ['2015-01-03', '2015-01-04']]);
INSERT INTO null_00117 (a) VALUES ([1,2]), ([3, 4]), ([ 5 ,6]), ([ 7 , 8 ]), ([]), ([ ]);
INSERT INTO null_00117 (b) VALUES ([ 'Hello' , 'World' ]);
INSERT INTO null_00117 (c) VALUES ([ ]), ([ [ ] ]), ([[],[]]), ([['2015-01-01', '2015-01-02'], ['2015-01-03', '2015-01-04']]);
SELECT a, b, c FROM null ORDER BY a, b, c;
SELECT a, b, c FROM null_00117 ORDER BY a, b, c;
DROP TABLE null;
DROP TABLE null_00117;

View File

@ -1,27 +1,27 @@
DROP TABLE IF EXISTS alter;
CREATE TABLE alter (d Date, x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/alter', 'r1', d, (d), 8192);
DROP TABLE IF EXISTS alter_00121;
CREATE TABLE alter_00121 (d Date, x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/alter_00121', 'r1', d, (d), 8192);
INSERT INTO alter VALUES ('2014-01-01', 1);
ALTER TABLE alter DROP COLUMN x;
INSERT INTO alter_00121 VALUES ('2014-01-01', 1);
ALTER TABLE alter_00121 DROP COLUMN x;
SELECT value FROM system.zookeeper WHERE path = '/clickhouse/tables/test/alter/replicas/r1/parts/20140101_20140101_0_0_0' AND name = 'columns' FORMAT TabSeparatedRaw;
SELECT value FROM system.zookeeper WHERE path = '/clickhouse/tables/test/alter_00121/replicas/r1/parts/20140101_20140101_0_0_0' AND name = 'columns' FORMAT TabSeparatedRaw;
DROP TABLE alter;
DROP TABLE alter_00121;
CREATE TABLE alter (d Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/alter', 'r1', d, (d), 8192);
CREATE TABLE alter_00121 (d Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/alter_00121', 'r1', d, (d), 8192);
INSERT INTO alter VALUES ('2014-01-01');
SELECT * FROM alter ORDER BY d;
INSERT INTO alter_00121 VALUES ('2014-01-01');
SELECT * FROM alter_00121 ORDER BY d;
ALTER TABLE alter ADD COLUMN x UInt8;
ALTER TABLE alter_00121 ADD COLUMN x UInt8;
INSERT INTO alter VALUES ('2014-02-01', 1);
SELECT * FROM alter ORDER BY d;
INSERT INTO alter_00121 VALUES ('2014-02-01', 1);
SELECT * FROM alter_00121 ORDER BY d;
ALTER TABLE alter DROP COLUMN x;
SELECT * FROM alter ORDER BY d;
ALTER TABLE alter_00121 DROP COLUMN x;
SELECT * FROM alter_00121 ORDER BY d;
SELECT value FROM system.zookeeper WHERE path = '/clickhouse/tables/test/alter/replicas/r1/parts/20140201_20140201_0_0_0' AND name = 'columns' FORMAT TabSeparatedRaw;
SELECT value FROM system.zookeeper WHERE path = '/clickhouse/tables/test/alter_00121/replicas/r1/parts/20140201_20140201_0_0_0' AND name = 'columns' FORMAT TabSeparatedRaw;
DROP TABLE alter;
DROP TABLE alter_00121;

View File

@ -1,29 +1,29 @@
DROP TABLE IF EXISTS alter;
DROP TABLE IF EXISTS alter_00147;
CREATE TABLE alter (d Date DEFAULT toDate('2015-01-01'), n Nested(x String)) ENGINE = MergeTree(d, d, 8192);
CREATE TABLE alter_00147 (d Date DEFAULT toDate('2015-01-01'), n Nested(x String)) ENGINE = MergeTree(d, d, 8192);
INSERT INTO alter (`n.x`) VALUES (['Hello', 'World']);
INSERT INTO alter_00147 (`n.x`) VALUES (['Hello', 'World']);
SELECT * FROM alter;
SELECT * FROM alter ARRAY JOIN n;
SELECT * FROM alter ARRAY JOIN n WHERE n.x LIKE '%Hello%';
SELECT * FROM alter_00147;
SELECT * FROM alter_00147 ARRAY JOIN n;
SELECT * FROM alter_00147 ARRAY JOIN n WHERE n.x LIKE '%Hello%';
ALTER TABLE alter ADD COLUMN n.y Array(UInt64);
ALTER TABLE alter_00147 ADD COLUMN n.y Array(UInt64);
SELECT * FROM alter;
SELECT * FROM alter ARRAY JOIN n;
SELECT * FROM alter ARRAY JOIN n WHERE n.x LIKE '%Hello%';
SELECT * FROM alter_00147;
SELECT * FROM alter_00147 ARRAY JOIN n;
SELECT * FROM alter_00147 ARRAY JOIN n WHERE n.x LIKE '%Hello%';
INSERT INTO alter (`n.x`) VALUES (['Hello2', 'World2']);
INSERT INTO alter_00147 (`n.x`) VALUES (['Hello2', 'World2']);
SELECT * FROM alter ORDER BY n.x;
SELECT * FROM alter ARRAY JOIN n ORDER BY n.x;
SELECT * FROM alter ARRAY JOIN n WHERE n.x LIKE '%Hello%' ORDER BY n.x;
SELECT * FROM alter_00147 ORDER BY n.x;
SELECT * FROM alter_00147 ARRAY JOIN n ORDER BY n.x;
SELECT * FROM alter_00147 ARRAY JOIN n WHERE n.x LIKE '%Hello%' ORDER BY n.x;
OPTIMIZE TABLE alter;
OPTIMIZE TABLE alter_00147;
SELECT * FROM alter;
SELECT * FROM alter ARRAY JOIN n;
SELECT * FROM alter ARRAY JOIN n WHERE n.x LIKE '%Hello%';
SELECT * FROM alter_00147;
SELECT * FROM alter_00147 ARRAY JOIN n;
SELECT * FROM alter_00147 ARRAY JOIN n WHERE n.x LIKE '%Hello%';
DROP TABLE alter;
DROP TABLE alter_00147;

View File

@ -4,23 +4,23 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
. $CURDIR/../shell_config.sh
function create {
$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="DROP TABLE IF EXISTS summing_00155"
$CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS collapsing_00155"
$CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS aggregating_00155"
$CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS replacing_00155"
$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)"
$CLICKHOUSE_CLIENT --query="CREATE TABLE summing_00155 (d Date DEFAULT today(), x UInt64, s UInt64 DEFAULT 1) ENGINE = SummingMergeTree(d, x, 8192)"
$CLICKHOUSE_CLIENT --query="CREATE TABLE collapsing_00155 (d Date DEFAULT today(), x UInt64, s Int8 DEFAULT 1) ENGINE = CollapsingMergeTree(d, x, 8192, s)"
$CLICKHOUSE_CLIENT --query="CREATE TABLE aggregating_00155 (d Date DEFAULT today(), x UInt64, s AggregateFunction(sum, UInt64)) ENGINE = AggregatingMergeTree(d, x, 8192)"
$CLICKHOUSE_CLIENT --query="CREATE TABLE replacing_00155 (d Date DEFAULT today(), x UInt64, s Int8 DEFAULT 1, v UInt64) ENGINE = ReplacingMergeTree(d, (x), 8192, v)"
}
function cleanup {
$CLICKHOUSE_CLIENT --query="DROP TABLE summing"
$CLICKHOUSE_CLIENT --query="DROP TABLE collapsing"
$CLICKHOUSE_CLIENT --query="DROP TABLE aggregating"
$CLICKHOUSE_CLIENT --query="DROP TABLE replacing"
$CLICKHOUSE_CLIENT --query="DROP TABLE summing_00155"
$CLICKHOUSE_CLIENT --query="DROP TABLE collapsing_00155"
$CLICKHOUSE_CLIENT --query="DROP TABLE aggregating_00155"
$CLICKHOUSE_CLIENT --query="DROP TABLE replacing_00155"
}
@ -32,36 +32,36 @@ function test {
SETTINGS="--min_insert_block_size_rows=0 --min_insert_block_size_bytes=0"
$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"
$CLICKHOUSE_CLIENT $SETTINGS --query="INSERT INTO summing_00155 (x) SELECT number AS x FROM system.numbers LIMIT $1"
$CLICKHOUSE_CLIENT $SETTINGS --query="INSERT INTO summing_00155 (x) SELECT number AS x FROM system.numbers LIMIT $2"
$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"
$CLICKHOUSE_CLIENT $SETTINGS --query="INSERT INTO collapsing_00155 (x) SELECT number AS x FROM system.numbers LIMIT $1"
$CLICKHOUSE_CLIENT $SETTINGS --query="INSERT INTO collapsing_00155 (x) SELECT number AS x FROM system.numbers LIMIT $2"
$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"
$CLICKHOUSE_CLIENT $SETTINGS --query="INSERT INTO aggregating_00155 (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_00155 (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"
$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"
$CLICKHOUSE_CLIENT $SETTINGS --query="INSERT INTO replacing_00155 (x, v) SELECT number AS x, toUInt64(number % 3 == 0) FROM system.numbers LIMIT $1"
$CLICKHOUSE_CLIENT $SETTINGS --query="INSERT INTO replacing_00155 (x, v) SELECT number AS x, toUInt64(number % 3 == 1) FROM system.numbers LIMIT $2"
$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"
$CLICKHOUSE_CLIENT --query="SELECT count() = $SUM, sum(s) = $SUM FROM summing_00155"
$CLICKHOUSE_CLIENT --query="OPTIMIZE TABLE summing_00155"
$CLICKHOUSE_CLIENT --query="SELECT count() = $MAX, sum(s) = $SUM FROM summing_00155"
echo
$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"
$CLICKHOUSE_CLIENT --query="SELECT count() = $SUM, sum(s) = $SUM FROM collapsing_00155"
$CLICKHOUSE_CLIENT --query="OPTIMIZE TABLE collapsing_00155" --server_logs_file='/dev/null';
$CLICKHOUSE_CLIENT --query="SELECT count() = $MAX, sum(s) = $MAX FROM collapsing_00155"
echo
$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"
$CLICKHOUSE_CLIENT --query="SELECT count() = $SUM, sumMerge(s) = $SUM FROM aggregating_00155"
$CLICKHOUSE_CLIENT --query="OPTIMIZE TABLE aggregating_00155"
$CLICKHOUSE_CLIENT --query="SELECT count() = $MAX, sumMerge(s) = $SUM FROM aggregating_00155"
echo
$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"
$CLICKHOUSE_CLIENT --query="SELECT count() = $SUM, sum(s) = $SUM FROM replacing_00155"
$CLICKHOUSE_CLIENT --query="OPTIMIZE TABLE replacing_00155"
$CLICKHOUSE_CLIENT --query="SELECT count() = $MAX, sum(s) = $MAX FROM replacing_00155"
$CLICKHOUSE_CLIENT --query="SELECT count() = sum(v) FROM replacing_00155 where x % 3 == 0 and x < $1"
$CLICKHOUSE_CLIENT --query="SELECT count() = sum(v) FROM replacing_00155 where x % 3 == 1 and x < $2"
$CLICKHOUSE_CLIENT --query="SELECT sum(v) = 0 FROM replacing_00155 where x % 3 == 2"
echo
echo
}

View File

@ -1,14 +1,14 @@
DROP TABLE IF EXISTS aggregating;
CREATE TABLE aggregating (d Date DEFAULT '2000-01-01', k UInt64, u AggregateFunction(uniq, UInt64)) ENGINE = AggregatingMergeTree(d, k, 8192);
DROP TABLE IF EXISTS aggregating_00191;
CREATE TABLE aggregating_00191 (d Date DEFAULT '2000-01-01', k UInt64, u AggregateFunction(uniq, UInt64)) ENGINE = AggregatingMergeTree(d, k, 8192);
INSERT INTO aggregating (k, u) SELECT intDiv(number, 100) AS k, uniqState(toUInt64(number % 100)) AS u FROM (SELECT * FROM system.numbers LIMIT 1000) GROUP BY k;
INSERT INTO aggregating (k, u) SELECT intDiv(number, 100) AS k, uniqState(toUInt64(number % 100) + 50) AS u FROM (SELECT * FROM system.numbers LIMIT 500, 1000) GROUP BY k;
INSERT INTO aggregating_00191 (k, u) SELECT intDiv(number, 100) AS k, uniqState(toUInt64(number % 100)) AS u FROM (SELECT * FROM system.numbers LIMIT 1000) GROUP BY k;
INSERT INTO aggregating_00191 (k, u) SELECT intDiv(number, 100) AS k, uniqState(toUInt64(number % 100) + 50) AS u FROM (SELECT * FROM system.numbers LIMIT 500, 1000) GROUP BY k;
SELECT k, finalizeAggregation(u) FROM aggregating FINAL;
SELECT k, finalizeAggregation(u) FROM aggregating_00191 FINAL;
OPTIMIZE TABLE aggregating;
OPTIMIZE TABLE aggregating_00191;
SELECT k, finalizeAggregation(u) FROM aggregating;
SELECT k, finalizeAggregation(u) FROM aggregating FINAL;
SELECT k, finalizeAggregation(u) FROM aggregating_00191;
SELECT k, finalizeAggregation(u) FROM aggregating_00191 FINAL;
DROP TABLE aggregating;
DROP TABLE aggregating_00191;

View File

@ -10,15 +10,15 @@ SELECT k, y FROM (SELECT arrayJoin([1, 2, 3]) AS k, 'Hello' AS x) ANY RIGHT JOIN
SELECT x, y FROM (SELECT arrayJoin([1, 2, 3]) AS k, 'Hello' AS x) ANY RIGHT JOIN (SELECT range(k) AS y, arrayJoin([3, 4, 5]) AS k) USING k WHERE k < 10 ORDER BY k;
SELECT k FROM (SELECT arrayJoin([1, 2, 3]) AS k, 'Hello' AS x) ANY RIGHT JOIN (SELECT range(k) AS y, arrayJoin([3, 4, 5]) AS k) USING k WHERE k < 10 ORDER BY k;
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP TABLE IF EXISTS t1_00203;
DROP TABLE IF EXISTS t2_00203;
CREATE TABLE t1 (k1 UInt32, k2 UInt32, k3 UInt32, val_t1 String) ENGINE=TinyLog;
CREATE TABLE t2 (val_t2 String, k3 UInt32, k2_alias UInt32, k1 UInt32) ENGINE=TinyLog;
CREATE TABLE t1_00203 (k1 UInt32, k2 UInt32, k3 UInt32, val_t1 String) ENGINE=TinyLog;
CREATE TABLE t2_00203 (val_t2 String, k3 UInt32, k2_alias UInt32, k1 UInt32) ENGINE=TinyLog;
INSERT INTO t1 VALUES (1, 2, 3, 'aaa'), (2, 3, 4, 'bbb');
INSERT INTO t2 VALUES ('ccc', 4, 3, 2), ('ddd', 7, 6, 5);
INSERT INTO t1_00203 VALUES (1, 2, 3, 'aaa'), (2, 3, 4, 'bbb');
INSERT INTO t2_00203 VALUES ('ccc', 4, 3, 2), ('ddd', 7, 6, 5);
SELECT k1, k2, k3, val_t1, val_t2 FROM t1 ANY FULL JOIN t2 USING (k3, k1, k2 AS k2_alias) ORDER BY k1, k2, k3;
SELECT k1, k2, k3, val_t1, val_t2 FROM t1_00203 ANY FULL JOIN t2_00203 USING (k3, k1, k2 AS k2_alias) ORDER BY k1, k2, k3;
SELECT k1, k2, k3, val_t1, val_t2 FROM t1 ANY RIGHT JOIN t2 USING (k3, k1, k2 AS k2_alias) ORDER BY k1, k2, k3;
SELECT k1, k2, k3, val_t1, val_t2 FROM t1_00203 ANY RIGHT JOIN t2_00203 USING (k3, k1, k2 AS k2_alias) ORDER BY k1, k2, k3;

View File

@ -1,11 +1,11 @@
DROP TABLE IF EXISTS test;
CREATE TABLE test (x UInt8) ENGINE = Log;
DROP TABLE IF EXISTS test_00209;
CREATE TABLE test_00209 (x UInt8) ENGINE = Log;
INSERT INTO test SELECT 1 AS x;
INSERT INTO test SELECT 1 AS x SETTINGS extremes = 1;
INSERT INTO test SELECT 1 AS x GROUP BY 1 WITH TOTALS;
INSERT INTO test SELECT 1 AS x GROUP BY 1 WITH TOTALS SETTINGS extremes = 1;
INSERT INTO test_00209 SELECT 1 AS x;
INSERT INTO test_00209 SELECT 1 AS x SETTINGS extremes = 1;
INSERT INTO test_00209 SELECT 1 AS x GROUP BY 1 WITH TOTALS;
INSERT INTO test_00209 SELECT 1 AS x GROUP BY 1 WITH TOTALS SETTINGS extremes = 1;
SELECT count(), min(x), max(x) FROM test;
SELECT count(), min(x), max(x) FROM test_00209;
DROP TABLE test;
DROP TABLE test_00209;

View File

@ -3,7 +3,7 @@
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
. $CURDIR/../shell_config.sh
${CLICKHOUSE_CURL} -sS ${CLICKHOUSE_URL}?extremes=1 -d @- <<< "DROP TABLE IF EXISTS test"
${CLICKHOUSE_CURL} -sS ${CLICKHOUSE_URL}?extremes=1 -d @- <<< "CREATE TABLE test (x UInt8) ENGINE = Log"
${CLICKHOUSE_CURL} -sS ${CLICKHOUSE_URL}?extremes=1 -d @- <<< "INSERT INTO test SELECT 1 AS x"
${CLICKHOUSE_CURL} -sS ${CLICKHOUSE_URL}?extremes=1 -d @- <<< "DROP TABLE test"
${CLICKHOUSE_CURL} -sS ${CLICKHOUSE_URL}?extremes=1 -d @- <<< "DROP TABLE IF EXISTS test_00210"
${CLICKHOUSE_CURL} -sS ${CLICKHOUSE_URL}?extremes=1 -d @- <<< "CREATE TABLE test_00210 (x UInt8) ENGINE = Log"
${CLICKHOUSE_CURL} -sS ${CLICKHOUSE_URL}?extremes=1 -d @- <<< "INSERT INTO test_00210 SELECT 1 AS x"
${CLICKHOUSE_CURL} -sS ${CLICKHOUSE_URL}?extremes=1 -d @- <<< "DROP TABLE test_00210"

View File

@ -1,4 +1,4 @@
CREATE TABLE IF NOT EXISTS foo(id UInt64) Engine=Memory;
INSERT INTO foo(id) VALUES (0),(4),(1),(1),(3),(1),(1),(2),(2),(2),(1),(2),(3),(2),(1),(1),(2),(1),(1),(1),(3),(1),(2),(2),(1),(1),(3),(1),(2),(1),(1),(3),(2),(1),(1),(4),(0);
SELECT sum(id = 3 OR id = 1 OR id = 2) AS x, sum(id = 3 OR id = 1 OR id = 2) AS x FROM foo;
DROP TABLE foo;
CREATE TABLE IF NOT EXISTS foo_00234(id UInt64) Engine=Memory;
INSERT INTO foo_00234(id) VALUES (0),(4),(1),(1),(3),(1),(1),(2),(2),(2),(1),(2),(3),(2),(1),(1),(2),(1),(1),(1),(3),(1),(2),(2),(1),(1),(3),(1),(2),(1),(1),(3),(2),(1),(1),(4),(0);
SELECT sum(id = 3 OR id = 1 OR id = 2) AS x, sum(id = 3 OR id = 1 OR id = 2) AS x FROM foo_00234;
DROP TABLE foo_00234;

View File

@ -1,2 +1,3 @@
create temporary table one as select 1;
select * from one;
drop temporary table if exists one_0023;
create temporary table one_0023 as select 1;
select * from one_0023;

View File

@ -1,13 +1,13 @@
DROP TABLE IF EXISTS test.view1;
DROP TABLE IF EXISTS test.view2;
DROP TABLE IF EXISTS test.merge_view;
DROP TABLE IF EXISTS view1_00270;
DROP TABLE IF EXISTS view2_00270;
DROP TABLE IF EXISTS merge_view_00270;
CREATE VIEW test.view1 AS SELECT number FROM system.numbers LIMIT 10;
CREATE VIEW test.view2 AS SELECT number FROM system.numbers LIMIT 10;
CREATE TABLE test.merge_view (number UInt64) ENGINE = Merge(test, '^view');
CREATE VIEW view1_00270 AS SELECT number FROM system.numbers LIMIT 10;
CREATE VIEW view2_00270 AS SELECT number FROM system.numbers LIMIT 10;
CREATE TABLE merge_view_00270 (number UInt64) ENGINE = Merge(currentDatabase(), '^view');
SELECT 'Hello, world!' FROM test.merge_view LIMIT 5;
SELECT 'Hello, world!' FROM merge_view_00270 LIMIT 5;
DROP TABLE test.view1;
DROP TABLE test.view2;
DROP TABLE test.merge_view;
DROP TABLE view1_00270;
DROP TABLE view2_00270;
DROP TABLE merge_view_00270;

View File

@ -1,55 +1,55 @@
DROP TABLE IF EXISTS sample;
DROP TABLE IF EXISTS sample_00276;
SET min_insert_block_size_rows = 0, min_insert_block_size_bytes = 0;
SET max_block_size = 10;
CREATE TABLE sample (d Date DEFAULT '2000-01-01', x UInt8) ENGINE = MergeTree(d, x, x, 10);
INSERT INTO sample (x) SELECT toUInt8(number) AS x FROM system.numbers LIMIT 256;
CREATE TABLE sample_00276 (d Date DEFAULT '2000-01-01', x UInt8) ENGINE = MergeTree(d, x, x, 10);
INSERT INTO sample_00276 (x) SELECT toUInt8(number) AS x FROM system.numbers LIMIT 256;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 0.1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/10;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/1e1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1e1/1e2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1e-1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 2e-2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/10 OFFSET 1/10;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/10 OFFSET 9/10;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/10 OFFSET 10/10;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/10 OFFSET 19/20;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 0.1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/10;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/1e1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1e1/1e2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1e-1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 2e-2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/10 OFFSET 1/10;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/10 OFFSET 9/10;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/10 OFFSET 10/10;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/10 OFFSET 19/20;
SELECT count() >= 100 FROM sample SAMPLE 100;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1000;
SELECT count() >= 100 FROM sample_00276 SAMPLE 100;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1000;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 OFFSET 1/2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 SETTINGS parallel_replicas_count = 3;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 0;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 OFFSET 1/2 SETTINGS parallel_replicas_count = 3;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 OFFSET 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 0;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 OFFSET 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 1/2 OFFSET 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 OFFSET 1/2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 SETTINGS parallel_replicas_count = 3;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 0;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 OFFSET 1/2 SETTINGS parallel_replicas_count = 3;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 OFFSET 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 0;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 OFFSET 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 1;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 1/2 OFFSET 1/2 SETTINGS parallel_replicas_count = 3, parallel_replica_offset = 2;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM
(
SELECT x FROM sample SAMPLE 0.1 OFFSET 0.0
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.1
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.2
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.3
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.4
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.5
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.6
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.7
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.8
UNION ALL SELECT x FROM sample SAMPLE 0.1 OFFSET 0.9
SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.0
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.1
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.2
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.3
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.4
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.5
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.6
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.7
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.8
UNION ALL SELECT x FROM sample_00276 SAMPLE 0.1 OFFSET 0.9
);
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 0.05 OFFSET 0.35;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample SAMPLE 0.05 OFFSET 0.4;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 0.05 OFFSET 0.35;
SELECT count(), min(x), max(x), sum(x), uniqExact(x) FROM sample_00276 SAMPLE 0.05 OFFSET 0.4;
SELECT count()
FROM
@ -59,118 +59,118 @@ FROM
count() AS c
FROM
(
SELECT * FROM sample SAMPLE 0.01 OFFSET 0.00
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.01
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.02
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.03
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.04
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.05
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.06
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.07
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.08
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.09
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.10
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.11
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.12
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.13
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.14
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.15
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.16
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.17
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.18
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.19
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.20
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.21
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.22
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.23
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.24
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.25
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.26
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.27
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.28
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.29
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.30
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.31
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.32
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.33
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.34
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.35
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.36
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.37
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.38
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.39
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.40
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.41
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.42
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.43
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.44
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.45
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.46
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.47
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.48
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.49
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.50
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.51
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.52
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.53
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.54
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.55
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.56
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.57
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.58
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.59
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.60
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.61
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.62
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.63
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.64
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.65
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.66
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.67
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.68
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.69
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.70
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.71
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.72
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.73
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.74
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.75
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.76
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.77
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.78
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.79
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.80
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.81
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.82
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.83
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.84
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.85
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.86
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.87
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.88
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.89
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.90
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.91
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.92
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.93
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.94
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.95
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.96
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.97
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.98
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.99
SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.00
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.01
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.02
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.03
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.04
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.05
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.06
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.07
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.08
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.09
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.10
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.11
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.12
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.13
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.14
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.15
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.16
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.17
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.18
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.19
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.20
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.21
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.22
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.23
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.24
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.25
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.26
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.27
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.28
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.29
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.30
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.31
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.32
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.33
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.34
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.35
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.36
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.37
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.38
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.39
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.40
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.41
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.42
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.43
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.44
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.45
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.46
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.47
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.48
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.49
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.50
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.51
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.52
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.53
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.54
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.55
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.56
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.57
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.58
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.59
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.60
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.61
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.62
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.63
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.64
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.65
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.66
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.67
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.68
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.69
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.70
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.71
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.72
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.73
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.74
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.75
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.76
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.77
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.78
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.79
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.80
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.81
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.82
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.83
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.84
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.85
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.86
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.87
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.88
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.89
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.90
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.91
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.92
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.93
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.94
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.95
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.96
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.97
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.98
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.99
)
GROUP BY x
HAVING c = 1
ORDER BY x ASC
);
DROP TABLE sample;
DROP TABLE sample_00276;
SET max_block_size = 8192;
CREATE TABLE sample (d Date DEFAULT '2000-01-01', x UInt16) ENGINE = MergeTree(d, x, x, 10);
INSERT INTO sample (x) SELECT toUInt16(number) AS x FROM system.numbers LIMIT 65536;
CREATE TABLE sample_00276 (d Date DEFAULT '2000-01-01', x UInt16) ENGINE = MergeTree(d, x, x, 10);
INSERT INTO sample_00276 (x) SELECT toUInt16(number) AS x FROM system.numbers LIMIT 65536;
SELECT count()
FROM
@ -180,110 +180,110 @@ FROM
count() AS c
FROM
(
SELECT * FROM sample SAMPLE 0.01 OFFSET 0.00
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.01
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.02
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.03
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.04
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.05
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.06
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.07
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.08
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.09
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.10
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.11
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.12
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.13
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.14
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.15
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.16
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.17
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.18
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.19
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.20
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.21
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.22
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.23
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.24
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.25
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.26
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.27
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.28
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.29
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.30
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.31
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.32
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.33
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.34
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.35
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.36
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.37
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.38
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.39
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.40
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.41
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.42
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.43
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.44
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.45
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.46
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.47
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.48
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.49
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.50
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.51
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.52
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.53
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.54
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.55
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.56
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.57
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.58
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.59
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.60
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.61
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.62
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.63
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.64
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.65
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.66
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.67
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.68
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.69
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.70
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.71
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.72
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.73
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.74
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.75
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.76
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.77
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.78
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.79
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.80
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.81
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.82
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.83
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.84
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.85
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.86
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.87
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.88
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.89
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.90
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.91
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.92
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.93
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.94
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.95
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.96
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.97
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.98
UNION ALL SELECT * FROM sample SAMPLE 0.01 OFFSET 0.99
SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.00
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.01
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.02
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.03
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.04
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.05
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.06
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.07
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.08
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.09
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.10
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.11
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.12
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.13
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.14
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.15
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.16
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.17
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.18
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.19
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.20
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.21
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.22
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.23
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.24
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.25
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.26
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.27
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.28
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.29
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.30
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.31
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.32
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.33
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.34
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.35
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.36
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.37
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.38
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.39
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.40
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.41
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.42
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.43
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.44
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.45
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.46
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.47
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.48
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.49
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.50
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.51
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.52
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.53
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.54
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.55
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.56
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.57
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.58
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.59
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.60
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.61
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.62
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.63
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.64
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.65
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.66
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.67
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.68
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.69
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.70
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.71
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.72
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.73
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.74
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.75
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.76
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.77
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.78
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.79
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.80
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.81
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.82
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.83
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.84
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.85
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.86
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.87
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.88
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.89
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.90
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.91
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.92
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.93
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.94
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.95
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.96
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.97
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.98
UNION ALL SELECT * FROM sample_00276 SAMPLE 0.01 OFFSET 0.99
)
GROUP BY x
HAVING c = 1
ORDER BY x ASC
);
DROP TABLE sample;
DROP TABLE sample_00276;

View File

@ -1,12 +1,12 @@
DROP TABLE IF EXISTS test.group_uniq_str;
CREATE TABLE test.group_uniq_str ENGINE = Memory AS SELECT number % 10 as id, toString(intDiv((number%10000), 10)) as v FROM system.numbers LIMIT 10000000;
DROP TABLE IF EXISTS group_uniq_str;
CREATE TABLE group_uniq_str ENGINE = Memory AS SELECT number % 10 as id, toString(intDiv((number%10000), 10)) as v FROM system.numbers LIMIT 10000000;
INSERT INTO test.group_uniq_str SELECT 2 as id, toString(number % 100) as v FROM system.numbers LIMIT 1000000;
INSERT INTO test.group_uniq_str SELECT 5 as id, toString(number % 100) as v FROM system.numbers LIMIT 10000000;
INSERT INTO group_uniq_str SELECT 2 as id, toString(number % 100) as v FROM system.numbers LIMIT 1000000;
INSERT INTO group_uniq_str SELECT 5 as id, toString(number % 100) as v FROM system.numbers LIMIT 10000000;
SELECT length(groupUniqArray(v)) FROM test.group_uniq_str GROUP BY id ORDER BY id;
SELECT length(groupUniqArray(v)) FROM remote('127.0.0.{2,3,4,5}', 'test', 'group_uniq_str') GROUP BY id ORDER BY id;
SELECT length(groupUniqArray(10)(v)) FROM test.group_uniq_str GROUP BY id ORDER BY id;
SELECT length(groupUniqArray(10000)(v)) FROM test.group_uniq_str GROUP BY id ORDER BY id;
SELECT length(groupUniqArray(v)) FROM group_uniq_str GROUP BY id ORDER BY id;
SELECT length(groupUniqArray(v)) FROM remote('127.0.0.{2,3,4,5}', currentDatabase(), 'group_uniq_str') GROUP BY id ORDER BY id;
SELECT length(groupUniqArray(10)(v)) FROM group_uniq_str GROUP BY id ORDER BY id;
SELECT length(groupUniqArray(10000)(v)) FROM group_uniq_str GROUP BY id ORDER BY id;
DROP TABLE IF EXISTS test.group_uniq_str;
DROP TABLE IF EXISTS group_uniq_str;

View File

@ -4,4 +4,4 @@ set -e
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
. $CURDIR/../shell_config.sh
${CLICKHOUSE_CURL} -sS --local-port 1390 "${CLICKHOUSE_URL}?query=SELECT%20port%20FROM%20system.processes%20ORDER%20BY%20elapsed%20LIMIT%201"
${CLICKHOUSE_CURL} -sS --local-port 1390 "${CLICKHOUSE_URL}?query_id=my_id&query=SELECT+port+FROM+system.processes+WHERE+query_id%3D%27my_id%27+ORDER+BY+elapsed+LIMIT+1"

View File

@ -10,20 +10,20 @@ function pack_unpack_compare()
{
local buf_file="${CLICKHOUSE_TMP}/buf.'.$3"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS buf"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS buf_00385"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS buf_file"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE buf ENGINE = Memory AS $1"
local res_orig=$(${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT $TABLE_HASH FROM buf")
${CLICKHOUSE_CLIENT} --query "CREATE TABLE buf_00385 ENGINE = Memory AS $1"
local res_orig=$(${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT $TABLE_HASH FROM buf_00385")
${CLICKHOUSE_CLIENT} --max_threads=1 --query "CREATE TABLE buf_file ENGINE = File($3) AS SELECT * FROM buf"
${CLICKHOUSE_CLIENT} --max_threads=1 --query "CREATE TABLE buf_file ENGINE = File($3) AS SELECT * FROM buf_00385"
local res_db_file=$(${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT $TABLE_HASH FROM buf_file")
${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT * FROM buf FORMAT $3" > "$buf_file"
${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT * FROM buf_00385 FORMAT $3" > "$buf_file"
local res_ch_local1=$(${CLICKHOUSE_LOCAL} --structure "$2" --file "$buf_file" --table "my super table" --input-format "$3" --output-format TabSeparated --query "SELECT $TABLE_HASH FROM \`my super table\`")
local res_ch_local2=$(${CLICKHOUSE_LOCAL} --structure "$2" --table "my super table" --input-format "$3" --output-format TabSeparated --query "SELECT $TABLE_HASH FROM \`my super table\`" < "$buf_file")
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS buf"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS buf_00385"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS buf_file"
rm -f "$buf_file" stderr

View File

@ -1,17 +1,17 @@
DROP TABLE IF EXISTS alter;
CREATE TABLE alter (d Date, k UInt64, i32 Int32, n Nested(ui8 UInt8, s String)) ENGINE=MergeTree(d, k, 8192);
DROP TABLE IF EXISTS alter_00394;
CREATE TABLE alter_00394 (d Date, k UInt64, i32 Int32, n Nested(ui8 UInt8, s String)) ENGINE=MergeTree(d, k, 8192);
INSERT INTO alter VALUES ('2015-01-01', 3, 30, [1,2,3], ['1','12','123']);
INSERT INTO alter VALUES ('2015-01-01', 2, 20, [1,2], ['1','12']);
INSERT INTO alter VALUES ('2015-01-01', 1, 10, [1], ['1']);
INSERT INTO alter_00394 VALUES ('2015-01-01', 3, 30, [1,2,3], ['1','12','123']);
INSERT INTO alter_00394 VALUES ('2015-01-01', 2, 20, [1,2], ['1','12']);
INSERT INTO alter_00394 VALUES ('2015-01-01', 1, 10, [1], ['1']);
ALTER TABLE alter ADD COLUMN `n.i8` Array(Int8) AFTER i32;
ALTER TABLE alter_00394 ADD COLUMN `n.i8` Array(Int8) AFTER i32;
SELECT `n.i8`, `n.ui8`, `n.s` FROM alter ORDER BY k;
SELECT `n.i8` FROM alter ORDER BY k;
SELECT `n.i8`, `n.ui8`, `n.s` FROM alter_00394 ORDER BY k;
SELECT `n.i8` FROM alter_00394 ORDER BY k;
OPTIMIZE TABLE alter;
OPTIMIZE TABLE alter_00394;
SELECT `n.i8` FROM alter ORDER BY k;
SELECT `n.i8` FROM alter_00394 ORDER BY k;
DROP TABLE IF EXISTS alter;
DROP TABLE IF EXISTS alter_00394;

View File

@ -8,124 +8,124 @@ SELECT NULL + NULL;
SELECT '----- MergeTree engine -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(
col1 UInt64, col2 Nullable(UInt64),
col3 String, col4 Nullable(String),
col5 Array(UInt64), col6 Array(Nullable(UInt64)),
col7 Array(String), col8 Array(Nullable(String)),
d Date) Engine = MergeTree(d, (col1, d), 8192);
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1_00395 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
SELECT '----- Memory engine -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(
col1 UInt64, col2 Nullable(UInt64),
col3 String, col4 Nullable(String),
col5 Array(UInt64), col6 Array(Nullable(UInt64)),
col7 Array(String), col8 Array(Nullable(String)),
d Date) Engine = Memory;
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1_00395 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
SELECT '----- TinyLog engine -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(
col1 UInt64, col2 Nullable(UInt64),
col3 String, col4 Nullable(String),
col5 Array(UInt64), col6 Array(Nullable(UInt64)),
col7 Array(String), col8 Array(Nullable(String)),
d Date) Engine = TinyLog;
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1_00395 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
SELECT '----- Log engine -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(
col1 UInt64, col2 Nullable(UInt64),
col3 String, col4 Nullable(String),
col5 Array(UInt64), col6 Array(Nullable(UInt64)),
col7 Array(String), col8 Array(Nullable(String)),
d Date) Engine = Log;
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1_00395 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
SELECT '----- StripeLog engine -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(
col1 UInt64, col2 Nullable(UInt64),
col3 String, col4 Nullable(String),
col5 Array(UInt64), col6 Array(Nullable(UInt64)),
col7 Array(String), col8 Array(Nullable(String)),
d Date) Engine = StripeLog;
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, NULL, 'a', 'a', [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', NULL, [1], [1], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [NULL], ['a'], ['a'], '2000-01-01');
INSERT INTO test1_00395 VALUES (1, 1, 'a', 'a', [1], [1], ['a'], [NULL], '2000-01-01');
SELECT * FROM test1_00395 ORDER BY col1,col2,col3,col4,col5,col6,col7,col8 ASC;
SELECT '----- Insert with expression -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(UInt64))) Engine=Memory;
INSERT INTO test1(col1) VALUES ([1+1]);
SELECT col1 FROM test1 ORDER BY col1 ASC;
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(UInt64))) Engine=Memory;
INSERT INTO test1_00395(col1) VALUES ([1+1]);
SELECT col1 FROM test1_00395 ORDER BY col1 ASC;
SELECT '----- Insert. Source and target columns have same types up to nullability. -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(UInt64), col2 UInt64) Engine=Memory;
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(UInt64), col2 UInt64) Engine=Memory;
DROP TABLE IF EXISTS test2;
CREATE TABLE test2(col1 UInt64, col2 Nullable(UInt64)) Engine=Memory;
INSERT INTO test1(col1,col2) VALUES (2,7)(6,9)(5,1)(4,3)(8,2);
INSERT INTO test2(col1,col2) SELECT col1,col2 FROM test1;
INSERT INTO test1_00395(col1,col2) VALUES (2,7)(6,9)(5,1)(4,3)(8,2);
INSERT INTO test2(col1,col2) SELECT col1,col2 FROM test1_00395;
SELECT col1,col2 FROM test2 ORDER BY col1,col2 ASC;
SELECT '----- Apply functions and aggregate functions on columns that may contain null values -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(UInt64), col2 Nullable(UInt64)) Engine=Memory;
INSERT INTO test1(col1,col2) VALUES (2,7)(NULL,6)(9,NULL)(NULL,NULL)(5,1)(42,42);
SELECT col1, col2, col1 + col2, col1 * 7 FROM test1 ORDER BY col1,col2 ASC;
SELECT sum(col1) FROM test1;
SELECT sum(col1 * 7) FROM test1;
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(UInt64), col2 Nullable(UInt64)) Engine=Memory;
INSERT INTO test1_00395(col1,col2) VALUES (2,7)(NULL,6)(9,NULL)(NULL,NULL)(5,1)(42,42);
SELECT col1, col2, col1 + col2, col1 * 7 FROM test1_00395 ORDER BY col1,col2 ASC;
SELECT sum(col1) FROM test1_00395;
SELECT sum(col1 * 7) FROM test1_00395;
SELECT '----- isNull, isNotNull -----';
SELECT col1, col2, isNull(col1), isNotNull(col2) FROM test1 ORDER BY col1,col2 ASC;
SELECT col1, col2, isNull(col1), isNotNull(col2) FROM test1_00395 ORDER BY col1,col2 ASC;
SELECT '----- ifNull, nullIf -----';
SELECT col1, col2, ifNull(col1,col2) FROM test1 ORDER BY col1,col2 ASC;
SELECT col1, col2, nullIf(col1,col2) FROM test1 ORDER BY col1,col2 ASC;
SELECT col1, col2, ifNull(col1,col2) FROM test1_00395 ORDER BY col1,col2 ASC;
SELECT col1, col2, nullIf(col1,col2) FROM test1_00395 ORDER BY col1,col2 ASC;
SELECT '----- coalesce -----';
@ -134,32 +134,32 @@ SELECT coalesce(NULL, 1);
SELECT coalesce(NULL, NULL, 1);
SELECT coalesce(NULL, 42, NULL, 1);
SELECT coalesce(NULL, NULL, NULL);
SELECT col1, col2, coalesce(col1, col2) FROM test1 ORDER BY col1, col2 ASC;
SELECT col1, col2, coalesce(col1, col2, 99) FROM test1 ORDER BY col1, col2 ASC;
SELECT col1, col2, coalesce(col1, col2) FROM test1_00395 ORDER BY col1, col2 ASC;
SELECT col1, col2, coalesce(col1, col2, 99) FROM test1_00395 ORDER BY col1, col2 ASC;
SELECT '----- assumeNotNull -----';
SELECT res FROM (SELECT col1, assumeNotNull(col1) AS res FROM test1) WHERE col1 IS NOT NULL ORDER BY res ASC;
SELECT res FROM (SELECT col1, assumeNotNull(col1) AS res FROM test1_00395) WHERE col1 IS NOT NULL ORDER BY res ASC;
SELECT '----- IS NULL, IS NOT NULL -----';
SELECT col1 FROM test1 WHERE col1 IS NOT NULL ORDER BY col1 ASC;
SELECT col1 FROM test1 WHERE col1 IS NULL;
SELECT col1 FROM test1_00395 WHERE col1 IS NOT NULL ORDER BY col1 ASC;
SELECT col1 FROM test1_00395 WHERE col1 IS NULL;
SELECT '----- if -----';
DROP TABLE IF EXISTS test.test1;
CREATE TABLE test.test1 (col1 Nullable(String)) ENGINE=TinyLog;
INSERT INTO test.test1 VALUES ('a'), ('b'), ('c'), (NULL);
DROP TABLE IF EXISTS test.test1_00395;
CREATE TABLE test.test1_00395 (col1 Nullable(String)) ENGINE=TinyLog;
INSERT INTO test.test1_00395 VALUES ('a'), ('b'), ('c'), (NULL);
SELECT col1, if(col1 IN ('a' ,'b'), 1, 0) AS t, toTypeName(t) FROM test.test1;
SELECT col1, if(col1 IN ('a' ,'b'), NULL, 0) AS t, toTypeName(t) FROM test.test1;
SELECT col1, if(col1 IN ('a' ,'b'), 1, 0) AS t, toTypeName(t) FROM test.test1_00395;
SELECT col1, if(col1 IN ('a' ,'b'), NULL, 0) AS t, toTypeName(t) FROM test.test1_00395;
SELECT '----- case when -----';
SELECT col1, CASE WHEN col1 IN ('a' ,'b') THEN 1 ELSE 0 END AS t, toTypeName(t) FROM test.test1;
SELECT col1, CASE WHEN col1 IN ('a' ,'b') THEN NULL ELSE 0 END AS t, toTypeName(t) FROM test.test1;
SELECT col1, CASE WHEN col1 IN ('a' ,'b') THEN 1 END AS t, toTypeName(t) FROM test.test1;
SELECT col1, CASE WHEN col1 IN ('a' ,'b') THEN 1 ELSE 0 END AS t, toTypeName(t) FROM test.test1_00395;
SELECT col1, CASE WHEN col1 IN ('a' ,'b') THEN NULL ELSE 0 END AS t, toTypeName(t) FROM test.test1_00395;
SELECT col1, CASE WHEN col1 IN ('a' ,'b') THEN 1 END AS t, toTypeName(t) FROM test.test1_00395;
SELECT '----- multiIf -----';
@ -173,15 +173,15 @@ SELECT multiIf(1, toFixedString('A', 16), 1, NULL, toFixedString('DEF', 16));
SELECT multiIf(NULL, 2, 1, 3, 4);
SELECT multiIf(1, 2, NULL, 3, 4);
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(Int8), col2 Nullable(UInt16), col3 Nullable(Float32)) Engine=TinyLog;
INSERT INTO test1(col1,col2,col3) VALUES (toInt8(1),toUInt16(2),toFloat32(3))(NULL,toUInt16(1),toFloat32(2))(toInt8(1),NULL,toFloat32(2))(toInt8(1),toUInt16(2),NULL);
SELECT multiIf(col1 == 1, col2, col2 == 2, col3, col3 == 3, col1, 42) FROM test1;
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(Int8), col2 Nullable(UInt16), col3 Nullable(Float32)) Engine=TinyLog;
INSERT INTO test1_00395(col1,col2,col3) VALUES (toInt8(1),toUInt16(2),toFloat32(3))(NULL,toUInt16(1),toFloat32(2))(toInt8(1),NULL,toFloat32(2))(toInt8(1),toUInt16(2),NULL);
SELECT multiIf(col1 == 1, col2, col2 == 2, col3, col3 == 3, col1, 42) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(cond1 Nullable(UInt8), then1 Int8, cond2 UInt8, then2 Nullable(UInt16), then3 Nullable(Float32)) Engine=TinyLog;
INSERT INTO test1(cond1,then1,cond2,then2,then3) VALUES(1,1,1,42,99)(0,7,1,99,42)(NULL,6,2,99,NULL);
SELECT multiIf(cond1,then1,cond2,then2,then3) FROM test1;
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(cond1 Nullable(UInt8), then1 Int8, cond2 UInt8, then2 Nullable(UInt16), then3 Nullable(Float32)) Engine=TinyLog;
INSERT INTO test1_00395(cond1,then1,cond2,then2,then3) VALUES(1,1,1,42,99)(0,7,1,99,42)(NULL,6,2,99,NULL);
SELECT multiIf(cond1,then1,cond2,then2,then3) FROM test1_00395;
SELECT '----- Array functions -----';
@ -209,59 +209,59 @@ SELECT arrayElement(['a',NULL,'c','d'], 2);
SELECT arrayElement(['a',NULL,'c','d'], 3);
SELECT arrayElement(['a',NULL,'c','d'], 4);
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 UInt64) Engine=TinyLog;
INSERT INTO test1(col1) VALUES(1),(2),(3),(4);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 UInt64) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES(1),(2),(3),(4);
SELECT arrayElement([1,NULL,2,3], col1) FROM test1;
SELECT arrayElement([1,NULL,2,3], col1) FROM test1_00395;
SELECT '----- variable arrays -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(UInt64))) Engine=TinyLog;
INSERT INTO test1(col1) VALUES([2,3,7,NULL]);
INSERT INTO test1(col1) VALUES([NULL,3,7,4]);
INSERT INTO test1(col1) VALUES([2,NULL,7,NULL]);
INSERT INTO test1(col1) VALUES([2,3,NULL,4]);
INSERT INTO test1(col1) VALUES([NULL,NULL,NULL,NULL]);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(UInt64))) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES([2,3,7,NULL]);
INSERT INTO test1_00395(col1) VALUES([NULL,3,7,4]);
INSERT INTO test1_00395(col1) VALUES([2,NULL,7,NULL]);
INSERT INTO test1_00395(col1) VALUES([2,3,NULL,4]);
INSERT INTO test1_00395(col1) VALUES([NULL,NULL,NULL,NULL]);
SELECT arrayElement(col1, 1) FROM test1;
SELECT arrayElement(col1, 2) FROM test1;
SELECT arrayElement(col1, 3) FROM test1;
SELECT arrayElement(col1, 4) FROM test1;
SELECT arrayElement(col1, 1) FROM test1_00395;
SELECT arrayElement(col1, 2) FROM test1_00395;
SELECT arrayElement(col1, 3) FROM test1_00395;
SELECT arrayElement(col1, 4) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(String))) Engine=TinyLog;
INSERT INTO test1(col1) VALUES(['a','bc','def',NULL]);
INSERT INTO test1(col1) VALUES([NULL,'bc','def','ghij']);
INSERT INTO test1(col1) VALUES(['a',NULL,'def',NULL]);
INSERT INTO test1(col1) VALUES(['a','bc',NULL,'ghij']);
INSERT INTO test1(col1) VALUES([NULL,NULL,NULL,NULL]);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(String))) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES(['a','bc','def',NULL]);
INSERT INTO test1_00395(col1) VALUES([NULL,'bc','def','ghij']);
INSERT INTO test1_00395(col1) VALUES(['a',NULL,'def',NULL]);
INSERT INTO test1_00395(col1) VALUES(['a','bc',NULL,'ghij']);
INSERT INTO test1_00395(col1) VALUES([NULL,NULL,NULL,NULL]);
SELECT arrayElement(col1, 1) FROM test1;
SELECT arrayElement(col1, 2) FROM test1;
SELECT arrayElement(col1, 3) FROM test1;
SELECT arrayElement(col1, 4) FROM test1;
SELECT arrayElement(col1, 1) FROM test1_00395;
SELECT arrayElement(col1, 2) FROM test1_00395;
SELECT arrayElement(col1, 3) FROM test1_00395;
SELECT arrayElement(col1, 4) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(UInt64)), col2 UInt64) Engine=TinyLog;
INSERT INTO test1(col1,col2) VALUES([2,3,7,NULL], 1);
INSERT INTO test1(col1,col2) VALUES([NULL,3,7,4], 2);
INSERT INTO test1(col1,col2) VALUES([2,NULL,7,NULL], 3);
INSERT INTO test1(col1,col2) VALUES([2,3,NULL,4],4);
INSERT INTO test1(col1,col2) VALUES([NULL,NULL,NULL,NULL],3);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(UInt64)), col2 UInt64) Engine=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES([2,3,7,NULL], 1);
INSERT INTO test1_00395(col1,col2) VALUES([NULL,3,7,4], 2);
INSERT INTO test1_00395(col1,col2) VALUES([2,NULL,7,NULL], 3);
INSERT INTO test1_00395(col1,col2) VALUES([2,3,NULL,4],4);
INSERT INTO test1_00395(col1,col2) VALUES([NULL,NULL,NULL,NULL],3);
SELECT arrayElement(col1,col2) FROM test1;
SELECT arrayElement(col1,col2) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(String)), col2 UInt64) Engine=TinyLog;
INSERT INTO test1(col1,col2) VALUES(['a','bc','def',NULL], 1);
INSERT INTO test1(col1,col2) VALUES([NULL,'bc','def','ghij'], 2);
INSERT INTO test1(col1,col2) VALUES(['a',NULL,'def','ghij'], 3);
INSERT INTO test1(col1,col2) VALUES(['a','bc',NULL,'ghij'],4);
INSERT INTO test1(col1,col2) VALUES([NULL,NULL,NULL,NULL],3);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(String)), col2 UInt64) Engine=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES(['a','bc','def',NULL], 1);
INSERT INTO test1_00395(col1,col2) VALUES([NULL,'bc','def','ghij'], 2);
INSERT INTO test1_00395(col1,col2) VALUES(['a',NULL,'def','ghij'], 3);
INSERT INTO test1_00395(col1,col2) VALUES(['a','bc',NULL,'ghij'],4);
INSERT INTO test1_00395(col1,col2) VALUES([NULL,NULL,NULL,NULL],3);
SELECT arrayElement(col1,col2) FROM test1;
SELECT arrayElement(col1,col2) FROM test1_00395;
SELECT '----- has -----';
@ -278,220 +278,222 @@ SELECT has(['a',NULL,'def','ghij'], NULL);
SELECT has(['a',NULL,'def','ghij'], 'def');
SELECT has(['a',NULL,'def','ghij'], 'ghij');
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 UInt64) Engine=TinyLog;
INSERT INTO test1(col1) VALUES(1),(2),(3),(4);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 UInt64) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES(1),(2),(3),(4);
SELECT has([1,NULL,2,3], col1) FROM test1;
SELECT has([1,NULL,2,3], col1) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(UInt64)) Engine=TinyLog;
INSERT INTO test1(col1) VALUES(1),(2),(3),(4),(NULL);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(UInt64)) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES(1),(2),(3),(4),(NULL);
SELECT has([1,NULL,2,3], col1) FROM test1;
SELECT has([1,NULL,2,3], col1) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 String) Engine=TinyLog;
INSERT INTO test1(col1) VALUES('a'),('bc'),('def'),('ghij');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 String) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES('a'),('bc'),('def'),('ghij');
SELECT has(['a',NULL,'def','ghij'], col1) FROM test1;
SELECT has(['a',NULL,'def','ghij'], col1) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(String)) Engine=TinyLog;
INSERT INTO test1(col1) VALUES('a'),('bc'),('def'),('ghij'),(NULL);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(String)) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES('a'),('bc'),('def'),('ghij'),(NULL);
SELECT has(['a',NULL,'def','ghij'], col1) FROM test1;
SELECT has(['a',NULL,'def','ghij'], col1) FROM test1_00395;
SELECT '----- variable arrays -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(UInt64))) Engine=TinyLog;
INSERT INTO test1(col1) VALUES([2,3,7,NULL]);
INSERT INTO test1(col1) VALUES([NULL,3,7,4]);
INSERT INTO test1(col1) VALUES([2,NULL,7,NULL]);
INSERT INTO test1(col1) VALUES([2,3,NULL,4]);
INSERT INTO test1(col1) VALUES([NULL,NULL,NULL,NULL]);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(UInt64))) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES([2,3,7,NULL]);
INSERT INTO test1_00395(col1) VALUES([NULL,3,7,4]);
INSERT INTO test1_00395(col1) VALUES([2,NULL,7,NULL]);
INSERT INTO test1_00395(col1) VALUES([2,3,NULL,4]);
INSERT INTO test1_00395(col1) VALUES([NULL,NULL,NULL,NULL]);
SELECT has(col1, 2) FROM test1;
SELECT has(col1, 3) FROM test1;
SELECT has(col1, 4) FROM test1;
SELECT has(col1, 5) FROM test1;
SELECT has(col1, 7) FROM test1;
SELECT has(col1, NULL) FROM test1;
SELECT has(col1, 2) FROM test1_00395;
SELECT has(col1, 3) FROM test1_00395;
SELECT has(col1, 4) FROM test1_00395;
SELECT has(col1, 5) FROM test1_00395;
SELECT has(col1, 7) FROM test1_00395;
SELECT has(col1, NULL) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(String))) Engine=TinyLog;
INSERT INTO test1(col1) VALUES(['a','bc','def',NULL]);
INSERT INTO test1(col1) VALUES([NULL,'bc','def','ghij']);
INSERT INTO test1(col1) VALUES(['a',NULL,'def',NULL]);
INSERT INTO test1(col1) VALUES(['a','bc',NULL,'ghij']);
INSERT INTO test1(col1) VALUES([NULL,NULL,NULL,NULL]);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(String))) Engine=TinyLog;
INSERT INTO test1_00395(col1) VALUES(['a','bc','def',NULL]);
INSERT INTO test1_00395(col1) VALUES([NULL,'bc','def','ghij']);
INSERT INTO test1_00395(col1) VALUES(['a',NULL,'def',NULL]);
INSERT INTO test1_00395(col1) VALUES(['a','bc',NULL,'ghij']);
INSERT INTO test1_00395(col1) VALUES([NULL,NULL,NULL,NULL]);
SELECT has(col1, 'a') FROM test1;
SELECT has(col1, 'bc') FROM test1;
SELECT has(col1, 'def') FROM test1;
SELECT has(col1, 'ghij') FROM test1;
SELECT has(col1, NULL) FROM test1;
SELECT has(col1, 'a') FROM test1_00395;
SELECT has(col1, 'bc') FROM test1_00395;
SELECT has(col1, 'def') FROM test1_00395;
SELECT has(col1, 'ghij') FROM test1_00395;
SELECT has(col1, NULL) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(UInt64)), col2 UInt64) Engine=TinyLog;
INSERT INTO test1(col1,col2) VALUES([2,3,7,NULL], 2);
INSERT INTO test1(col1,col2) VALUES([NULL,3,7,4], 3);
INSERT INTO test1(col1,col2) VALUES([2,NULL,7,NULL], 7);
INSERT INTO test1(col1,col2) VALUES([2,3,NULL,4],5);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(UInt64)), col2 UInt64) Engine=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES([2,3,7,NULL], 2);
INSERT INTO test1_00395(col1,col2) VALUES([NULL,3,7,4], 3);
INSERT INTO test1_00395(col1,col2) VALUES([2,NULL,7,NULL], 7);
INSERT INTO test1_00395(col1,col2) VALUES([2,3,NULL,4],5);
SELECT has(col1,col2) FROM test1;
SELECT has(col1,col2) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(UInt64)), col2 Nullable(UInt64)) Engine=TinyLog;
INSERT INTO test1(col1,col2) VALUES([2,3,7,NULL], 2);
INSERT INTO test1(col1,col2) VALUES([NULL,3,7,4], 3);
INSERT INTO test1(col1,col2) VALUES([2,NULL,7,NULL], 7);
INSERT INTO test1(col1,col2) VALUES([2,3,NULL,4],5);
INSERT INTO test1(col1,col2) VALUES([NULL,NULL,NULL,NULL],NULL);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(UInt64)), col2 Nullable(UInt64)) Engine=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES([2,3,7,NULL], 2);
INSERT INTO test1_00395(col1,col2) VALUES([NULL,3,7,4], 3);
INSERT INTO test1_00395(col1,col2) VALUES([2,NULL,7,NULL], 7);
INSERT INTO test1_00395(col1,col2) VALUES([2,3,NULL,4],5);
INSERT INTO test1_00395(col1,col2) VALUES([NULL,NULL,NULL,NULL],NULL);
SELECT has(col1,col2) FROM test1;
SELECT has(col1,col2) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(String)), col2 String) Engine=TinyLog;
INSERT INTO test1(col1,col2) VALUES(['a','bc','def',NULL], 'a');
INSERT INTO test1(col1,col2) VALUES([NULL,'bc','def','ghij'], 'bc');
INSERT INTO test1(col1,col2) VALUES(['a',NULL,'def','ghij'], 'def');
INSERT INTO test1(col1,col2) VALUES(['a','bc',NULL,'ghij'], 'ghij');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(String)), col2 String) Engine=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES(['a','bc','def',NULL], 'a');
INSERT INTO test1_00395(col1,col2) VALUES([NULL,'bc','def','ghij'], 'bc');
INSERT INTO test1_00395(col1,col2) VALUES(['a',NULL,'def','ghij'], 'def');
INSERT INTO test1_00395(col1,col2) VALUES(['a','bc',NULL,'ghij'], 'ghij');
SELECT has(col1,col2) FROM test1;
SELECT has(col1,col2) FROM test1_00395;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(String)), col2 Nullable(String)) Engine=TinyLog;
INSERT INTO test1(col1,col2) VALUES(['a','bc','def',NULL], 'a');
INSERT INTO test1(col1,col2) VALUES([NULL,'bc','def','ghij'], 'bc');
INSERT INTO test1(col1,col2) VALUES(['a',NULL,'def','ghij'], 'def');
INSERT INTO test1(col1,col2) VALUES(['a','bc',NULL,'ghij'], 'ghij');
INSERT INTO test1(col1,col2) VALUES([NULL,NULL,NULL,NULL], NULL);
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(String)), col2 Nullable(String)) Engine=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES(['a','bc','def',NULL], 'a');
INSERT INTO test1_00395(col1,col2) VALUES([NULL,'bc','def','ghij'], 'bc');
INSERT INTO test1_00395(col1,col2) VALUES(['a',NULL,'def','ghij'], 'def');
INSERT INTO test1_00395(col1,col2) VALUES(['a','bc',NULL,'ghij'], 'ghij');
INSERT INTO test1_00395(col1,col2) VALUES([NULL,NULL,NULL,NULL], NULL);
SELECT has(col1,col2) FROM test1;
SELECT has(col1,col2) FROM test1_00395;
SELECT '----- Aggregation -----';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(String), col2 Nullable(UInt8), col3 String) ENGINE=TinyLog;
INSERT INTO test1(col1,col2,col3) VALUES('A', 0, 'ABCDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('A', 0, 'BACDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('A', 1, 'BCADEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('A', 1, 'BCDAEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('B', 1, 'BCDEAFGH');
INSERT INTO test1(col1,col2,col3) VALUES('B', 1, 'BCDEFAGH');
INSERT INTO test1(col1,col2,col3) VALUES('B', 1, 'BCDEFGAH');
INSERT INTO test1(col1,col2,col3) VALUES('B', 1, 'BCDEFGHA');
INSERT INTO test1(col1,col2,col3) VALUES('C', 1, 'ACBDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('C', NULL, 'ACDBEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('C', NULL, 'ACDEBFGH');
INSERT INTO test1(col1,col2,col3) VALUES('C', NULL, 'ACDEFBGH');
INSERT INTO test1(col1,col2,col3) VALUES(NULL, 1, 'ACDEFGBH');
INSERT INTO test1(col1,col2,col3) VALUES(NULL, NULL, 'ACDEFGHB');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(String), col2 Nullable(UInt8), col3 String) ENGINE=TinyLog;
INSERT INTO test1_00395(col1,col2,col3) VALUES('A', 0, 'ABCDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('A', 0, 'BACDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('A', 1, 'BCADEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('A', 1, 'BCDAEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('B', 1, 'BCDEAFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('B', 1, 'BCDEFAGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('B', 1, 'BCDEFGAH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('B', 1, 'BCDEFGHA');
INSERT INTO test1_00395(col1,col2,col3) VALUES('C', 1, 'ACBDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('C', NULL, 'ACDBEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('C', NULL, 'ACDEBFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('C', NULL, 'ACDEFBGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(NULL, 1, 'ACDEFGBH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(NULL, NULL, 'ACDEFGHB');
SELECT col1, col2, count() FROM test1 GROUP BY col1, col2 ORDER BY col1, col2;
SELECT col1, col2, count() FROM test1_00395 GROUP BY col1, col2 ORDER BY col1, col2;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 String, col2 Nullable(UInt8), col3 String) ENGINE=TinyLog;
INSERT INTO test1(col1,col2,col3) VALUES('A', 0, 'ABCDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('A', 0, 'BACDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('A', 1, 'BCADEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('A', 1, 'BCDAEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('B', 1, 'BCDEAFGH');
INSERT INTO test1(col1,col2,col3) VALUES('B', 1, 'BCDEFAGH');
INSERT INTO test1(col1,col2,col3) VALUES('B', 1, 'BCDEFGAH');
INSERT INTO test1(col1,col2,col3) VALUES('B', 1, 'BCDEFGHA');
INSERT INTO test1(col1,col2,col3) VALUES('C', 1, 'ACBDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('C', NULL, 'ACDBEFGH');
INSERT INTO test1(col1,col2,col3) VALUES('C', NULL, 'ACDEBFGH');
INSERT INTO test1(col1,col2,col3) VALUES('C', NULL, 'ACDEFBGH');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 String, col2 Nullable(UInt8), col3 String) ENGINE=TinyLog;
INSERT INTO test1_00395(col1,col2,col3) VALUES('A', 0, 'ABCDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('A', 0, 'BACDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('A', 1, 'BCADEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('A', 1, 'BCDAEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('B', 1, 'BCDEAFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('B', 1, 'BCDEFAGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('B', 1, 'BCDEFGAH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('B', 1, 'BCDEFGHA');
INSERT INTO test1_00395(col1,col2,col3) VALUES('C', 1, 'ACBDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('C', NULL, 'ACDBEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('C', NULL, 'ACDEBFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES('C', NULL, 'ACDEFBGH');
SELECT col1, col2, count() FROM test1 GROUP BY col1, col2 ORDER BY col1, col2;
SELECT col1, col2, count() FROM test1_00395 GROUP BY col1, col2 ORDER BY col1, col2;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(String), col2 String) ENGINE=TinyLog;
INSERT INTO test1(col1,col2) VALUES('A', 'ABCDEFGH');
INSERT INTO test1(col1,col2) VALUES('A', 'BACDEFGH');
INSERT INTO test1(col1,col2) VALUES('A', 'BCADEFGH');
INSERT INTO test1(col1,col2) VALUES('A', 'BCDAEFGH');
INSERT INTO test1(col1,col2) VALUES('B', 'BCDEAFGH');
INSERT INTO test1(col1,col2) VALUES('B', 'BCDEFAGH');
INSERT INTO test1(col1,col2) VALUES('B', 'BCDEFGAH');
INSERT INTO test1(col1,col2) VALUES('B', 'BCDEFGHA');
INSERT INTO test1(col1,col2) VALUES('C', 'ACBDEFGH');
INSERT INTO test1(col1,col2) VALUES('C', 'ACDBEFGH');
INSERT INTO test1(col1,col2) VALUES('C', 'ACDEBFGH');
INSERT INTO test1(col1,col2) VALUES('C', 'ACDEFBGH');
INSERT INTO test1(col1,col2) VALUES(NULL, 'ACDEFGBH');
INSERT INTO test1(col1,col2) VALUES(NULL, 'ACDEFGHB');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(String), col2 String) ENGINE=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES('A', 'ABCDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES('A', 'BACDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES('A', 'BCADEFGH');
INSERT INTO test1_00395(col1,col2) VALUES('A', 'BCDAEFGH');
INSERT INTO test1_00395(col1,col2) VALUES('B', 'BCDEAFGH');
INSERT INTO test1_00395(col1,col2) VALUES('B', 'BCDEFAGH');
INSERT INTO test1_00395(col1,col2) VALUES('B', 'BCDEFGAH');
INSERT INTO test1_00395(col1,col2) VALUES('B', 'BCDEFGHA');
INSERT INTO test1_00395(col1,col2) VALUES('C', 'ACBDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES('C', 'ACDBEFGH');
INSERT INTO test1_00395(col1,col2) VALUES('C', 'ACDEBFGH');
INSERT INTO test1_00395(col1,col2) VALUES('C', 'ACDEFBGH');
INSERT INTO test1_00395(col1,col2) VALUES(NULL, 'ACDEFGBH');
INSERT INTO test1_00395(col1,col2) VALUES(NULL, 'ACDEFGHB');
SELECT col1, count() FROM test1 GROUP BY col1 ORDER BY col1;
SELECT col1, count() FROM test1_00395 GROUP BY col1 ORDER BY col1;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(UInt8), col2 String) ENGINE=TinyLog;
INSERT INTO test1(col1,col2) VALUES(0, 'ABCDEFGH');
INSERT INTO test1(col1,col2) VALUES(0, 'BACDEFGH');
INSERT INTO test1(col1,col2) VALUES(1, 'BCADEFGH');
INSERT INTO test1(col1,col2) VALUES(1, 'BCDAEFGH');
INSERT INTO test1(col1,col2) VALUES(1, 'BCDEAFGH');
INSERT INTO test1(col1,col2) VALUES(1, 'BCDEFAGH');
INSERT INTO test1(col1,col2) VALUES(1, 'BCDEFGAH');
INSERT INTO test1(col1,col2) VALUES(1, 'BCDEFGHA');
INSERT INTO test1(col1,col2) VALUES(1, 'ACBDEFGH');
INSERT INTO test1(col1,col2) VALUES(NULL, 'ACDBEFGH');
INSERT INTO test1(col1,col2) VALUES(NULL, 'ACDEBFGH');
INSERT INTO test1(col1,col2) VALUES(NULL, 'ACDEFBGH');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(UInt8), col2 String) ENGINE=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES(0, 'ABCDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES(0, 'BACDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES(1, 'BCADEFGH');
INSERT INTO test1_00395(col1,col2) VALUES(1, 'BCDAEFGH');
INSERT INTO test1_00395(col1,col2) VALUES(1, 'BCDEAFGH');
INSERT INTO test1_00395(col1,col2) VALUES(1, 'BCDEFAGH');
INSERT INTO test1_00395(col1,col2) VALUES(1, 'BCDEFGAH');
INSERT INTO test1_00395(col1,col2) VALUES(1, 'BCDEFGHA');
INSERT INTO test1_00395(col1,col2) VALUES(1, 'ACBDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES(NULL, 'ACDBEFGH');
INSERT INTO test1_00395(col1,col2) VALUES(NULL, 'ACDEBFGH');
INSERT INTO test1_00395(col1,col2) VALUES(NULL, 'ACDEFBGH');
SELECT col1, count() FROM test1 GROUP BY col1 ORDER BY col1;
SELECT col1, count() FROM test1_00395 GROUP BY col1 ORDER BY col1;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(UInt64), col2 UInt64, col3 String) ENGINE=TinyLog;
INSERT INTO test1(col1,col2,col3) VALUES(0, 2, 'ABCDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES(0, 3, 'BACDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES(1, 5, 'BCADEFGH');
INSERT INTO test1(col1,col2,col3) VALUES(1, 2, 'BCDAEFGH');
INSERT INTO test1(col1,col2,col3) VALUES(1, 3, 'BCDEAFGH');
INSERT INTO test1(col1,col2,col3) VALUES(1, 5, 'BCDEFAGH');
INSERT INTO test1(col1,col2,col3) VALUES(1, 2, 'BCDEFGAH');
INSERT INTO test1(col1,col2,col3) VALUES(1, 3, 'BCDEFGHA');
INSERT INTO test1(col1,col2,col3) VALUES(1, 5, 'ACBDEFGH');
INSERT INTO test1(col1,col2,col3) VALUES(NULL, 2, 'ACDBEFGH');
INSERT INTO test1(col1,col2,col3) VALUES(NULL, 3, 'ACDEBFGH');
INSERT INTO test1(col1,col2,col3) VALUES(NULL, 3, 'ACDEFBGH');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(UInt64), col2 UInt64, col3 String) ENGINE=TinyLog;
INSERT INTO test1_00395(col1,col2,col3) VALUES(0, 2, 'ABCDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(0, 3, 'BACDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(1, 5, 'BCADEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(1, 2, 'BCDAEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(1, 3, 'BCDEAFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(1, 5, 'BCDEFAGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(1, 2, 'BCDEFGAH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(1, 3, 'BCDEFGHA');
INSERT INTO test1_00395(col1,col2,col3) VALUES(1, 5, 'ACBDEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(NULL, 2, 'ACDBEFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(NULL, 3, 'ACDEBFGH');
INSERT INTO test1_00395(col1,col2,col3) VALUES(NULL, 3, 'ACDEFBGH');
SELECT col1, col2, count() FROM test1 GROUP BY col1, col2 ORDER BY col1, col2;
SELECT col1, col2, count() FROM test1_00395 GROUP BY col1, col2 ORDER BY col1, col2;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Nullable(UInt64), col2 UInt64, col3 Nullable(UInt64), col4 String) ENGINE=TinyLog;
INSERT INTO test1(col1,col2,col3,col4) VALUES(0, 2, 1, 'ABCDEFGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(0, 3, NULL, 'BACDEFGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(1, 5, 1, 'BCADEFGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(1, 2, NULL, 'BCDAEFGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(1, 3, 1, 'BCDEAFGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(1, 5, NULL, 'BCDEFAGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(1, 2, 1, 'BCDEFGAH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(1, 3, NULL, 'BCDEFGHA');
INSERT INTO test1(col1,col2,col3,col4) VALUES(1, 5, 1, 'ACBDEFGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(NULL, 2, NULL, 'ACDBEFGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(NULL, 3, 1, 'ACDEBFGH');
INSERT INTO test1(col1,col2,col3,col4) VALUES(NULL, 3, NULL, 'ACDEFBGH');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Nullable(UInt64), col2 UInt64, col3 Nullable(UInt64), col4 String) ENGINE=TinyLog;
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(0, 2, 1, 'ABCDEFGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(0, 3, NULL, 'BACDEFGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(1, 5, 1, 'BCADEFGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(1, 2, NULL, 'BCDAEFGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(1, 3, 1, 'BCDEAFGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(1, 5, NULL, 'BCDEFAGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(1, 2, 1, 'BCDEFGAH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(1, 3, NULL, 'BCDEFGHA');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(1, 5, 1, 'ACBDEFGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(NULL, 2, NULL, 'ACDBEFGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(NULL, 3, 1, 'ACDEBFGH');
INSERT INTO test1_00395(col1,col2,col3,col4) VALUES(NULL, 3, NULL, 'ACDEFBGH');
SELECT col1, col2, col3, count() FROM test1 GROUP BY col1, col2, col3 ORDER BY col1, col2, col3;
SELECT col1, col2, col3, count() FROM test1_00395 GROUP BY col1, col2, col3 ORDER BY col1, col2, col3;
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(col1 Array(Nullable(UInt8)), col2 String) ENGINE=TinyLog;
INSERT INTO test1(col1,col2) VALUES([0], 'ABCDEFGH');
INSERT INTO test1(col1,col2) VALUES([0], 'BACDEFGH');
INSERT INTO test1(col1,col2) VALUES([1], 'BCADEFGH');
INSERT INTO test1(col1,col2) VALUES([1], 'BCDAEFGH');
INSERT INTO test1(col1,col2) VALUES([1], 'BCDEAFGH');
INSERT INTO test1(col1,col2) VALUES([1], 'BCDEFAGH');
INSERT INTO test1(col1,col2) VALUES([1], 'BCDEFGAH');
INSERT INTO test1(col1,col2) VALUES([1], 'BCDEFGHA');
INSERT INTO test1(col1,col2) VALUES([1], 'ACBDEFGH');
INSERT INTO test1(col1,col2) VALUES([NULL], 'ACDBEFGH');
INSERT INTO test1(col1,col2) VALUES([NULL], 'ACDEBFGH');
INSERT INTO test1(col1,col2) VALUES([NULL], 'ACDEFBGH');
DROP TABLE IF EXISTS test1_00395;
CREATE TABLE test1_00395(col1 Array(Nullable(UInt8)), col2 String) ENGINE=TinyLog;
INSERT INTO test1_00395(col1,col2) VALUES([0], 'ABCDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES([0], 'BACDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES([1], 'BCADEFGH');
INSERT INTO test1_00395(col1,col2) VALUES([1], 'BCDAEFGH');
INSERT INTO test1_00395(col1,col2) VALUES([1], 'BCDEAFGH');
INSERT INTO test1_00395(col1,col2) VALUES([1], 'BCDEFAGH');
INSERT INTO test1_00395(col1,col2) VALUES([1], 'BCDEFGAH');
INSERT INTO test1_00395(col1,col2) VALUES([1], 'BCDEFGHA');
INSERT INTO test1_00395(col1,col2) VALUES([1], 'ACBDEFGH');
INSERT INTO test1_00395(col1,col2) VALUES([NULL], 'ACDBEFGH');
INSERT INTO test1_00395(col1,col2) VALUES([NULL], 'ACDEBFGH');
INSERT INTO test1_00395(col1,col2) VALUES([NULL], 'ACDEFBGH');
SELECT col1, count() FROM test1 GROUP BY col1 ORDER BY col1;
SELECT col1, count() FROM test1_00395 GROUP BY col1 ORDER BY col1;
DROP TABLE IF EXISTS test1_00395;

View File

@ -1,48 +1,48 @@
DROP TABLE IF EXISTS test.stripe1;
DROP TABLE IF EXISTS test.stripe2;
DROP TABLE IF EXISTS test.stripe3;
DROP TABLE IF EXISTS test.stripe4;
DROP TABLE IF EXISTS test.stripe5;
DROP TABLE IF EXISTS test.stripe6;
DROP TABLE IF EXISTS test.stripe7;
DROP TABLE IF EXISTS test.stripe8;
DROP TABLE IF EXISTS test.stripe9;
DROP TABLE IF EXISTS test.stripe10;
DROP TABLE IF EXISTS test.merge;
DROP TABLE IF EXISTS stripe1;
DROP TABLE IF EXISTS stripe2;
DROP TABLE IF EXISTS stripe3;
DROP TABLE IF EXISTS stripe4;
DROP TABLE IF EXISTS stripe5;
DROP TABLE IF EXISTS stripe6;
DROP TABLE IF EXISTS stripe7;
DROP TABLE IF EXISTS stripe8;
DROP TABLE IF EXISTS stripe9;
DROP TABLE IF EXISTS stripe10;
DROP TABLE IF EXISTS merge_00401;
CREATE TABLE test.stripe1 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe2 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe3 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe4 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe5 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe6 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe7 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe8 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe9 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.stripe10 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe1 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe2 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe3 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe4 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe5 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe6 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe7 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe8 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe9 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE stripe10 ENGINE = StripeLog AS SELECT number AS x FROM system.numbers LIMIT 10;
CREATE TABLE test.merge AS test.stripe1 ENGINE = Merge(test, '^stripe\\d+');
CREATE TABLE merge_00401 AS stripe1 ENGINE = Merge(currentDatabase(), '^stripe\\d+');
SELECT x, count() FROM test.merge GROUP BY x ORDER BY x;
SELECT x, count() FROM merge_00401 GROUP BY x ORDER BY x;
SET max_threads = 1;
SELECT x, count() FROM test.merge GROUP BY x ORDER BY x;
SELECT x, count() FROM merge_00401 GROUP BY x ORDER BY x;
SET max_threads = 2;
SELECT x, count() FROM test.merge GROUP BY x ORDER BY x;
SELECT x, count() FROM merge_00401 GROUP BY x ORDER BY x;
SET max_threads = 5;
SELECT x, count() FROM test.merge GROUP BY x ORDER BY x;
SELECT x, count() FROM merge_00401 GROUP BY x ORDER BY x;
SET max_threads = 10;
SELECT x, count() FROM test.merge GROUP BY x ORDER BY x;
SELECT x, count() FROM merge_00401 GROUP BY x ORDER BY x;
SET max_threads = 20;
SELECT x, count() FROM test.merge GROUP BY x ORDER BY x;
SELECT x, count() FROM merge_00401 GROUP BY x ORDER BY x;
DROP TABLE IF EXISTS test.stripe1;
DROP TABLE IF EXISTS test.stripe2;
DROP TABLE IF EXISTS test.stripe3;
DROP TABLE IF EXISTS test.stripe4;
DROP TABLE IF EXISTS test.stripe5;
DROP TABLE IF EXISTS test.stripe6;
DROP TABLE IF EXISTS test.stripe7;
DROP TABLE IF EXISTS test.stripe8;
DROP TABLE IF EXISTS test.stripe9;
DROP TABLE IF EXISTS test.stripe10;
DROP TABLE IF EXISTS test.merge;
DROP TABLE IF EXISTS stripe1;
DROP TABLE IF EXISTS stripe2;
DROP TABLE IF EXISTS stripe3;
DROP TABLE IF EXISTS stripe4;
DROP TABLE IF EXISTS stripe5;
DROP TABLE IF EXISTS stripe6;
DROP TABLE IF EXISTS stripe7;
DROP TABLE IF EXISTS stripe8;
DROP TABLE IF EXISTS stripe9;
DROP TABLE IF EXISTS stripe10;
DROP TABLE IF EXISTS merge_00401;

View File

@ -15,24 +15,24 @@ function perform()
fi
}
perform "DROP TABLE IF EXISTS alter"
perform "CREATE TABLE alter (d Date, a Enum8('foo'=1), b DateTime, c DateTime) ENGINE=MergeTree(d, (a, b, toTime(c)), 8192)"
perform "DROP TABLE IF EXISTS alter_00427"
perform "CREATE TABLE alter_00427 (d Date, a Enum8('foo'=1), b DateTime, c DateTime) ENGINE=MergeTree(d, (a, b, toTime(c)), 8192)"
perform "INSERT INTO alter VALUES ('2017-02-09', 'foo', '2017-02-09 00:00:00', '2017-02-09 00:00:00')"
perform "INSERT INTO alter_00427 VALUES ('2017-02-09', 'foo', '2017-02-09 00:00:00', '2017-02-09 00:00:00')"
# Must fail because d is used as as a date column in MergeTree
perform "ALTER TABLE alter MODIFY COLUMN d UInt16"
perform "ALTER TABLE alter_00427 MODIFY COLUMN d UInt16"
perform "ALTER TABLE alter MODIFY COLUMN a Enum8('foo'=1, 'bar'=2)"
perform "ALTER TABLE alter MODIFY COLUMN b UInt32"
perform "ALTER TABLE alter_00427 MODIFY COLUMN a Enum8('foo'=1, 'bar'=2)"
perform "ALTER TABLE alter_00427 MODIFY COLUMN b UInt32"
# Must fail because column c is used in primary key via an expression.
perform "ALTER TABLE alter MODIFY COLUMN c UInt32"
perform "ALTER TABLE alter_00427 MODIFY COLUMN c UInt32"
perform "INSERT INTO alter VALUES ('2017-02-09', 'bar', 1486598400, '2017-02-09 00:00:00')"
perform "INSERT INTO alter_00427 VALUES ('2017-02-09', 'bar', 1486598400, '2017-02-09 00:00:00')"
perform "SELECT d FROM alter WHERE a = 'bar'"
perform "SELECT d FROM alter_00427 WHERE a = 'bar'"
perform "SELECT a, b, b = toUnixTimestamp(c) FROM alter ORDER BY a FORMAT TSV"
perform "SELECT a, b, b = toUnixTimestamp(c) FROM alter_00427 ORDER BY a FORMAT TSV"
perform "DROP TABLE alter"
perform "DROP TABLE alter_00427"

View File

@ -1,136 +1,136 @@
SELECT ' UInt32 | UInt64 ';
DROP TABLE IF EXISTS test.u32;
DROP TABLE IF EXISTS test.u64;
DROP TABLE IF EXISTS test.merge_32_64;
DROP TABLE IF EXISTS u32;
DROP TABLE IF EXISTS u64;
DROP TABLE IF EXISTS merge_32_64;
CREATE TABLE test.u32 (x UInt32, y UInt32 DEFAULT x) ENGINE = Memory;
CREATE TABLE test.u64 (x UInt64, y UInt64 DEFAULT x) ENGINE = Memory;
CREATE TABLE test.merge_32_64 (x UInt64) ENGINE = Merge(test, '^u32|u64$');
CREATE TABLE u32 (x UInt32, y UInt32 DEFAULT x) ENGINE = Memory;
CREATE TABLE u64 (x UInt64, y UInt64 DEFAULT x) ENGINE = Memory;
CREATE TABLE merge_32_64 (x UInt64) ENGINE = Merge(currentDatabase(), '^u32|u64$');
INSERT INTO test.u32 (x) VALUES (1);
INSERT INTO test.u64 (x) VALUES (1);
INSERT INTO u32 (x) VALUES (1);
INSERT INTO u64 (x) VALUES (1);
INSERT INTO test.u32 (x) VALUES (4294967290);
INSERT INTO test.u64 (x) VALUES (4294967290);
INSERT INTO u32 (x) VALUES (4294967290);
INSERT INTO u64 (x) VALUES (4294967290);
--now inserts 3. maybe need out of range check?
--INSERT INTO test.u32 VALUES (4294967299);
INSERT INTO test.u64 (x) VALUES (4294967299);
--INSERT INTO u32 VALUES (4294967299);
INSERT INTO u64 (x) VALUES (4294967299);
select ' = 1:';
SELECT x FROM test.merge_32_64 WHERE x = 1;
SELECT x FROM merge_32_64 WHERE x = 1;
select ' 1:';
SELECT x FROM test.merge_32_64 WHERE x IN (1);
SELECT x FROM merge_32_64 WHERE x IN (1);
select ' 4294967290:';
SELECT x FROM test.merge_32_64 WHERE x IN (4294967290);
SELECT x FROM merge_32_64 WHERE x IN (4294967290);
select ' 4294967299:';
SELECT x FROM test.merge_32_64 WHERE x IN (4294967299);
SELECT x FROM merge_32_64 WHERE x IN (4294967299);
--select ' -1: ';
--SELECT x FROM test.merge_32_64 WHERE x IN (-1);
--SELECT x FROM merge_32_64 WHERE x IN (-1);
DROP TABLE test.u32;
DROP TABLE test.u64;
DROP TABLE test.merge_32_64;
DROP TABLE u32;
DROP TABLE u64;
DROP TABLE merge_32_64;
SELECT ' Int64 | UInt64 ';
DROP TABLE IF EXISTS test.s64;
DROP TABLE IF EXISTS test.u64;
DROP TABLE IF EXISTS test.merge_s64_u64;
DROP TABLE IF EXISTS s64;
DROP TABLE IF EXISTS u64;
DROP TABLE IF EXISTS merge_s64_u64;
CREATE TABLE test.s64 (x Int64) ENGINE = Memory;
CREATE TABLE test.u64 (x UInt64) ENGINE = Memory;
CREATE TABLE test.merge_s64_u64 (x UInt64) ENGINE = Merge(test, '^s64|u64$');
CREATE TABLE s64 (x Int64) ENGINE = Memory;
CREATE TABLE u64 (x UInt64) ENGINE = Memory;
CREATE TABLE merge_s64_u64 (x UInt64) ENGINE = Merge(currentDatabase(), '^s64|u64$');
INSERT INTO test.s64 VALUES (1);
INSERT INTO test.s64 VALUES (-1);
INSERT INTO test.u64 VALUES (1);
INSERT INTO s64 VALUES (1);
INSERT INTO s64 VALUES (-1);
INSERT INTO u64 VALUES (1);
select ' 1:';
SELECT x FROM test.merge_s64_u64 WHERE x IN (1);
SELECT x FROM merge_s64_u64 WHERE x IN (1);
select ' -1: ';
SELECT x FROM test.merge_s64_u64 WHERE x IN (-1);
SELECT x FROM merge_s64_u64 WHERE x IN (-1);
DROP TABLE test.s64;
DROP TABLE test.u64;
DROP TABLE test.merge_s64_u64;
DROP TABLE s64;
DROP TABLE u64;
DROP TABLE merge_s64_u64;
SELECT ' Int32 | UInt64 ';
DROP TABLE IF EXISTS test.one;
DROP TABLE IF EXISTS test.two;
DROP TABLE IF EXISTS test.merge_one_two;
DROP TABLE IF EXISTS one_00458;
DROP TABLE IF EXISTS two_00458;
DROP TABLE IF EXISTS merge_one_two;
CREATE TABLE test.one (x Int32) ENGINE = Memory;
CREATE TABLE test.two (x UInt64) ENGINE = Memory;
CREATE TABLE test.merge_one_two (x UInt64) ENGINE = Merge(test, '^one$|^two$');
CREATE TABLE one_00458 (x Int32) ENGINE = Memory;
CREATE TABLE two_00458 (x UInt64) ENGINE = Memory;
CREATE TABLE merge_one_two (x UInt64) ENGINE = Merge(currentDatabase(), '^one_00458$|^two_00458$');
INSERT INTO test.one VALUES (1);
INSERT INTO test.two VALUES (1);
INSERT INTO one_00458 VALUES (1);
INSERT INTO two_00458 VALUES (1);
INSERT INTO test.one VALUES (2147483650);
INSERT INTO test.two VALUES (2147483650);
INSERT INTO one_00458 VALUES (2147483650);
INSERT INTO two_00458 VALUES (2147483650);
SELECT * FROM test.merge_one_two WHERE x IN (1);
SELECT x FROM test.merge_one_two WHERE x IN (2147483650);
SELECT x FROM test.merge_one_two WHERE x IN (-1);
SELECT * FROM merge_one_two WHERE x IN (1);
SELECT x FROM merge_one_two WHERE x IN (2147483650);
SELECT x FROM merge_one_two WHERE x IN (-1);
SELECT ' String | FixedString(16) ';
DROP TABLE IF EXISTS test.one;
DROP TABLE IF EXISTS test.two;
DROP TABLE IF EXISTS test.merge_one_two;
DROP TABLE IF EXISTS one_00458;
DROP TABLE IF EXISTS two_00458;
DROP TABLE IF EXISTS merge_one_two;
CREATE TABLE test.one (x String) ENGINE = Memory;
CREATE TABLE test.two (x FixedString(16)) ENGINE = Memory;
CREATE TABLE test.merge_one_two (x String) ENGINE = Merge(test, '^one$|^two$');
CREATE TABLE one_00458 (x String) ENGINE = Memory;
CREATE TABLE two_00458 (x FixedString(16)) ENGINE = Memory;
CREATE TABLE merge_one_two (x String) ENGINE = Merge(currentDatabase(), '^one_00458$|^two_00458$');
INSERT INTO test.one VALUES ('1');
INSERT INTO test.two VALUES ('1');
INSERT INTO one_00458 VALUES ('1');
INSERT INTO two_00458 VALUES ('1');
SELECT * FROM test.merge_one_two WHERE x IN ('1');
SELECT * FROM merge_one_two WHERE x IN ('1');
SELECT ' DateTime | UInt64 ';
DROP TABLE IF EXISTS test.one;
DROP TABLE IF EXISTS test.two;
DROP TABLE IF EXISTS test.merge_one_two;
DROP TABLE IF EXISTS one_00458;
DROP TABLE IF EXISTS two_00458;
DROP TABLE IF EXISTS merge_one_two;
CREATE TABLE test.one (x DateTime) ENGINE = Memory;
CREATE TABLE test.two (x UInt64) ENGINE = Memory;
CREATE TABLE test.merge_one_two (x UInt64) ENGINE = Merge(test, '^one$|^two$');
CREATE TABLE one_00458 (x DateTime) ENGINE = Memory;
CREATE TABLE two_00458 (x UInt64) ENGINE = Memory;
CREATE TABLE merge_one_two (x UInt64) ENGINE = Merge(currentDatabase(), '^one_00458$|^two_00458$');
INSERT INTO test.one VALUES (1);
INSERT INTO test.two VALUES (1);
INSERT INTO one_00458 VALUES (1);
INSERT INTO two_00458 VALUES (1);
SELECT * FROM test.merge_one_two WHERE x IN (1);
SELECT * FROM merge_one_two WHERE x IN (1);
SELECT ' Array(UInt32) | Array(UInt64) ';
DROP TABLE IF EXISTS test.one;
DROP TABLE IF EXISTS test.two;
DROP TABLE IF EXISTS test.merge_one_two;
DROP TABLE IF EXISTS one_00458;
DROP TABLE IF EXISTS two_00458;
DROP TABLE IF EXISTS merge_one_two;
CREATE TABLE test.one (x Array(UInt32), z String DEFAULT '', y Array(UInt32)) ENGINE = Memory;
CREATE TABLE test.two (x Array(UInt64), z String DEFAULT '', y Array(UInt64)) ENGINE = Memory;
CREATE TABLE test.merge_one_two (x Array(UInt64), z String, y Array(UInt64)) ENGINE = Merge(test, '^one$|^two$');
CREATE TABLE one_00458 (x Array(UInt32), z String DEFAULT '', y Array(UInt32)) ENGINE = Memory;
CREATE TABLE two_00458 (x Array(UInt64), z String DEFAULT '', y Array(UInt64)) ENGINE = Memory;
CREATE TABLE merge_one_two (x Array(UInt64), z String, y Array(UInt64)) ENGINE = Merge(currentDatabase(), '^one_00458$|^two_00458$');
INSERT INTO test.one (x, y) VALUES ([1], [0]);
INSERT INTO test.two (x, y) VALUES ([1], [0]);
INSERT INTO test.one (x, y) VALUES ([4294967290], [4294967290]);
INSERT INTO test.two (x, y) VALUES ([4294967290], [4294967290]);
INSERT INTO test.one (x, y) VALUES ([4294967299], [4294967299]);
INSERT INTO test.two (x, y) VALUES ([4294967299], [4294967299]);
INSERT INTO one_00458 (x, y) VALUES ([1], [0]);
INSERT INTO two_00458 (x, y) VALUES ([1], [0]);
INSERT INTO one_00458 (x, y) VALUES ([4294967290], [4294967290]);
INSERT INTO two_00458 (x, y) VALUES ([4294967290], [4294967290]);
INSERT INTO one_00458 (x, y) VALUES ([4294967299], [4294967299]);
INSERT INTO two_00458 (x, y) VALUES ([4294967299], [4294967299]);
SELECT x, y FROM test.merge_one_two WHERE arrayExists(_ -> _ IN (1), x);
SELECT x, y FROM test.merge_one_two WHERE arrayExists(_ -> _ IN (4294967290), x);
SELECT x, y FROM test.merge_one_two WHERE arrayExists(_ -> _ IN (4294967299), x);
SELECT x, y FROM merge_one_two WHERE arrayExists(_ -> _ IN (1), x);
SELECT x, y FROM merge_one_two WHERE arrayExists(_ -> _ IN (4294967290), x);
SELECT x, y FROM merge_one_two WHERE arrayExists(_ -> _ IN (4294967299), x);
DROP TABLE IF EXISTS test.one;
DROP TABLE IF EXISTS test.two;
DROP TABLE IF EXISTS test.merge_one_two;
DROP TABLE IF EXISTS one_00458;
DROP TABLE IF EXISTS two_00458;
DROP TABLE IF EXISTS merge_one_two;

View File

@ -4,30 +4,30 @@ SELECT 'ab\0c' < 'ab\0d', 'ab\0c' > 'ab\0d';
SELECT 'a' < 'a\0b', 'a' > 'a\0b';
SELECT 'a\0\0\0\0' < 'a\0\0\0', 'a\0\0\0\0' > 'a\0\0\0';
DROP TABLE IF EXISTS strings;
CREATE TABLE strings(x String, y String) ENGINE = TinyLog;
DROP TABLE IF EXISTS strings_00469;
CREATE TABLE strings_00469(x String, y String) ENGINE = TinyLog;
INSERT INTO strings VALUES
INSERT INTO strings_00469 VALUES
('abcde\0', 'abcde'), ('aa\0a', 'aa\0b'), ('aa', 'aa\0'), ('a\0\0\0\0', 'a\0\0\0'), ('a\0\0', 'a\0'), ('a', 'a');
SELECT '**** vector-vector comparisons ****';
SELECT x < y, x > y FROM strings;
SELECT x < y, x > y FROM strings_00469;
SELECT '**** vector-constant comparisons ****';
SELECT x < 'aa', x > 'aa' FROM strings;
SELECT x < 'aa', x > 'aa' FROM strings_00469;
SELECT '****';
SELECT x < 'a\0', x > 'a\0' FROM strings;
SELECT x < 'a\0', x > 'a\0' FROM strings_00469;
SELECT '**** single-column sort ****'; -- Uses ColumnString::getPermutation()
SELECT * FROM strings ORDER BY x;
SELECT * FROM strings_00469 ORDER BY x;
SELECT '**** multi-column sort ****'; -- Uses ColumnString::compareAt()
SELECT * FROM strings ORDER BY x, y;
SELECT * FROM strings_00469 ORDER BY x, y;
DROP TABLE strings;
DROP TABLE strings_00469;

View File

@ -1 +1,2 @@
CREATE TEMPORARY TABLE t (x Array( /* Hello */ UInt32 /* World */ )) ENGINE = Memory;
DROP TEMPORARY TABLE IF EXISTS t_00477;
CREATE TEMPORARY TABLE t_00477 (x Array( /* Hello */ UInt32 /* World */ )) ENGINE = Memory;

View File

@ -1,12 +1,12 @@
DROP TABLE IF EXISTS null;
DROP TABLE IF EXISTS null_00481;
DROP TABLE IF EXISTS null_view;
CREATE TABLE null (x UInt8) ENGINE = Null;
CREATE VIEW null_view AS SELECT * FROM null;
INSERT INTO null VALUES (1);
CREATE TABLE null_00481 (x UInt8) ENGINE = Null;
CREATE VIEW null_view AS SELECT * FROM null_00481;
INSERT INTO null_00481 VALUES (1);
SELECT * FROM null;
SELECT * FROM null_00481;
SELECT * FROM null_view;
DROP TABLE null;
DROP TABLE null_00481;
DROP TABLE null_view;

View File

@ -1,13 +1,13 @@
drop table if exists table;
create table `table` (date Date, `Struct.Key1` Array(UInt64), `Struct.Key2` Array(UInt64), padding FixedString(16)) engine = MergeTree(date, (date), 16);
insert into `table` select today() as date, [number], [number + 1], toFixedString('', 16) from system.numbers limit 100;
drop table if exists `table_00483`;
create table `table_00483` (date Date, `Struct.Key1` Array(UInt64), `Struct.Key2` Array(UInt64), padding FixedString(16)) engine = MergeTree(date, (date), 16);
insert into `table_00483` select today() as date, [number], [number + 1], toFixedString('', 16) from system.numbers limit 100;
set preferred_max_column_in_block_size_bytes = 96;
select blockSize(), * from `table` prewhere `Struct.Key1`[1] = 19 and `Struct.Key2`[1] >= 0 format Null;
select blockSize(), * from `table_00483` prewhere `Struct.Key1`[1] = 19 and `Struct.Key2`[1] >= 0 format Null;
drop table if exists `table`;
create table `table` (date Date, `Struct.Key1` Array(UInt64), `Struct.Key2` Array(UInt64), padding FixedString(16), x UInt64) engine = MergeTree(date, (date), 8);
insert into `table` select today() as date, [number], [number + 1], toFixedString('', 16), number from system.numbers limit 100;
drop table if exists `table_00483`;
create table `table_00483` (date Date, `Struct.Key1` Array(UInt64), `Struct.Key2` Array(UInt64), padding FixedString(16), x UInt64) engine = MergeTree(date, (date), 8);
insert into `table_00483` select today() as date, [number], [number + 1], toFixedString('', 16), number from system.numbers limit 100;
set preferred_max_column_in_block_size_bytes = 112;
select blockSize(), * from table prewhere x = 7 format Null;
select blockSize(), * from `table_00483` prewhere x = 7 format Null;
drop table if exists `table`;
drop table if exists `table_00483`;

View File

@ -2,131 +2,131 @@ SET replication_alter_partitions_sync = 2;
SELECT '*** Not partitioned ***';
DROP TABLE IF EXISTS test.not_partitioned_replica1;
DROP TABLE IF EXISTS test.not_partitioned_replica2;
CREATE TABLE test.not_partitioned_replica1(x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/not_partitioned', '1') ORDER BY x;
CREATE TABLE test.not_partitioned_replica2(x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/not_partitioned', '2') ORDER BY x;
DROP TABLE IF EXISTS not_partitioned_replica1_00502;
DROP TABLE IF EXISTS not_partitioned_replica2_00502;
CREATE TABLE not_partitioned_replica1_00502(x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/not_partitioned_00502', '1') ORDER BY x;
CREATE TABLE not_partitioned_replica2_00502(x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/not_partitioned_00502', '2') ORDER BY x;
INSERT INTO test.not_partitioned_replica1 VALUES (1), (2), (3);
INSERT INTO test.not_partitioned_replica1 VALUES (4), (5);
INSERT INTO not_partitioned_replica1_00502 VALUES (1), (2), (3);
INSERT INTO not_partitioned_replica1_00502 VALUES (4), (5);
SELECT 'Parts before OPTIMIZE:';
SELECT partition, name FROM system.parts WHERE database = 'test' AND table = 'not_partitioned_replica1' AND active ORDER BY name;
SYSTEM SYNC REPLICA test.not_partitioned_replica1;
OPTIMIZE TABLE test.not_partitioned_replica1 PARTITION tuple() FINAL;
SELECT partition, name FROM system.parts WHERE database = currentDatabase() AND table = 'not_partitioned_replica1_00502' AND active ORDER BY name;
SYSTEM SYNC REPLICA not_partitioned_replica1_00502;
OPTIMIZE TABLE not_partitioned_replica1_00502 PARTITION tuple() FINAL;
SELECT 'Parts after OPTIMIZE:';
SELECT partition, name FROM system.parts WHERE database = 'test' AND table = 'not_partitioned_replica2' AND active ORDER BY name;
SELECT partition, name FROM system.parts WHERE database = currentDatabase() AND table = 'not_partitioned_replica2_00502' AND active ORDER BY name;
SELECT 'Sum before DETACH PARTITION:';
SELECT sum(x) FROM test.not_partitioned_replica2;
ALTER TABLE test.not_partitioned_replica1 DETACH PARTITION ID 'all';
SELECT sum(x) FROM not_partitioned_replica2_00502;
ALTER TABLE not_partitioned_replica1_00502 DETACH PARTITION ID 'all';
SELECT 'Sum after DETACH PARTITION:';
SELECT sum(x) FROM test.not_partitioned_replica2;
SELECT sum(x) FROM not_partitioned_replica2_00502;
DROP TABLE test.not_partitioned_replica1;
DROP TABLE test.not_partitioned_replica2;
DROP TABLE not_partitioned_replica1_00502;
DROP TABLE not_partitioned_replica2_00502;
SELECT '*** Partitioned by week ***';
DROP TABLE IF EXISTS test.partitioned_by_week_replica1;
DROP TABLE IF EXISTS test.partitioned_by_week_replica2;
CREATE TABLE test.partitioned_by_week_replica1(d Date, x UInt8) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_week', '1') PARTITION BY toMonday(d) ORDER BY x;
CREATE TABLE test.partitioned_by_week_replica2(d Date, x UInt8) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_week', '2') PARTITION BY toMonday(d) ORDER BY x;
DROP TABLE IF EXISTS partitioned_by_week_replica1;
DROP TABLE IF EXISTS partitioned_by_week_replica2;
CREATE TABLE partitioned_by_week_replica1(d Date, x UInt8) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_week_00502', '1') PARTITION BY toMonday(d) ORDER BY x;
CREATE TABLE partitioned_by_week_replica2(d Date, x UInt8) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_week_00502', '2') PARTITION BY toMonday(d) ORDER BY x;
-- 2000-01-03 belongs to a different week than 2000-01-01 and 2000-01-02
INSERT INTO test.partitioned_by_week_replica1 VALUES ('2000-01-01', 1), ('2000-01-02', 2), ('2000-01-03', 3);
INSERT INTO test.partitioned_by_week_replica1 VALUES ('2000-01-03', 4), ('2000-01-03', 5);
INSERT INTO partitioned_by_week_replica1 VALUES ('2000-01-01', 1), ('2000-01-02', 2), ('2000-01-03', 3);
INSERT INTO partitioned_by_week_replica1 VALUES ('2000-01-03', 4), ('2000-01-03', 5);
SELECT 'Parts before OPTIMIZE:'; -- Select parts on the first replica to avoid waiting for replication.
SELECT partition, name FROM system.parts WHERE database = 'test' AND table = 'partitioned_by_week_replica1' AND active ORDER BY name;
SYSTEM SYNC REPLICA test.partitioned_by_week_replica1;
OPTIMIZE TABLE test.partitioned_by_week_replica1 PARTITION '2000-01-03' FINAL;
SELECT partition, name FROM system.parts WHERE database = currentDatabase() AND table = 'partitioned_by_week_replica1' AND active ORDER BY name;
SYSTEM SYNC REPLICA partitioned_by_week_replica1;
OPTIMIZE TABLE partitioned_by_week_replica1 PARTITION '2000-01-03' FINAL;
SELECT 'Parts after OPTIMIZE:'; -- After OPTIMIZE with replication_alter_partitions_sync=2 replicas must be in sync.
SELECT partition, name FROM system.parts WHERE database = 'test' AND table = 'partitioned_by_week_replica2' AND active ORDER BY name;
SELECT partition, name FROM system.parts WHERE database = currentDatabase() AND table = 'partitioned_by_week_replica2' AND active ORDER BY name;
SELECT 'Sum before DROP PARTITION:';
SELECT sum(x) FROM test.partitioned_by_week_replica2;
ALTER TABLE test.partitioned_by_week_replica1 DROP PARTITION '1999-12-27';
SELECT sum(x) FROM partitioned_by_week_replica2;
ALTER TABLE partitioned_by_week_replica1 DROP PARTITION '1999-12-27';
SELECT 'Sum after DROP PARTITION:';
SELECT sum(x) FROM test.partitioned_by_week_replica2;
SELECT sum(x) FROM partitioned_by_week_replica2;
DROP TABLE test.partitioned_by_week_replica1;
DROP TABLE test.partitioned_by_week_replica2;
DROP TABLE partitioned_by_week_replica1;
DROP TABLE partitioned_by_week_replica2;
SELECT '*** Partitioned by a (Date, UInt8) tuple ***';
DROP TABLE IF EXISTS test.partitioned_by_tuple_replica1;
DROP TABLE IF EXISTS test.partitioned_by_tuple_replica2;
CREATE TABLE test.partitioned_by_tuple_replica1(d Date, x UInt8, y UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_tuple', '1') ORDER BY x PARTITION BY (d, x);
CREATE TABLE test.partitioned_by_tuple_replica2(d Date, x UInt8, y UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_tuple', '2') ORDER BY x PARTITION BY (d, x);
DROP TABLE IF EXISTS partitioned_by_tuple_replica1_00502;
DROP TABLE IF EXISTS partitioned_by_tuple_replica2_00502;
CREATE TABLE partitioned_by_tuple_replica1_00502(d Date, x UInt8, y UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_tuple_00502', '1') ORDER BY x PARTITION BY (d, x);
CREATE TABLE partitioned_by_tuple_replica2_00502(d Date, x UInt8, y UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_tuple_00502', '2') ORDER BY x PARTITION BY (d, x);
INSERT INTO test.partitioned_by_tuple_replica1 VALUES ('2000-01-01', 1, 1), ('2000-01-01', 2, 2), ('2000-01-02', 1, 3);
INSERT INTO test.partitioned_by_tuple_replica1 VALUES ('2000-01-02', 1, 4), ('2000-01-01', 1, 5);
INSERT INTO partitioned_by_tuple_replica1_00502 VALUES ('2000-01-01', 1, 1), ('2000-01-01', 2, 2), ('2000-01-02', 1, 3);
INSERT INTO partitioned_by_tuple_replica1_00502 VALUES ('2000-01-02', 1, 4), ('2000-01-01', 1, 5);
SELECT 'Parts before OPTIMIZE:';
SELECT partition, name FROM system.parts WHERE database = 'test' AND table = 'partitioned_by_tuple_replica1' AND active ORDER BY name;
SYSTEM SYNC REPLICA test.partitioned_by_tuple_replica1;
OPTIMIZE TABLE test.partitioned_by_tuple_replica1 PARTITION ('2000-01-01', 1) FINAL;
OPTIMIZE TABLE test.partitioned_by_tuple_replica1 PARTITION ('2000-01-02', 1) FINAL;
SELECT partition, name FROM system.parts WHERE database = currentDatabase() AND table = 'partitioned_by_tuple_replica1_00502' AND active ORDER BY name;
SYSTEM SYNC REPLICA partitioned_by_tuple_replica1_00502;
OPTIMIZE TABLE partitioned_by_tuple_replica1_00502 PARTITION ('2000-01-01', 1) FINAL;
OPTIMIZE TABLE partitioned_by_tuple_replica1_00502 PARTITION ('2000-01-02', 1) FINAL;
SELECT 'Parts after OPTIMIZE:';
SELECT partition, name FROM system.parts WHERE database = 'test' AND table = 'partitioned_by_tuple_replica2' AND active ORDER BY name;
SELECT partition, name FROM system.parts WHERE database = currentDatabase() AND table = 'partitioned_by_tuple_replica2_00502' AND active ORDER BY name;
SELECT 'Sum before DETACH PARTITION:';
SELECT sum(y) FROM test.partitioned_by_tuple_replica2;
ALTER TABLE test.partitioned_by_tuple_replica1 DETACH PARTITION ID '20000101-1';
SELECT sum(y) FROM partitioned_by_tuple_replica2_00502;
ALTER TABLE partitioned_by_tuple_replica1_00502 DETACH PARTITION ID '20000101-1';
SELECT 'Sum after DETACH PARTITION:';
SELECT sum(y) FROM test.partitioned_by_tuple_replica2;
SELECT sum(y) FROM partitioned_by_tuple_replica2_00502;
DROP TABLE test.partitioned_by_tuple_replica1;
DROP TABLE test.partitioned_by_tuple_replica2;
DROP TABLE partitioned_by_tuple_replica1_00502;
DROP TABLE partitioned_by_tuple_replica2_00502;
SELECT '*** Partitioned by String ***';
DROP TABLE IF EXISTS test.partitioned_by_string_replica1;
DROP TABLE IF EXISTS test.partitioned_by_string_replica2;
CREATE TABLE test.partitioned_by_string_replica1(s String, x UInt8) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_string', '1') PARTITION BY s ORDER BY x;
CREATE TABLE test.partitioned_by_string_replica2(s String, x UInt8) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_string', '2') PARTITION BY s ORDER BY x;
DROP TABLE IF EXISTS partitioned_by_string_replica1;
DROP TABLE IF EXISTS partitioned_by_string_replica2;
CREATE TABLE partitioned_by_string_replica1(s String, x UInt8) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_string_00502', '1') PARTITION BY s ORDER BY x;
CREATE TABLE partitioned_by_string_replica2(s String, x UInt8) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/partitioned_by_string_00502', '2') PARTITION BY s ORDER BY x;
INSERT INTO test.partitioned_by_string_replica1 VALUES ('aaa', 1), ('aaa', 2), ('bbb', 3);
INSERT INTO test.partitioned_by_string_replica1 VALUES ('bbb', 4), ('aaa', 5);
INSERT INTO partitioned_by_string_replica1 VALUES ('aaa', 1), ('aaa', 2), ('bbb', 3);
INSERT INTO partitioned_by_string_replica1 VALUES ('bbb', 4), ('aaa', 5);
SELECT 'Parts before OPTIMIZE:';
SELECT partition, name FROM system.parts WHERE database = 'test' AND table = 'partitioned_by_string_replica1' AND active ORDER BY name;
SYSTEM SYNC REPLICA test.partitioned_by_string_replica2;
OPTIMIZE TABLE test.partitioned_by_string_replica2 PARTITION 'aaa' FINAL;
SELECT partition, name FROM system.parts WHERE database = currentDatabase() AND table = 'partitioned_by_string_replica1' AND active ORDER BY name;
SYSTEM SYNC REPLICA partitioned_by_string_replica2;
OPTIMIZE TABLE partitioned_by_string_replica2 PARTITION 'aaa' FINAL;
SELECT 'Parts after OPTIMIZE:';
SELECT partition, name FROM system.parts WHERE database = 'test' AND table = 'partitioned_by_string_replica2' AND active ORDER BY name;
SELECT partition, name FROM system.parts WHERE database = currentDatabase() AND table = 'partitioned_by_string_replica2' AND active ORDER BY name;
SELECT 'Sum before DROP PARTITION:';
SELECT sum(x) FROM test.partitioned_by_string_replica2;
ALTER TABLE test.partitioned_by_string_replica1 DROP PARTITION 'bbb';
SELECT sum(x) FROM partitioned_by_string_replica2;
ALTER TABLE partitioned_by_string_replica1 DROP PARTITION 'bbb';
SELECT 'Sum after DROP PARTITION:';
SELECT sum(x) FROM test.partitioned_by_string_replica2;
SELECT sum(x) FROM partitioned_by_string_replica2;
DROP TABLE test.partitioned_by_string_replica1;
DROP TABLE test.partitioned_by_string_replica2;
DROP TABLE partitioned_by_string_replica1;
DROP TABLE partitioned_by_string_replica2;
SELECT '*** Table without columns with fixed size ***';
DROP TABLE IF EXISTS test.without_fixed_size_columns_replica1;
DROP TABLE IF EXISTS test.without_fixed_size_columns_replica2;
CREATE TABLE test.without_fixed_size_columns_replica1(s String) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/without_fixed_size_columns', '1') PARTITION BY length(s) ORDER BY s;
CREATE TABLE test.without_fixed_size_columns_replica2(s String) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/without_fixed_size_columns', '2') PARTITION BY length(s) ORDER BY s;
DROP TABLE IF EXISTS without_fixed_size_columns_replica1;
DROP TABLE IF EXISTS without_fixed_size_columns_replica2;
CREATE TABLE without_fixed_size_columns_replica1(s String) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/without_fixed_size_columns_00502', '1') PARTITION BY length(s) ORDER BY s;
CREATE TABLE without_fixed_size_columns_replica2(s String) ENGINE ReplicatedMergeTree('/clickhouse/tables/test/without_fixed_size_columns_00502', '2') PARTITION BY length(s) ORDER BY s;
INSERT INTO test.without_fixed_size_columns_replica1 VALUES ('a'), ('aa'), ('b'), ('cc');
INSERT INTO without_fixed_size_columns_replica1 VALUES ('a'), ('aa'), ('b'), ('cc');
-- Wait for replication.
SYSTEM SYNC REPLICA test.without_fixed_size_columns_replica2;
OPTIMIZE TABLE test.without_fixed_size_columns_replica2 PARTITION 1 FINAL;
SYSTEM SYNC REPLICA without_fixed_size_columns_replica2;
OPTIMIZE TABLE without_fixed_size_columns_replica2 PARTITION 1 FINAL;
SELECT 'Parts:';
SELECT partition, name, rows FROM system.parts WHERE database = 'test' AND table = 'without_fixed_size_columns_replica2' AND active ORDER BY name;
SELECT partition, name, rows FROM system.parts WHERE database = currentDatabase() AND table = 'without_fixed_size_columns_replica2' AND active ORDER BY name;
SELECT 'Before DROP PARTITION:';
SELECT * FROM test.without_fixed_size_columns_replica2 ORDER BY s;
ALTER TABLE test.without_fixed_size_columns_replica1 DROP PARTITION 1;
SELECT * FROM without_fixed_size_columns_replica2 ORDER BY s;
ALTER TABLE without_fixed_size_columns_replica1 DROP PARTITION 1;
SELECT 'After DROP PARTITION:';
SELECT * FROM test.without_fixed_size_columns_replica2 ORDER BY s;
SELECT * FROM without_fixed_size_columns_replica2 ORDER BY s;
DROP TABLE test.without_fixed_size_columns_replica1;
DROP TABLE test.without_fixed_size_columns_replica2;
DROP TABLE without_fixed_size_columns_replica1;
DROP TABLE without_fixed_size_columns_replica2;

View File

@ -1,3 +1,5 @@
CREATE TEMPORARY TABLE t1 AS SELECT 1;
CREATE TEMPORARY TABLE t3 AS SELECT * FROM t1;
SELECT * FROM t3;
DROP TEMPORARY TABLE IF EXISTS t1_00519;
DROP TEMPORARY TABLE IF EXISTS t3_00519;
CREATE TEMPORARY TABLE t1_00519 AS SELECT 1;
CREATE TEMPORARY TABLE t3_00519 AS SELECT * FROM t1_00519;
SELECT * FROM t3_00519;

View File

@ -1,9 +1,9 @@
SET join_use_nulls = 1;
DROP TABLE IF EXISTS null;
CREATE TABLE null (k UInt64, a String, b Nullable(String)) ENGINE = Log;
DROP TABLE IF EXISTS null_00549;
CREATE TABLE null_00549 (k UInt64, a String, b Nullable(String)) ENGINE = Log;
INSERT INTO null SELECT
INSERT INTO null_00549 SELECT
k,
a,
b
@ -25,6 +25,6 @@ ANY LEFT JOIN
) USING (k)
ORDER BY k ASC;
SELECT * FROM null ORDER BY k, a, b;
SELECT * FROM null_00549 ORDER BY k, a, b;
DROP TABLE null;
DROP TABLE null_00549;

View File

@ -4,22 +4,22 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
. $CURDIR/../shell_config.sh
$CLICKHOUSE_CLIENT -n --ignore-error --query="
DROP TABLE IF EXISTS test1;
DROP TABLE IF EXISTS test2;
DROP TABLE IF EXISTS test3;
DROP TABLE IF EXISTS test1_00550;
DROP TABLE IF EXISTS test2_00550;
DROP TABLE IF EXISTS test3_00550;
CREATE TABLE test1 ( id String ) ENGINE = StripeLog;
CREATE TABLE test2 ( id String ) ENGINE = StripeLog;
INSERT INTO test2 VALUES ('a');
CREATE TABLE test3 ( id String, name String ) ENGINE = StripeLog;
INSERT INTO test3 VALUES ('a', 'aaa');
CREATE TABLE test1_00550 ( id String ) ENGINE = StripeLog;
CREATE TABLE test2_00550 ( id String ) ENGINE = StripeLog;
INSERT INTO test2_00550 VALUES ('a');
CREATE TABLE test3_00550 ( id String, name String ) ENGINE = StripeLog;
INSERT INTO test3_00550 VALUES ('a', 'aaa');
INSERT INTO test1 SELECT id, name FROM test2 ANY INNER JOIN test3 USING (id);
INSERT INTO test1 SELECT id, name FROM test2 ANY LEFT OUTER JOIN test3 USING (id);
INSERT INTO test1_00550 SELECT id, name FROM test2_00550 ANY INNER JOIN test3_00550 USING (id);
INSERT INTO test1_00550 SELECT id, name FROM test2_00550 ANY LEFT OUTER JOIN test3_00550 USING (id);
DROP TABLE test1;
DROP TABLE test2;
DROP TABLE test3;
DROP TABLE test1_00550;
DROP TABLE test2_00550;
DROP TABLE test3_00550;
" --server_logs_file=/dev/null 2>&1 | grep -F "Number of columns doesn't match" | wc -l
$CLICKHOUSE_CLIENT --query="SELECT 1";

View File

@ -1,9 +1,9 @@
DROP TABLE IF EXISTS null;
DROP TABLE IF EXISTS null_00557;
CREATE TABLE null (x UInt8) ENGINE = Null;
DESCRIBE TABLE null;
CREATE TABLE null_00557 (x UInt8) ENGINE = Null;
DESCRIBE TABLE null_00557;
ALTER TABLE null ADD COLUMN y String, MODIFY COLUMN x Int64 DEFAULT toInt64(y);
DESCRIBE TABLE null;
ALTER TABLE null_00557 ADD COLUMN y String, MODIFY COLUMN x Int64 DEFAULT toInt64(y);
DESCRIBE TABLE null_00557;
DROP TABLE null;
DROP TABLE null_00557;

View File

@ -1,10 +1,10 @@
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00562;
CREATE TABLE test ( s String, i Int64) ENGINE = Memory;
CREATE TABLE test_00562 ( s String, i Int64) ENGINE = Memory;
INSERT INTO test VALUES('test_string', 1);
INSERT INTO test_00562 VALUES('test_string', 1);
SELECT s, SUM(i*2) AS i FROM test GROUP BY s UNION ALL SELECT s, SUM(i*2) AS i FROM test GROUP BY s;
SELECT s FROM (SELECT s, SUM(i*2) AS i FROM test GROUP BY s UNION ALL SELECT s, SUM(i*2) AS i FROM test GROUP BY s);
SELECT s, SUM(i*2) AS i FROM test_00562 GROUP BY s UNION ALL SELECT s, SUM(i*2) AS i FROM test_00562 GROUP BY s;
SELECT s FROM (SELECT s, SUM(i*2) AS i FROM test_00562 GROUP BY s UNION ALL SELECT s, SUM(i*2) AS i FROM test_00562 GROUP BY s);
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00562;

View File

@ -1,12 +1,11 @@
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00563;
CREATE TABLE test_00563 ( dt Date, site_id Int32, site_key String ) ENGINE = MergeTree(dt, (site_id, site_key, dt), 8192);
INSERT INTO test_00563 (dt,site_id, site_key) VALUES ('2018-1-29', 100, 'key');
SELECT * FROM test_00563 WHERE toInt32(site_id) IN (100);
SELECT * FROM test_00563 WHERE toInt32(site_id) IN (100,101);
CREATE TABLE test ( dt Date, site_id Int32, site_key String ) ENGINE = MergeTree(dt, (site_id, site_key, dt), 8192);
INSERT INTO test (dt,site_id, site_key) VALUES ('2018-1-29', 100, 'key');
SELECT * FROM test WHERE toInt32(site_id) IN (100);
SELECT * FROM test WHERE toInt32(site_id) IN (100,101);
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00563;
DROP TABLE IF EXISTS join_with_index;
CREATE TABLE join_with_index (key UInt32, data UInt64) ENGINE = MergeTree ORDER BY key SETTINGS index_granularity=1;

View File

@ -1,25 +1,25 @@
DROP DATABASE IF EXISTS none;
DROP TABLE IF EXISTS test.test;
DROP TABLE IF EXISTS test.test_materialized;
DROP TABLE IF EXISTS test.test_00571;
DROP TABLE IF EXISTS test.test_materialized_00571;
USE test;
CREATE DATABASE none;
CREATE TABLE test.test ( date Date, platform Enum8('a' = 0, 'b' = 1, 'c' = 2), app Enum8('a' = 0, 'b' = 1) ) ENGINE = MergeTree(date, (platform, app), 8192);
CREATE MATERIALIZED VIEW test.test_materialized ENGINE = MergeTree(date, (platform, app), 8192) POPULATE AS SELECT date, platform, app FROM (SELECT * FROM test);
CREATE TABLE test.test_00571 ( date Date, platform Enum8('a' = 0, 'b' = 1, 'c' = 2), app Enum8('a' = 0, 'b' = 1) ) ENGINE = MergeTree(date, (platform, app), 8192);
CREATE MATERIALIZED VIEW test.test_materialized_00571 ENGINE = MergeTree(date, (platform, app), 8192) POPULATE AS SELECT date, platform, app FROM (SELECT * FROM test_00571);
USE none;
INSERT INTO test.test VALUES('2018-02-16', 'a', 'a');
INSERT INTO test.test_00571 VALUES('2018-02-16', 'a', 'a');
SELECT * FROM test.test;
SELECT * FROM test.test_materialized;
SELECT * FROM test.test_00571;
SELECT * FROM test.test_materialized_00571;
DETACH TABLE test.test_materialized;
ATTACH TABLE test.test_materialized;
DETACH TABLE test.test_materialized_00571;
ATTACH TABLE test.test_materialized_00571;
SELECT * FROM test.test_materialized;
SELECT * FROM test.test_materialized_00571;
DROP DATABASE IF EXISTS none;
DROP TABLE IF EXISTS test.test;
DROP TABLE IF EXISTS test.test_materialized;
DROP TABLE IF EXISTS test.test_00571;
DROP TABLE IF EXISTS test.test_materialized_00571;

View File

@ -1,4 +1,4 @@
CREATE TEMPORARY TABLE t (x UInt8);
CREATE TEMPORARY TABLE t_00573 (x UInt8);
SET empty_result_for_aggregation_by_empty_set = 0;
SELECT count(), uniq(x), avg(x), avg(toNullable(x)), groupArray(x), groupUniqArray(x) FROM remote('127.0.0.{1..10}', system.one) WHERE (rand() AS x) < 0;

View File

@ -6,13 +6,13 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
exception_pattern="Code: 44.*Cannot drop column id, because column id2 depends on it"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test;"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE test (dt Date DEFAULT now(), id UInt32, id2 UInt32 DEFAULT id + 1) ENGINE = MergeTree(dt, dt, 8192);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test(dt,id) VALUES ('2018-02-22',3), ('2018-02-22',4), ('2018-02-22',5);"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test ORDER BY id;"
echo `${CLICKHOUSE_CLIENT} --query "ALTER TABLE test DROP COLUMN id;" --server_logs_file=/dev/null 2>&1 | grep -c "$exception_pattern"`
${CLICKHOUSE_CLIENT} --query "ALTER TABLE test DROP COLUMN id2;"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test ORDER BY id;"
${CLICKHOUSE_CLIENT} --query "ALTER TABLE test DROP COLUMN id;"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test ORDER BY dt"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_00575;"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE test_00575 (dt Date DEFAULT now(), id UInt32, id2 UInt32 DEFAULT id + 1) ENGINE = MergeTree(dt, dt, 8192);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00575(dt,id) VALUES ('2018-02-22',3), ('2018-02-22',4), ('2018-02-22',5);"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test_00575 ORDER BY id;"
echo `${CLICKHOUSE_CLIENT} --query "ALTER TABLE test_00575 DROP COLUMN id;" --server_logs_file=/dev/null 2>&1 | grep -c "$exception_pattern"`
${CLICKHOUSE_CLIENT} --query "ALTER TABLE test_00575 DROP COLUMN id2;"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test_00575 ORDER BY id;"
${CLICKHOUSE_CLIENT} --query "ALTER TABLE test_00575 DROP COLUMN id;"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test_00575 ORDER BY dt"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_00575;"

View File

@ -1,6 +1,6 @@
DROP TABLE IF EXISTS Test;
DROP TABLE IF EXISTS Test_00584;
CREATE TABLE Test (
CREATE TABLE Test_00584 (
createdDate Date,
str String,
key Enum8('A' = 0, 'B' = 1, 'ALL' = 2),
@ -8,22 +8,22 @@ CREATE TABLE Test (
)
ENGINE = MergeTree(createdDate, str, 8192);
INSERT INTO Test VALUES ('2000-01-01', 'hello', 'A', 123);
INSERT INTO Test_00584 VALUES ('2000-01-01', 'hello', 'A', 123);
SET max_threads = 1;
CREATE VIEW TestView AS
SELECT str, key, sumIf(a, 0) AS sum
FROM Test
FROM Test_00584
GROUP BY str, key
UNION ALL
SELECT str AS str, CAST('ALL' AS Enum8('A' = 0, 'B' = 1, 'ALL' = 2)) AS key, sumIf(a, 0) AS sum
FROM Test
FROM Test_00584
GROUP BY str;
SELECT * FROM TestView;
DROP TABLE TestView;
DROP TABLE Test;
DROP TABLE Test_00584;

View File

@ -1,15 +1,15 @@
DROP TABLE IF EXISTS test.mergetree_00588;
DROP TABLE IF EXISTS test.distributed_00588;
DROP TABLE IF EXISTS mergetree_00588;
DROP TABLE IF EXISTS distributed_00588;
CREATE TABLE test.mergetree_00588 (x UInt64, s String) ENGINE = MergeTree ORDER BY x;
INSERT INTO test.mergetree_00588 VALUES (1, 'hello'), (2, 'world');
CREATE TABLE mergetree_00588 (x UInt64, s String) ENGINE = MergeTree ORDER BY x;
INSERT INTO mergetree_00588 VALUES (1, 'hello'), (2, 'world');
SELECT * FROM test.mergetree_00588 PREWHERE x = 1 WHERE s LIKE '%l%' ORDER BY x, s;
SELECT * FROM remote('127.0.0.{1,2,3}', test.mergetree_00588) PREWHERE x = 1 WHERE s LIKE '%l%' ORDER BY x, s;
SELECT * FROM mergetree_00588 PREWHERE x = 1 WHERE s LIKE '%l%' ORDER BY x, s;
SELECT * FROM remote('127.0.0.{1,2,3}', currentDatabase(), mergetree_00588) PREWHERE x = 1 WHERE s LIKE '%l%' ORDER BY x, s;
CREATE TABLE test.distributed_00588 AS test.mergetree_00588 ENGINE = Distributed(test_shard_localhost, test, mergetree_00588);
CREATE TABLE distributed_00588 AS mergetree_00588 ENGINE = Distributed(test_shard_localhost, currentDatabase(), mergetree_00588);
SELECT * FROM test.distributed_00588 PREWHERE x = 1 WHERE s LIKE '%l%' ORDER BY x, s;
SELECT * FROM distributed_00588 PREWHERE x = 1 WHERE s LIKE '%l%' ORDER BY x, s;
DROP TABLE test.mergetree_00588;
DROP TABLE test.distributed_00588;
DROP TABLE mergetree_00588;
DROP TABLE distributed_00588;

View File

@ -5,15 +5,15 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
exception_pattern="Code: 48.*Method write is not supported by storage View"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_view;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_00595;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_view_00595;"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE test (s String) ENGINE = Log;"
${CLICKHOUSE_CLIENT} --query "CREATE VIEW test_view AS SELECT * FROM test;"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE test_00595 (s String) ENGINE = Log;"
${CLICKHOUSE_CLIENT} --query "CREATE VIEW test_view_00595 AS SELECT * FROM test_00595;"
(( `${CLICKHOUSE_CLIENT} --query "INSERT INTO test_view VALUES('test_string');" 2>&1 | grep -c "$exception_pattern"` >= 1 )) && echo 1 || echo "NO MATCH"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES('test_string');"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test;"
(( `${CLICKHOUSE_CLIENT} --query "INSERT INTO test_view_00595 VALUES('test_string');" 2>&1 | grep -c "$exception_pattern"` >= 1 )) && echo 1 || echo "NO MATCH"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00595 VALUES('test_string');"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test_00595;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_view;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_00595;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_view_00595;"

View File

@ -21,42 +21,42 @@ SELECT id\nFROM \n(\n SELECT arrayJoin([1, 2, 3]) AS id\n WHERE id = 1\n)
1
SELECT \n id, \n subquery\nFROM \n(\n SELECT \n 1 AS id, \n CAST(1, \'UInt8\') AS subquery\n WHERE subquery = 1\n) \nWHERE subquery = 1
1 1
SELECT \n a, \n b\nFROM \n(\n SELECT \n toUInt64(sum(id) AS b) AS a, \n b\n FROM test.test \n HAVING a = 3\n) \nWHERE a = 3
SELECT \n a, \n b\nFROM \n(\n SELECT \n toUInt64(sum(id) AS b) AS a, \n b\n FROM test.test_00597 \n HAVING a = 3\n) \nWHERE a = 3
3 3
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n name, \n value, \n min(id) AS id\n FROM test.test \n GROUP BY \n date, \n name, \n value\n HAVING id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n name, \n value, \n min(id) AS id\n FROM test.test_00597 \n GROUP BY \n date, \n name, \n value\n HAVING id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n a, \n b\nFROM \n(\n SELECT \n toUInt64(sum(id) AS b) AS a, \n b\n FROM test.test AS table_alias \n HAVING b = 3\n) AS outer_table_alias \nWHERE b = 3
SELECT \n a, \n b\nFROM \n(\n SELECT \n toUInt64(sum(id) AS b) AS a, \n b\n FROM test.test_00597 AS table_alias \n HAVING b = 3\n) AS outer_table_alias \nWHERE b = 3
3 3
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n ) \n WHERE id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n ) \n WHERE id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n ) AS b \n WHERE id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n ) AS b \n WHERE id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n ) \n WHERE id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n ) \n WHERE id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n) AS b \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n) AS b \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n ) AS a \n WHERE id = 1\n) AS b \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n ) AS a \n WHERE id = 1\n) AS b \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n id, \n date, \n value\nFROM \n(\n SELECT \n id, \n date, \n min(value) AS value\n FROM test.test \n WHERE id = 1\n GROUP BY \n id, \n date\n) \nWHERE id = 1
SELECT \n id, \n date, \n value\nFROM \n(\n SELECT \n id, \n date, \n min(value) AS value\n FROM test.test_00597 \n WHERE id = 1\n GROUP BY \n id, \n date\n) \nWHERE id = 1
1 2000-01-01 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n UNION ALL\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n UNION ALL\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1
2000-01-01 1 test string 1 1
SELECT \n date, \n id, \n name, \n value, \n date, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n) \nANY LEFT JOIN \n(\n SELECT *\n FROM test.test \n) USING (id)\nWHERE id = 1
SELECT \n date, \n id, \n name, \n value, \n date, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n) \nANY LEFT JOIN \n(\n SELECT *\n FROM test.test_00597 \n) USING (id)\nWHERE id = 1
2000-01-01 1 test string 1 1 2000-01-01 test string 1 1
SELECT \n id, \n date, \n name, \n value\nFROM \n(\n SELECT toInt8(1) AS id\n) \nANY LEFT JOIN test.test USING (id)\nWHERE value = 1
SELECT \n id, \n date, \n name, \n value\nFROM \n(\n SELECT toInt8(1) AS id\n) \nANY LEFT JOIN test.test_00597 USING (id)\nWHERE value = 1
1 2000-01-01 test string 1 1
SELECT value\nFROM \n(\n SELECT toInt8(1) AS id\n) \nANY LEFT JOIN test.test AS b USING (id)\nWHERE value = 1
SELECT value\nFROM \n(\n SELECT toInt8(1) AS id\n) \nANY LEFT JOIN test.test_00597 AS b USING (id)\nWHERE value = 1
1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value, \n date, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n ) \n ANY LEFT JOIN \n (\n SELECT *\n FROM test.test \n ) USING (id)\n WHERE id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value, \n date, \n name, \n value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n ) \n ANY LEFT JOIN \n (\n SELECT *\n FROM test.test_00597 \n ) USING (id)\n WHERE id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1
SELECT \n date, \n id, \n name, \n value, \n b.date, \n b.name, \n b.value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n) \nANY LEFT JOIN \n(\n SELECT *\n FROM test.test \n) AS b USING (id)\nWHERE b.id = 1
SELECT \n date, \n id, \n name, \n value, \n b.date, \n b.name, \n b.value\nFROM \n(\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n) \nANY LEFT JOIN \n(\n SELECT *\n FROM test.test_00597 \n) AS b USING (id)\nWHERE b.id = 1
2000-01-01 1 test string 1 1 2000-01-01 test string 1 1
SELECT \n id, \n date, \n name, \n value\nFROM \n(\n SELECT \n toInt8(1) AS id, \n toDate(\'2000-01-01\') AS date\n FROM system.numbers \n LIMIT 1\n) \nANY LEFT JOIN \n(\n SELECT *\n FROM test.test \n) AS b USING (date, id)\nWHERE b.date = toDate(\'2000-01-01\')
SELECT \n id, \n date, \n name, \n value\nFROM \n(\n SELECT \n toInt8(1) AS id, \n toDate(\'2000-01-01\') AS date\n FROM system.numbers \n LIMIT 1\n) \nANY LEFT JOIN \n(\n SELECT *\n FROM test.test_00597 \n) AS b USING (date, id)\nWHERE b.date = toDate(\'2000-01-01\')
1 2000-01-01 test string 1 1
SELECT \n date, \n id, \n name, \n value, \n `b.date`, \n `b.id`, \n `b.name`, \n `b.value`\nFROM \n(\n SELECT \n date, \n id, \n name, \n value, \n b.date, \n b.id, \n b.name, \n b.value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test \n WHERE id = 1\n ) AS a \n ANY LEFT JOIN \n (\n SELECT *\n FROM test.test \n ) AS b ON id = b.id\n WHERE id = 1\n) \nWHERE id = 1
SELECT \n date, \n id, \n name, \n value, \n `b.date`, \n `b.id`, \n `b.name`, \n `b.value`\nFROM \n(\n SELECT \n date, \n id, \n name, \n value, \n b.date, \n b.id, \n b.name, \n b.value\n FROM \n (\n SELECT \n date, \n id, \n name, \n value\n FROM test.test_00597 \n WHERE id = 1\n ) AS a \n ANY LEFT JOIN \n (\n SELECT *\n FROM test.test_00597 \n ) AS b ON id = b.id\n WHERE id = 1\n) \nWHERE id = 1
2000-01-01 1 test string 1 1 2000-01-01 1 test string 1 1

View File

@ -1,13 +1,13 @@
SET send_logs_level = 'none';
DROP TABLE IF EXISTS test.test;
DROP TABLE IF EXISTS test.test_view;
DROP TABLE IF EXISTS test.test_00597;
DROP TABLE IF EXISTS test.test_view_00597;
CREATE TABLE test.test(date Date, id Int8, name String, value Int64) ENGINE = MergeTree(date, (id, date), 8192);
CREATE VIEW test.test_view AS SELECT * FROM test.test;
CREATE TABLE test.test_00597(date Date, id Int8, name String, value Int64) ENGINE = MergeTree(date, (id, date), 8192);
CREATE VIEW test.test_view_00597 AS SELECT * FROM test.test_00597;
INSERT INTO test.test VALUES('2000-01-01', 1, 'test string 1', 1);
INSERT INTO test.test VALUES('2000-01-01', 2, 'test string 2', 2);
INSERT INTO test.test_00597 VALUES('2000-01-01', 1, 'test string 1', 1);
INSERT INTO test.test_00597 VALUES('2000-01-01', 2, 'test string 2', 2);
SET enable_optimize_predicate_expression = 1;
SET enable_debug_queries = 1;
@ -16,7 +16,7 @@ SELECT '-------No need for predicate optimization, but still works-------';
SELECT 1;
SELECT 1 AS id WHERE id = 1;
SELECT arrayJoin([1,2,3]) AS id WHERE id = 1;
SELECT * FROM test.test WHERE id = 1;
SELECT * FROM test.test_00597 WHERE id = 1;
SELECT '-------Forbid push down-------';
@ -57,76 +57,76 @@ ANALYZE SELECT * FROM (SELECT 1 AS id, (SELECT 1) as subquery) WHERE subquery =
SELECT * FROM (SELECT 1 AS id, (SELECT 1) as subquery) WHERE subquery = 1;
-- Optimize predicate expressions using tables
ANALYZE SELECT * FROM (SELECT toUInt64(b) AS a, sum(id) AS b FROM test.test) WHERE a = 3;
SELECT * FROM (SELECT toUInt64(b) AS a, sum(id) AS b FROM test.test) WHERE a = 3;
ANALYZE SELECT * FROM (SELECT toUInt64(b) AS a, sum(id) AS b FROM test.test_00597) WHERE a = 3;
SELECT * FROM (SELECT toUInt64(b) AS a, sum(id) AS b FROM test.test_00597) WHERE a = 3;
ANALYZE SELECT date, id, name, value FROM (SELECT date, name, value, min(id) AS id FROM test.test GROUP BY date, name, value) WHERE id = 1;
SELECT date, id, name, value FROM (SELECT date, name, value, min(id) AS id FROM test.test GROUP BY date, name, value) WHERE id = 1;
ANALYZE SELECT date, id, name, value FROM (SELECT date, name, value, min(id) AS id FROM test.test_00597 GROUP BY date, name, value) WHERE id = 1;
SELECT date, id, name, value FROM (SELECT date, name, value, min(id) AS id FROM test.test_00597 GROUP BY date, name, value) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT toUInt64(b) AS a, sum(id) AS b FROM test.test AS table_alias) AS outer_table_alias WHERE outer_table_alias.b = 3;
SELECT * FROM (SELECT toUInt64(b) AS a, sum(id) AS b FROM test.test AS table_alias) AS outer_table_alias WHERE outer_table_alias.b = 3;
ANALYZE SELECT * FROM (SELECT toUInt64(b) AS a, sum(id) AS b FROM test.test_00597 AS table_alias) AS outer_table_alias WHERE outer_table_alias.b = 3;
SELECT * FROM (SELECT toUInt64(b) AS a, sum(id) AS b FROM test.test_00597 AS table_alias) AS outer_table_alias WHERE outer_table_alias.b = 3;
-- Optimize predicate expression with asterisk
ANALYZE SELECT * FROM (SELECT * FROM test.test) WHERE id = 1;
SELECT * FROM (SELECT * FROM test.test) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT * FROM test.test_00597) WHERE id = 1;
SELECT * FROM (SELECT * FROM test.test_00597) WHERE id = 1;
-- Optimize predicate expression with asterisk and nested subquery
ANALYZE SELECT * FROM (SELECT * FROM (SELECT * FROM test.test)) WHERE id = 1;
SELECT * FROM (SELECT * FROM (SELECT * FROM test.test)) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT * FROM (SELECT * FROM test.test_00597)) WHERE id = 1;
SELECT * FROM (SELECT * FROM (SELECT * FROM test.test_00597)) WHERE id = 1;
-- Optimize predicate expression with qualified asterisk
ANALYZE SELECT * FROM (SELECT b.* FROM (SELECT * FROM test.test) AS b) WHERE id = 1;
SELECT * FROM (SELECT b.* FROM (SELECT * FROM test.test) AS b) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT b.* FROM (SELECT * FROM test.test_00597) AS b) WHERE id = 1;
SELECT * FROM (SELECT b.* FROM (SELECT * FROM test.test_00597) AS b) WHERE id = 1;
-- Optimize predicate expression without asterisk
ANALYZE SELECT * FROM (SELECT date, id, name, value FROM test.test) WHERE id = 1;
SELECT * FROM (SELECT date, id, name, value FROM test.test) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT date, id, name, value FROM test.test_00597) WHERE id = 1;
SELECT * FROM (SELECT date, id, name, value FROM test.test_00597) WHERE id = 1;
-- Optimize predicate expression without asterisk and contains nested subquery
ANALYZE SELECT * FROM (SELECT date, id, name, value FROM (SELECT date, id, name, value FROM test.test)) WHERE id = 1;
SELECT * FROM (SELECT date, id, name, value FROM (SELECT date, id, name, value FROM test.test)) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT date, id, name, value FROM (SELECT date, id, name, value FROM test.test_00597)) WHERE id = 1;
SELECT * FROM (SELECT date, id, name, value FROM (SELECT date, id, name, value FROM test.test_00597)) WHERE id = 1;
-- Optimize predicate expression with qualified
ANALYZE SELECT * FROM (SELECT * FROM test.test) AS b WHERE b.id = 1;
SELECT * FROM (SELECT * FROM test.test) AS b WHERE b.id = 1;
ANALYZE SELECT * FROM (SELECT * FROM test.test_00597) AS b WHERE b.id = 1;
SELECT * FROM (SELECT * FROM test.test_00597) AS b WHERE b.id = 1;
-- Optimize predicate expression with qualified and nested subquery
ANALYZE SELECT * FROM (SELECT * FROM (SELECT * FROM test.test) AS a) AS b WHERE b.id = 1;
SELECT * FROM (SELECT * FROM (SELECT * FROM test.test) AS a) AS b WHERE b.id = 1;
ANALYZE SELECT * FROM (SELECT * FROM (SELECT * FROM test.test_00597) AS a) AS b WHERE b.id = 1;
SELECT * FROM (SELECT * FROM (SELECT * FROM test.test_00597) AS a) AS b WHERE b.id = 1;
-- Optimize predicate expression with aggregate function
ANALYZE SELECT * FROM (SELECT id, date, min(value) AS value FROM test.test GROUP BY id, date) WHERE id = 1;
SELECT * FROM (SELECT id, date, min(value) AS value FROM test.test GROUP BY id, date) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT id, date, min(value) AS value FROM test.test_00597 GROUP BY id, date) WHERE id = 1;
SELECT * FROM (SELECT id, date, min(value) AS value FROM test.test_00597 GROUP BY id, date) WHERE id = 1;
-- Optimize predicate expression with union all query
ANALYZE SELECT * FROM (SELECT * FROM test.test UNION ALL SELECT * FROM test.test) WHERE id = 1;
SELECT * FROM (SELECT * FROM test.test UNION ALL SELECT * FROM test.test) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT * FROM test.test_00597 UNION ALL SELECT * FROM test.test_00597) WHERE id = 1;
SELECT * FROM (SELECT * FROM test.test_00597 UNION ALL SELECT * FROM test.test_00597) WHERE id = 1;
-- Optimize predicate expression with join query
ANALYZE SELECT * FROM (SELECT * FROM test.test) ANY LEFT JOIN (SELECT * FROM test.test) USING id WHERE id = 1;
SELECT * FROM (SELECT * FROM test.test) ANY LEFT JOIN (SELECT * FROM test.test) USING id WHERE id = 1;
ANALYZE SELECT * FROM (SELECT * FROM test.test_00597) ANY LEFT JOIN (SELECT * FROM test.test_00597) USING id WHERE id = 1;
SELECT * FROM (SELECT * FROM test.test_00597) ANY LEFT JOIN (SELECT * FROM test.test_00597) USING id WHERE id = 1;
ANALYZE SELECT * FROM (SELECT toInt8(1) AS id) ANY LEFT JOIN test.test USING id WHERE value = 1;
SELECT * FROM (SELECT toInt8(1) AS id) ANY LEFT JOIN test.test USING id WHERE value = 1;
ANALYZE SELECT * FROM (SELECT toInt8(1) AS id) ANY LEFT JOIN test.test_00597 USING id WHERE value = 1;
SELECT * FROM (SELECT toInt8(1) AS id) ANY LEFT JOIN test.test_00597 USING id WHERE value = 1;
-- FIXME: no support for aliased tables for now.
ANALYZE SELECT b.value FROM (SELECT toInt8(1) AS id) ANY LEFT JOIN test.test AS b USING id WHERE value = 1;
SELECT b.value FROM (SELECT toInt8(1) AS id) ANY LEFT JOIN test.test AS b USING id WHERE value = 1;
ANALYZE SELECT b.value FROM (SELECT toInt8(1) AS id) ANY LEFT JOIN test.test_00597 AS b USING id WHERE value = 1;
SELECT b.value FROM (SELECT toInt8(1) AS id) ANY LEFT JOIN test.test_00597 AS b USING id WHERE value = 1;
-- Optimize predicate expression with join and nested subquery
ANALYZE SELECT * FROM (SELECT * FROM (SELECT * FROM test.test) ANY LEFT JOIN (SELECT * FROM test.test) USING id) WHERE id = 1;
SELECT * FROM (SELECT * FROM (SELECT * FROM test.test) ANY LEFT JOIN (SELECT * FROM test.test) USING id) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT * FROM (SELECT * FROM test.test_00597) ANY LEFT JOIN (SELECT * FROM test.test_00597) USING id) WHERE id = 1;
SELECT * FROM (SELECT * FROM (SELECT * FROM test.test_00597) ANY LEFT JOIN (SELECT * FROM test.test_00597) USING id) WHERE id = 1;
-- Optimize predicate expression with join query and qualified
ANALYZE SELECT * FROM (SELECT * FROM test.test) ANY LEFT JOIN (SELECT * FROM test.test) AS b USING id WHERE b.id = 1;
SELECT * FROM (SELECT * FROM test.test) ANY LEFT JOIN (SELECT * FROM test.test) AS b USING id WHERE b.id = 1;
ANALYZE SELECT * FROM (SELECT * FROM test.test_00597) ANY LEFT JOIN (SELECT * FROM test.test_00597) AS b USING id WHERE b.id = 1;
SELECT * FROM (SELECT * FROM test.test_00597) ANY LEFT JOIN (SELECT * FROM test.test_00597) AS b USING id WHERE b.id = 1;
-- Compatibility test
ANALYZE SELECT * FROM (SELECT toInt8(1) AS id, toDate('2000-01-01') AS date FROM system.numbers LIMIT 1) ANY LEFT JOIN (SELECT * FROM test.test) AS b USING date, id WHERE b.date = toDate('2000-01-01');
SELECT * FROM (SELECT toInt8(1) AS id, toDate('2000-01-01') AS date FROM system.numbers LIMIT 1) ANY LEFT JOIN (SELECT * FROM test.test) AS b USING date, id WHERE b.date = toDate('2000-01-01');
ANALYZE SELECT * FROM (SELECT toInt8(1) AS id, toDate('2000-01-01') AS date FROM system.numbers LIMIT 1) ANY LEFT JOIN (SELECT * FROM test.test_00597) AS b USING date, id WHERE b.date = toDate('2000-01-01');
SELECT * FROM (SELECT toInt8(1) AS id, toDate('2000-01-01') AS date FROM system.numbers LIMIT 1) ANY LEFT JOIN (SELECT * FROM test.test_00597) AS b USING date, id WHERE b.date = toDate('2000-01-01');
ANALYZE SELECT * FROM (SELECT * FROM (SELECT * FROM test.test) AS a ANY LEFT JOIN (SELECT * FROM test.test) AS b ON a.id = b.id) WHERE id = 1;
SELECT * FROM (SELECT * FROM (SELECT * FROM test.test) AS a ANY LEFT JOIN (SELECT * FROM test.test) AS b ON a.id = b.id) WHERE id = 1;
ANALYZE SELECT * FROM (SELECT * FROM (SELECT * FROM test.test_00597) AS a ANY LEFT JOIN (SELECT * FROM test.test_00597) AS b ON a.id = b.id) WHERE id = 1;
SELECT * FROM (SELECT * FROM (SELECT * FROM test.test_00597) AS a ANY LEFT JOIN (SELECT * FROM test.test_00597) AS b ON a.id = b.id) WHERE id = 1;
DROP TABLE IF EXISTS test.test;
DROP TABLE IF EXISTS test.test_view;
DROP TABLE IF EXISTS test.test_00597;
DROP TABLE IF EXISTS test.test_view_00597;

View File

@ -5,7 +5,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
set -e -o pipefail
$CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS test"
$CLICKHOUSE_CURL -sS -d 'CREATE TABLE test ENGINE = Memory AS SELECT 1' $CLICKHOUSE_URL_PARAMS
$CLICKHOUSE_CLIENT --query="SELECT * FROM test"
$CLICKHOUSE_CLIENT --query="DROP TABLE test"
$CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS test_00598"
$CLICKHOUSE_CURL -sS -d 'CREATE TABLE test_00598 ENGINE = Memory AS SELECT 1' $CLICKHOUSE_URL_PARAMS
$CLICKHOUSE_CLIENT --query="SELECT * FROM test_00598"
$CLICKHOUSE_CLIENT --query="DROP TABLE test_00598"

View File

@ -1 +1 @@
CREATE VIEW test.test_view (`id` UInt64) AS SELECT * FROM test.test WHERE id = (SELECT 1)
CREATE VIEW test.test_view_00599 (`id` UInt64) AS SELECT * FROM test.test_00599 WHERE id = (SELECT 1)

View File

@ -1,13 +1,13 @@
DROP TABLE IF EXISTS test.test;
DROP TABLE IF EXISTS test.test_view;
DROP TABLE IF EXISTS test.test_00599;
DROP TABLE IF EXISTS test.test_view_00599;
CREATE TABLE test.test(id UInt64) ENGINE = Log;
CREATE VIEW test.test_view AS SELECT * FROM test.test WHERE id = (SELECT 1);
CREATE TABLE test.test_00599(id UInt64) ENGINE = Log;
CREATE VIEW test.test_view_00599 AS SELECT * FROM test.test_00599 WHERE id = (SELECT 1);
DETACH TABLE test.test_view;
ATTACH TABLE test.test_view;
DETACH TABLE test.test_view_00599;
ATTACH TABLE test.test_view_00599;
SHOW CREATE TABLE test.test_view;
SHOW CREATE TABLE test.test_view_00599;
DROP TABLE IF EXISTS test.test;
DROP TABLE IF EXISTS test.test_view;
DROP TABLE IF EXISTS test.test_00599;
DROP TABLE IF EXISTS test.test_view_00599;

View File

@ -1,16 +1,16 @@
DROP TABLE IF EXISTS test.mergetree;
DROP TABLE IF EXISTS test.distributed;
DROP TABLE IF EXISTS mergetree_00609;
DROP TABLE IF EXISTS distributed_00609;
CREATE TABLE test.mergetree (x UInt64, s String) ENGINE = MergeTree ORDER BY x;
INSERT INTO test.mergetree VALUES (1, 'hello'), (2, 'world');
CREATE TABLE mergetree_00609 (x UInt64, s String) ENGINE = MergeTree ORDER BY x;
INSERT INTO mergetree_00609 VALUES (1, 'hello'), (2, 'world');
SELECT CASE x WHEN 1 THEN 'hello' WHEN 2 THEN 'world' ELSE 'unknow' END FROM test.mergetree;
SELECT count() AS cnt FROM (SELECT CASE x WHEN 1 THEN 'hello' WHEN 2 THEN 'world' ELSE 'unknow' END FROM test.mergetree);
SELECT CASE x WHEN 1 THEN 'hello' WHEN 2 THEN 'world' ELSE 'unknow' END FROM mergetree_00609;
SELECT count() AS cnt FROM (SELECT CASE x WHEN 1 THEN 'hello' WHEN 2 THEN 'world' ELSE 'unknow' END FROM mergetree_00609);
CREATE TABLE test.distributed AS test.mergetree ENGINE = Distributed(test_shard_localhost, test, mergetree);
CREATE TABLE distributed_00609 AS mergetree_00609 ENGINE = Distributed(test_shard_localhost, currentDatabase(), mergetree_00609);
SELECT CASE x WHEN 1 THEN 'hello' WHEN 2 THEN 'world' ELSE 'unknow' END FROM test.distributed;
SELECT count() AS cnt FROM (SELECT CASE x WHEN 1 THEN 'hello' WHEN 2 THEN 'world' ELSE 'unknow' END FROM test.distributed);
SELECT CASE x WHEN 1 THEN 'hello' WHEN 2 THEN 'world' ELSE 'unknow' END FROM distributed_00609;
SELECT count() AS cnt FROM (SELECT CASE x WHEN 1 THEN 'hello' WHEN 2 THEN 'world' ELSE 'unknow' END FROM distributed_00609);
DROP TABLE test.mergetree;
DROP TABLE test.distributed;
DROP TABLE mergetree_00609;
DROP TABLE distributed_00609;

View File

@ -1,14 +1,14 @@
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_mv;
DROP TABLE IF EXISTS test_00609;
DROP TABLE IF EXISTS test_mv_00609;
create table test (a Int8) engine=Memory;
create table test_00609 (a Int8) engine=Memory;
insert into test values (1);
create materialized view test_mv Engine=MergeTree(date, (a), 8192) populate as select a, toDate('2000-01-01') date from test;
insert into test_00609 values (1);
create materialized view test_mv_00609 Engine=MergeTree(date, (a), 8192) populate as select a, toDate('2000-01-01') date from test_00609;
select * from test_mv; -- OK
select * from test_mv where a in (select a from test_mv); -- EMPTY (bug)
select * from ".inner.test_mv" where a in (select a from test_mv); -- OK
select * from test_mv_00609; -- OK
select * from test_mv_00609 where a in (select a from test_mv_00609); -- EMPTY (bug)
select * from ".inner.test_mv_00609" where a in (select a from test_mv_00609); -- OK
DROP TABLE test;
DROP TABLE test_mv;
DROP TABLE test_00609;
DROP TABLE test_mv_00609;

View File

@ -1,13 +1,13 @@
drop table if exists `table`;
create table `table` (key UInt64, val UInt64) engine = MergeTree order by key settings index_granularity=8192;
insert into `table` select number, number / 8192 from system.numbers limit 100000;
alter table `table` add column def UInt64 default val + 1;
select * from `table` prewhere val > 2 format Null;
drop table if exists `table_00609`;
create table `table_00609` (key UInt64, val UInt64) engine = MergeTree order by key settings index_granularity=8192;
insert into `table_00609` select number, number / 8192 from system.numbers limit 100000;
alter table `table_00609` add column def UInt64 default val + 1;
select * from `table_00609` prewhere val > 2 format Null;
drop table if exists `table`;
create table `table` (key UInt64, val UInt64) engine = MergeTree order by key settings index_granularity=8192;
insert into `table` select number, number / 8192 from system.numbers limit 100000;
alter table `table` add column def UInt64;
select * from `table` prewhere val > 2 format Null;
drop table if exists `table_00609`;
create table `table_00609` (key UInt64, val UInt64) engine = MergeTree order by key settings index_granularity=8192;
insert into `table_00609` select number, number / 8192 from system.numbers limit 100000;
alter table `table_00609` add column def UInt64;
select * from `table_00609` prewhere val > 2 format Null;
drop table if exists `table`;
drop table if exists `table_00609`;

View File

@ -1,6 +1,6 @@
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00615;
CREATE TABLE test
CREATE TABLE test_00615
(
dt Date,
id Int32,
@ -8,15 +8,15 @@ CREATE TABLE test
data Nullable(Int8)
) ENGINE = MergeTree(dt, (id, key, dt), 8192);
INSERT INTO test (dt,id, key,data) VALUES ('2000-01-01', 100, 'key', 100500);
INSERT INTO test_00615 (dt,id, key,data) VALUES ('2000-01-01', 100, 'key', 100500);
alter table test drop column data;
alter table test add column data Nullable(Float64);
alter table test_00615 drop column data;
alter table test_00615 add column data Nullable(Float64);
INSERT INTO test (dt,id, key,data) VALUES ('2000-01-01', 100, 'key', 100500);
INSERT INTO test_00615 (dt,id, key,data) VALUES ('2000-01-01', 100, 'key', 100500);
SELECT * FROM test ORDER BY data NULLS FIRST;
OPTIMIZE TABLE test;
SELECT * FROM test ORDER BY data NULLS FIRST;
SELECT * FROM test_00615 ORDER BY data NULLS FIRST;
OPTIMIZE TABLE test_00615;
SELECT * FROM test_00615 ORDER BY data NULLS FIRST;
DROP TABLE test;
DROP TABLE test_00615;

View File

@ -1,7 +1,7 @@
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS replacing;
DROP TABLE IF EXISTS test_00616;
DROP TABLE IF EXISTS replacing_00616;
CREATE TABLE test
CREATE TABLE test_00616
(
date Date,
x Int32,
@ -9,18 +9,18 @@ CREATE TABLE test
)
ENGINE = MergeTree(date, x, 4096);
INSERT INTO test VALUES ('2018-03-21', 1, 1), ('2018-03-21', 1, 2);
CREATE TABLE replacing ENGINE = ReplacingMergeTree(date, x, 4096, ver) AS SELECT * FROM test;
INSERT INTO test_00616 VALUES ('2018-03-21', 1, 1), ('2018-03-21', 1, 2);
CREATE TABLE replacing_00616 ENGINE = ReplacingMergeTree(date, x, 4096, ver) AS SELECT * FROM test_00616;
SELECT * FROM test ORDER BY ver;
SELECT * FROM test_00616 ORDER BY ver;
SELECT * FROM replacing ORDER BY ver;
SELECT * FROM replacing FINAL ORDER BY ver;
SELECT * FROM replacing_00616 ORDER BY ver;
SELECT * FROM replacing_00616 FINAL ORDER BY ver;
OPTIMIZE TABLE replacing PARTITION '201803' FINAL;
OPTIMIZE TABLE replacing_00616 PARTITION '201803' FINAL;
SELECT * FROM replacing ORDER BY ver;
SELECT * FROM replacing FINAL ORDER BY ver;
SELECT * FROM replacing_00616 ORDER BY ver;
SELECT * FROM replacing_00616 FINAL ORDER BY ver;
DROP TABLE test;
DROP TABLE replacing;
DROP TABLE test_00616;
DROP TABLE replacing_00616;

View File

@ -53,10 +53,10 @@ DROP TABLE video_views;
-- Test for tsan: Ensure cache used from one thread
SET max_threads = 32;
DROP TABLE IF EXISTS sample;
DROP TABLE IF EXISTS sample_00632;
CREATE TABLE sample (d Date DEFAULT '2000-01-01', x UInt16) ENGINE = MergeTree(d, x, x, 10);
INSERT INTO sample (x) SELECT toUInt16(number) AS x FROM system.numbers LIMIT 65536;
CREATE TABLE sample_00632 (d Date DEFAULT '2000-01-01', x UInt16) ENGINE = MergeTree(d, x, x, 10);
INSERT INTO sample_00632 (x) SELECT toUInt16(number) AS x FROM system.numbers LIMIT 65536;
SELECT count()
FROM
@ -66,109 +66,109 @@ FROM
count() AS c
FROM
(
SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample WHERE x > 0 )
SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
UNION ALL SELECT * FROM ( SELECT * FROM sample_00632 WHERE x > 0 )
)
GROUP BY x
--HAVING c = 1
ORDER BY x ASC
);
DROP TABLE sample;
DROP TABLE sample_00632;

View File

@ -30,18 +30,18 @@ lines_two_servers=`cat "$server_logs_file" | wc -l`
(( $lines_two_servers >= 2 * $lines_one_server )) || echo "Fail: $lines_two_servers $lines_one_server"
# INSERT
$CLICKHOUSE_CLIENT $settings -q "DROP TABLE IF EXISTS null"
$CLICKHOUSE_CLIENT $settings -q "CREATE TABLE null (i Int8) ENGINE = Null"
$CLICKHOUSE_CLIENT $settings -q "DROP TABLE IF EXISTS null_00634_1"
$CLICKHOUSE_CLIENT $settings -q "CREATE TABLE null_00634_1 (i Int8) ENGINE = Null"
> "$server_logs_file"
$CLICKHOUSE_CLIENT $settings -q "INSERT INTO null VALUES (0)"
$CLICKHOUSE_CLIENT $settings -q "INSERT INTO null_00634_1 VALUES (0)"
lines_one_server=`cat "$server_logs_file" | wc -l`
> "$server_logs_file"
$CLICKHOUSE_CLIENT $settings -q "INSERT INTO TABLE FUNCTION remote('127.0.0.2', '${CLICKHOUSE_DATABASE}', 'null') VALUES (0)"
$CLICKHOUSE_CLIENT $settings -q "INSERT INTO TABLE FUNCTION remote('127.0.0.2', '${CLICKHOUSE_DATABASE}', 'null_00634_1') VALUES (0)"
lines_two_servers=`cat "$server_logs_file" | wc -l`
$CLICKHOUSE_CLIENT $settings -q "DROP TABLE IF EXISTS null"
$CLICKHOUSE_CLIENT $settings -q "DROP TABLE IF EXISTS null_00634_1"
(( $lines_two_servers > $lines_one_server )) || echo "Fail: $lines_two_servers $lines_one_server"

View File

@ -19,14 +19,14 @@ settings="$server_logs --log_queries=1 --log_query_threads=1 --log_profile_event
# Test insert logging on each block and checkPacket() method
$CLICKHOUSE_CLIENT $settings -n -q "
DROP TABLE IF EXISTS null;
CREATE TABLE null (i UInt8) ENGINE = MergeTree PARTITION BY tuple() ORDER BY tuple();"
DROP TABLE IF EXISTS null_00634;
CREATE TABLE null_00634 (i UInt8) ENGINE = MergeTree PARTITION BY tuple() ORDER BY tuple();"
head -c 1000 /dev/zero | $CLICKHOUSE_CLIENT $settings --max_insert_block_size=10 --min_insert_block_size_rows=1 --min_insert_block_size_bytes=1 -q "INSERT INTO null FORMAT RowBinary"
head -c 1000 /dev/zero | $CLICKHOUSE_CLIENT $settings --max_insert_block_size=10 --min_insert_block_size_rows=1 --min_insert_block_size_bytes=1 -q "INSERT INTO null_00634 FORMAT RowBinary"
$CLICKHOUSE_CLIENT $settings -n -q "
SELECT count() FROM null;
DROP TABLE null;"
SELECT count() FROM null_00634;
DROP TABLE null_00634;"
(( `cat "$server_logs_file" | wc -l` >= 110 )) || echo Fail

View File

@ -1,23 +1,22 @@
USE test;
DROP TABLE IF EXISTS test1;
DROP TABLE IF EXISTS test2;
DROP TABLE IF EXISTS test1_00634;
DROP TABLE IF EXISTS test2_00634;
DROP TABLE IF EXISTS v_test1;
DROP TABLE IF EXISTS v_test2;
DROP TABLE IF EXISTS v_test11;
DROP TABLE IF EXISTS v_test22;
create table test1 (id UInt8) engine = TinyLog;
create table test2 (id UInt8) engine = TinyLog;
create table test1_00634 (id UInt8) engine = TinyLog;
create table test2_00634 (id UInt8) engine = TinyLog;
create view v_test1 as select id from test1;
create view v_test2 as select id from test2;
create view v_test1 as select id from test1_00634;
create view v_test2 as select id from test2_00634;
rename table v_test1 to v_test11, v_test2 to v_test22;
SELECT name, engine FROM system.tables WHERE name IN ('v_test1', 'v_test2', 'v_test11', 'v_test22') AND database = 'test' ORDER BY name;
SELECT name, engine FROM system.tables WHERE name IN ('v_test1', 'v_test2', 'v_test11', 'v_test22') AND database = currentDatabase() ORDER BY name;
DROP TABLE test1;
DROP TABLE test2;
DROP TABLE test1_00634;
DROP TABLE test2_00634;
DROP TABLE v_test11;
DROP TABLE v_test22;

View File

@ -1,4 +1,4 @@
CREATE TEMPORARY TABLE test (d DateTime) ENGINE = Memory;
CREATE TEMPORARY TABLE test_00645 (d DateTime) ENGINE = Memory;
SET date_time_input_format = 'best_effort';
INSERT INTO test VALUES ('2018-06-08T01:02:03.000Z');
SELECT toTimeZone(d, 'UTC') FROM test;
INSERT INTO test_00645 VALUES ('2018-06-08T01:02:03.000Z');
SELECT toTimeZone(d, 'UTC') FROM test_00645;

View File

@ -1,4 +1,4 @@
drop table if exists `table`;
create table `table` (val Int32) engine = MergeTree order by val;
insert into `table` values (-2), (0), (2);
select count() from `table` where toUInt64(val) == 0;
drop table if exists `table_00653`;
create table `table_00653` (val Int32) engine = MergeTree order by val;
insert into `table_00653` values (-2), (0), (2);
select count() from `table_00653` where toUInt64(val) == 0;

View File

@ -1,21 +1,21 @@
DROP TABLE IF EXISTS partitioned_by_tuple_replica1;
DROP TABLE IF EXISTS partitioned_by_tuple_replica2;
CREATE TABLE partitioned_by_tuple_replica1(d Date, x UInt8, w String, y UInt8) ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/test/partitioned_by_tuple', '1') PARTITION BY (d, x) ORDER BY (d, x, w);
CREATE TABLE partitioned_by_tuple_replica2(d Date, x UInt8, w String, y UInt8) ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/test/partitioned_by_tuple', '2') PARTITION BY (d, x) ORDER BY (d, x, w);
DROP TABLE IF EXISTS partitioned_by_tuple_replica1_00661;
DROP TABLE IF EXISTS partitioned_by_tuple_replica2_00661;
CREATE TABLE partitioned_by_tuple_replica1_00661(d Date, x UInt8, w String, y UInt8) ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/test/partitioned_by_tuple_00661', '1') PARTITION BY (d, x) ORDER BY (d, x, w);
CREATE TABLE partitioned_by_tuple_replica2_00661(d Date, x UInt8, w String, y UInt8) ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/test/partitioned_by_tuple_00661', '2') PARTITION BY (d, x) ORDER BY (d, x, w);
INSERT INTO partitioned_by_tuple_replica1 VALUES ('2000-01-02', 1, 'first', 3);
INSERT INTO partitioned_by_tuple_replica1 VALUES ('2000-01-01', 2, 'first', 2);
INSERT INTO partitioned_by_tuple_replica1 VALUES ('2000-01-01', 1, 'first', 1), ('2000-01-01', 1, 'first', 2);
INSERT INTO partitioned_by_tuple_replica1_00661 VALUES ('2000-01-02', 1, 'first', 3);
INSERT INTO partitioned_by_tuple_replica1_00661 VALUES ('2000-01-01', 2, 'first', 2);
INSERT INTO partitioned_by_tuple_replica1_00661 VALUES ('2000-01-01', 1, 'first', 1), ('2000-01-01', 1, 'first', 2);
OPTIMIZE TABLE partitioned_by_tuple_replica1;
OPTIMIZE TABLE partitioned_by_tuple_replica1_00661;
SYSTEM SYNC REPLICA partitioned_by_tuple_replica2;
SELECT * FROM partitioned_by_tuple_replica2 ORDER BY d, x, w, y;
SYSTEM SYNC REPLICA partitioned_by_tuple_replica2_00661;
SELECT * FROM partitioned_by_tuple_replica2_00661 ORDER BY d, x, w, y;
OPTIMIZE TABLE partitioned_by_tuple_replica1 FINAL;
OPTIMIZE TABLE partitioned_by_tuple_replica1_00661 FINAL;
SYSTEM SYNC REPLICA partitioned_by_tuple_replica2;
SELECT * FROM partitioned_by_tuple_replica2 ORDER BY d, x, w, y;
SYSTEM SYNC REPLICA partitioned_by_tuple_replica2_00661;
SELECT * FROM partitioned_by_tuple_replica2_00661 ORDER BY d, x, w, y;
DROP TABLE partitioned_by_tuple_replica1;
DROP TABLE partitioned_by_tuple_replica2;
DROP TABLE partitioned_by_tuple_replica1_00661;
DROP TABLE partitioned_by_tuple_replica2_00661;

View File

@ -1,12 +1,12 @@
DROP TABLE IF EXISTS alter;
CREATE TABLE alter (`boolean_false` Nullable(String)) ENGINE = MergeTree ORDER BY tuple();
DROP TABLE IF EXISTS alter_00665;
CREATE TABLE alter_00665 (`boolean_false` Nullable(String)) ENGINE = MergeTree ORDER BY tuple();
INSERT INTO alter (`boolean_false`) VALUES (NULL), (''), ('123');
SELECT * FROM alter;
SELECT * FROM alter ORDER BY boolean_false NULLS LAST;
INSERT INTO alter_00665 (`boolean_false`) VALUES (NULL), (''), ('123');
SELECT * FROM alter_00665;
SELECT * FROM alter_00665 ORDER BY boolean_false NULLS LAST;
ALTER TABLE alter MODIFY COLUMN `boolean_false` Nullable(UInt8);
SELECT * FROM alter;
SELECT * FROM alter ORDER BY boolean_false NULLS LAST;
ALTER TABLE alter_00665 MODIFY COLUMN `boolean_false` Nullable(UInt8);
SELECT * FROM alter_00665;
SELECT * FROM alter_00665 ORDER BY boolean_false NULLS LAST;
DROP TABLE alter;
DROP TABLE alter_00665;

View File

@ -1,16 +1,16 @@
drop temporary table if exists test;
create temporary table test(id int);
drop temporary table if exists test_00670;
create temporary table test_00670(id int);
select '======Before Truncate======';
insert into test values(0);
select * from test;
insert into test_00670 values(0);
select * from test_00670;
select '======After Truncate And Empty======';
truncate temporary table test;
select * from test;
truncate temporary table test_00670;
select * from test_00670;
select '======After Truncate And Insert Data======';
insert into test values(0);
select * from test;
insert into test_00670 values(0);
select * from test_00670;
drop temporary table test;
drop temporary table test_00670;

View File

@ -1,14 +1,14 @@
DROP TABLE IF EXISTS test1;
DROP TABLE IF EXISTS test2;
DROP TABLE IF EXISTS test1_00671;
DROP TABLE IF EXISTS test2_00671;
CREATE TABLE test1(start Integer, end Integer) engine = Memory;
CREATE TABLE test2(start Integer, end Integer) engine = Memory;
CREATE TABLE test1_00671(start Integer, end Integer) engine = Memory;
CREATE TABLE test2_00671(start Integer, end Integer) engine = Memory;
INSERT INTO test1(start,end) VALUES (1,3),(3,5);
INSERT INTO test2(start,end) VALUES (3,5),(1,3);
INSERT INTO test1_00671(start,end) VALUES (1,3),(3,5);
INSERT INTO test2_00671(start,end) VALUES (3,5),(1,3);
SELECT maxIntersections(start,end) from test1;
SELECT maxIntersections(start,end) from test2;
SELECT maxIntersections(start,end) from test1_00671;
SELECT maxIntersections(start,end) from test2_00671;
DROP TABLE test1;
DROP TABLE test2;
DROP TABLE test1_00671;
DROP TABLE test2_00671;

View File

@ -1,14 +1,14 @@
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00681;
CREATE TABLE test(x Int32) ENGINE = Log;
INSERT INTO test VALUES (123);
CREATE TABLE test_00681(x Int32) ENGINE = Log;
INSERT INTO test_00681 VALUES (123);
SELECT a1
FROM
(
SELECT x AS a1, x AS a2 FROM test
SELECT x AS a1, x AS a2 FROM test_00681
UNION ALL
SELECT x, x FROM test
SELECT x, x FROM test_00681
);
DROP TABLE test;
DROP TABLE test_00681;

View File

@ -6,111 +6,111 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
. $CURDIR/mergetree_mutations.lib
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS ordinary"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE ordinary(k UInt32) ENGINE MergeTree ORDER BY k"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS ordinary_00682"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE ordinary_00682(k UInt32) ENGINE MergeTree ORDER BY k"
${CLICKHOUSE_CLIENT} --query="INSERT INTO ordinary(k) VALUES (1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO ordinary(k) VALUES (1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO ordinary_00682(k) VALUES (1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO ordinary_00682(k) VALUES (1)"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE ordinary DELETE WHERE k = 1"
wait_for_mutation "ordinary" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE ordinary_00682 DELETE WHERE k = 1"
wait_for_mutation "ordinary_00682" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE ordinary PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM ordinary"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE ordinary_00682 PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM ordinary_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE ordinary"
${CLICKHOUSE_CLIENT} --query="DROP TABLE ordinary_00682"
${CLICKHOUSE_CLIENT} --query="SELECT '*** Vertical merge ***'"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS vertical"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE vertical(k UInt32, v UInt32) ENGINE MergeTree ORDER BY k \
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS vertical_00682"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE vertical_00682(k UInt32, v UInt32) ENGINE MergeTree ORDER BY k \
SETTINGS enable_vertical_merge_algorithm=1, \
vertical_merge_algorithm_min_rows_to_activate=0, \
vertical_merge_algorithm_min_columns_to_activate=0"
${CLICKHOUSE_CLIENT} --query="INSERT INTO vertical(k, v) VALUES (1, 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO vertical(k, v) VALUES (2, 2)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO vertical_00682(k, v) VALUES (1, 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO vertical_00682(k, v) VALUES (2, 2)"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE vertical DELETE WHERE k = 1"
wait_for_mutation "vertical" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE vertical_00682 DELETE WHERE k = 1"
wait_for_mutation "vertical_00682" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE vertical PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM vertical"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE vertical_00682 PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM vertical_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE vertical"
${CLICKHOUSE_CLIENT} --query="DROP TABLE vertical_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS summing"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE summing(k UInt32, v UInt32) ENGINE SummingMergeTree ORDER BY k"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS summing_00682"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE summing_00682(k UInt32, v UInt32) ENGINE SummingMergeTree ORDER BY k"
${CLICKHOUSE_CLIENT} --query="INSERT INTO summing(k, v) VALUES (1, 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO summing(k, v) VALUES (1, 2)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO summing_00682(k, v) VALUES (1, 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO summing_00682(k, v) VALUES (1, 2)"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE summing DELETE WHERE k = 1"
wait_for_mutation "summing" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE summing_00682 DELETE WHERE k = 1"
wait_for_mutation "summing_00682" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE summing PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM summing"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE summing_00682 PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM summing_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE summing"
${CLICKHOUSE_CLIENT} --query="DROP TABLE summing_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS aggregating"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE aggregating(k UInt32, v AggregateFunction(count)) ENGINE AggregatingMergeTree ORDER BY k"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS aggregating_00682"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE aggregating_00682(k UInt32, v AggregateFunction(count)) ENGINE AggregatingMergeTree ORDER BY k"
${CLICKHOUSE_CLIENT} --query="INSERT INTO aggregating(k) VALUES (1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO aggregating(k) VALUES (1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO aggregating_00682(k) VALUES (1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO aggregating_00682(k) VALUES (1)"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE aggregating DELETE WHERE k = 1"
wait_for_mutation "aggregating" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE aggregating_00682 DELETE WHERE k = 1"
wait_for_mutation "aggregating_00682" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE aggregating PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM aggregating"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE aggregating_00682 PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM aggregating_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE aggregating"
${CLICKHOUSE_CLIENT} --query="DROP TABLE aggregating_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS replacing"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE replacing(k UInt32, v String) ENGINE ReplacingMergeTree ORDER BY k"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS replacing_00682"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE replacing_00682(k UInt32, v String) ENGINE ReplacingMergeTree ORDER BY k"
${CLICKHOUSE_CLIENT} --query="INSERT INTO replacing(k, v) VALUES (1, 'a')"
${CLICKHOUSE_CLIENT} --query="INSERT INTO replacing(k, v) VALUES (1, 'b')"
${CLICKHOUSE_CLIENT} --query="INSERT INTO replacing_00682(k, v) VALUES (1, 'a')"
${CLICKHOUSE_CLIENT} --query="INSERT INTO replacing_00682(k, v) VALUES (1, 'b')"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE replacing DELETE WHERE k = 1"
wait_for_mutation "replacing" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE replacing_00682 DELETE WHERE k = 1"
wait_for_mutation "replacing_00682" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE replacing PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM replacing"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE replacing_00682 PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM replacing_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE replacing"
${CLICKHOUSE_CLIENT} --query="DROP TABLE replacing_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS collapsing"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE collapsing(k UInt32, v String, s Int8) ENGINE CollapsingMergeTree(s) ORDER BY k"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS collapsing_00682"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE collapsing_00682(k UInt32, v String, s Int8) ENGINE CollapsingMergeTree(s) ORDER BY k"
${CLICKHOUSE_CLIENT} --query="INSERT INTO collapsing(k, v, s) VALUES (1, 'a', 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO collapsing(k, v, s) VALUES (2, 'b', 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO collapsing_00682(k, v, s) VALUES (1, 'a', 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO collapsing_00682(k, v, s) VALUES (2, 'b', 1)"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE collapsing DELETE WHERE k IN (1, 2)"
wait_for_mutation "collapsing" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE collapsing_00682 DELETE WHERE k IN (1, 2)"
wait_for_mutation "collapsing_00682" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE collapsing PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM collapsing"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE collapsing_00682 PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM collapsing_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE collapsing"
${CLICKHOUSE_CLIENT} --query="DROP TABLE collapsing_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS versioned_collapsing"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE versioned_collapsing(k UInt32, val String, ver UInt32, s Int8) ENGINE VersionedCollapsingMergeTree(s, ver) ORDER BY k"
${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS versioned_collapsing_00682"
${CLICKHOUSE_CLIENT} --query="CREATE TABLE versioned_collapsing_00682(k UInt32, val String, ver UInt32, s Int8) ENGINE VersionedCollapsingMergeTree(s, ver) ORDER BY k"
${CLICKHOUSE_CLIENT} --query="INSERT INTO versioned_collapsing(k, val, ver, s) VALUES (1, 'a', 0, 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO versioned_collapsing(k, val, ver, s) VALUES (2, 'b', 0, 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO versioned_collapsing_00682(k, val, ver, s) VALUES (1, 'a', 0, 1)"
${CLICKHOUSE_CLIENT} --query="INSERT INTO versioned_collapsing_00682(k, val, ver, s) VALUES (2, 'b', 0, 1)"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE versioned_collapsing DELETE WHERE k IN (1, 2)"
wait_for_mutation "versioned_collapsing" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="ALTER TABLE versioned_collapsing_00682 DELETE WHERE k IN (1, 2)"
wait_for_mutation "versioned_collapsing_00682" "mutation_3.txt"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE versioned_collapsing PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM versioned_collapsing"
${CLICKHOUSE_CLIENT} --query="OPTIMIZE TABLE versioned_collapsing_00682 PARTITION tuple() FINAL"
${CLICKHOUSE_CLIENT} --query="SELECT * FROM versioned_collapsing_00682"
${CLICKHOUSE_CLIENT} --query="DROP TABLE versioned_collapsing"
${CLICKHOUSE_CLIENT} --query="DROP TABLE versioned_collapsing_00682"

View File

@ -1,23 +1,23 @@
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00687;
DROP TABLE IF EXISTS mv_bad;
DROP TABLE IF EXISTS mv_good;
DROP TABLE IF EXISTS mv_group;
CREATE TABLE test (x String) ENGINE = Null;
CREATE TABLE test_00687 (x String) ENGINE = Null;
create MATERIALIZED VIEW mv_bad (x String)
ENGINE = MergeTree Partition by tuple() order by tuple()
AS SELECT DISTINCT x FROM test;
AS SELECT DISTINCT x FROM test_00687;
create MATERIALIZED VIEW mv_good (x String)
ENGINE = MergeTree Partition by tuple() order by tuple()
AS SELECT x FROM test;
AS SELECT x FROM test_00687;
create MATERIALIZED VIEW mv_group (x String)
ENGINE = MergeTree Partition by tuple() order by tuple()
AS SELECT x FROM test group by x;
AS SELECT x FROM test_00687 group by x;
insert into test values ('stest'), ('stest');
insert into test_00687 values ('stest'), ('stest');
select * from mv_bad;
SELECT '---';
@ -28,4 +28,4 @@ select * from mv_group;
DROP TABLE mv_bad;
DROP TABLE mv_good;
DROP TABLE mv_group;
DROP TABLE test;
DROP TABLE test_00687;

View File

@ -4,25 +4,25 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
. $CURDIR/../shell_config.sh
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_00687;"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE test(val Int64) engine = Memory;"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE test_00687(val Int64) engine = Memory;"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (1);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (2);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (3);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (4);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (5);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (6);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (7);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (8);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test VALUES (9);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (1);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (2);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (3);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (4);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (5);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (6);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (7);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (8);"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00687 VALUES (9);"
${CLICKHOUSE_CLIENT} --query "SELECT TOP 2 * FROM test ORDER BY val;"
${CLICKHOUSE_CLIENT} --query "SELECT TOP (2) * FROM test ORDER BY val;"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test ORDER BY val LIMIT 2 OFFSET 2;"
${CLICKHOUSE_CLIENT} --query "SELECT TOP 2 * FROM test_00687 ORDER BY val;"
${CLICKHOUSE_CLIENT} --query "SELECT TOP (2) * FROM test_00687 ORDER BY val;"
${CLICKHOUSE_CLIENT} --query "SELECT * FROM test_00687 ORDER BY val LIMIT 2 OFFSET 2;"
echo `${CLICKHOUSE_CLIENT} --query "SELECT TOP 2 * FROM test ORDER BY val LIMIT 2;" 2>&1 | grep -c "Code: 406"`
echo `${CLICKHOUSE_CLIENT} --query "SELECT * FROM test ORDER BY val LIMIT 2,3 OFFSET 2;" 2>&1 | grep -c "Code: 62"`
echo `${CLICKHOUSE_CLIENT} --query "SELECT TOP 2 * FROM test_00687 ORDER BY val LIMIT 2;" 2>&1 | grep -c "Code: 406"`
echo `${CLICKHOUSE_CLIENT} --query "SELECT * FROM test_00687 ORDER BY val LIMIT 2,3 OFFSET 2;" 2>&1 | grep -c "Code: 62"`
${CLICKHOUSE_CLIENT} --query "DROP TABLE test;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE test_00687;"

View File

@ -1,9 +1,9 @@
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00688;
CREATE TABLE test (a UInt8) ENGINE = Memory;
CREATE TABLE test_00688 (a UInt8) ENGINE = Memory;
INSERT INTO test VALUES (1), (2), (1), (3);
INSERT INTO test_00688 VALUES (1), (2), (1), (3);
SELECT CASE WHEN a=1 THEN 0 END FROM test;
SELECT CASE WHEN a=1 THEN 0 END FROM test_00688;
DROP TABLE test;
DROP TABLE test_00688;

View File

@ -5,11 +5,11 @@ CLICKHOUSE_CLIENT_SERVER_LOGS_LEVEL=none
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
. $CURDIR/../shell_config.sh
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test;"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE test (val Int64) engine = Memory;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_00690;"
${CLICKHOUSE_CLIENT} --query "CREATE TABLE test_00690 (val Int64) engine = Memory;"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test SELECT 1;"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test SELECT NULL AS src;" 2>&1 | grep -oF 'while converting source column src to destination column val';
${CLICKHOUSE_CLIENT} --query "INSERT INTO test SELECT number % 2 ? 1 : NULL AS src FROM numbers(10);" 2>&1 | grep -oF 'while converting source column src to destination column val';
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00690 SELECT 1;"
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00690 SELECT NULL AS src;" 2>&1 | grep -oF 'while converting source column src to destination column val';
${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00690 SELECT number % 2 ? 1 : NULL AS src FROM numbers(10);" 2>&1 | grep -oF 'while converting source column src to destination column val';
${CLICKHOUSE_CLIENT} --query "DROP TABLE test;"
${CLICKHOUSE_CLIENT} --query "DROP TABLE test_00690;"

View File

@ -3,6 +3,7 @@ SELECT avg(blockSize()) <= 10 FROM system.tables LIMIT 10 SETTINGS max_block_siz
SELECT (SELECT count() FROM system.tables SETTINGS max_block_size = 10) = (SELECT count() FROM system.tables SETTINGS max_block_size = 9);
SELECT (SELECT count() FROM system.tables SETTINGS max_block_size = 100) = (SELECT count() FROM system.tables SETTINGS max_block_size = 1000);
DROP TEMPORARY TABLE IF EXISTS t_00693;
CREATE TEMPORARY TABLE t_00693 (x UInt8);
SELECT * FROM system.tables WHERE is_temporary AND name='t_00693';

View File

@ -8,44 +8,44 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
${CLICKHOUSE_CLIENT} --multiquery --query="
DROP TABLE IF EXISTS view;
DROP TABLE IF EXISTS null;
DROP TABLE IF EXISTS view_00699;
DROP TABLE IF EXISTS null_00699;
CREATE TABLE null (x UInt8) ENGINE = MergeTree ORDER BY tuple();
CREATE MATERIALIZED VIEW view ENGINE = MergeTree ORDER BY tuple() AS SELECT * FROM null;
CREATE TABLE null_00699 (x UInt8) ENGINE = MergeTree ORDER BY tuple();
CREATE MATERIALIZED VIEW view_00699 ENGINE = MergeTree ORDER BY tuple() AS SELECT * FROM null_00699;
INSERT INTO null SELECT * FROM numbers(100);
SELECT count(), min(x), max(x) FROM null;
SELECT count(), min(x), max(x) FROM view;
INSERT INTO null_00699 SELECT * FROM numbers(100);
SELECT count(), min(x), max(x) FROM null_00699;
SELECT count(), min(x), max(x) FROM view_00699;
ALTER TABLE null DELETE WHERE x % 2 = 0;"
ALTER TABLE null_00699 DELETE WHERE x % 2 = 0;"
wait_for_mutation null mutation_2.txt
wait_for_mutation null_00699 mutation_2.txt
${CLICKHOUSE_CLIENT} --multiquery --query="
SELECT count(), min(x), max(x) FROM null;
SELECT count(), min(x), max(x) FROM view;
SELECT count(), min(x), max(x) FROM null_00699;
SELECT count(), min(x), max(x) FROM view_00699;
ALTER TABLE view DELETE WHERE x % 2 = 0;
ALTER TABLE view_00699 DELETE WHERE x % 2 = 0;
"
wait_for_mutation .inner.view mutation_2.txt
wait_for_mutation .inner.view_00699 mutation_2.txt
${CLICKHOUSE_CLIENT} --multiquery --query="
SELECT count(), min(x), max(x) FROM null;
SELECT count(), min(x), max(x) FROM view;
SELECT count(), min(x), max(x) FROM null_00699;
SELECT count(), min(x), max(x) FROM view_00699;
ALTER TABLE null DELETE WHERE x % 2 = 1;
ALTER TABLE view DELETE WHERE x % 2 = 1;
ALTER TABLE null_00699 DELETE WHERE x % 2 = 1;
ALTER TABLE view_00699 DELETE WHERE x % 2 = 1;
"
wait_for_mutation null mutation_3.txt
wait_for_mutation .inner.view mutation_3.txt
wait_for_mutation null_00699 mutation_3.txt
wait_for_mutation .inner.view_00699 mutation_3.txt
${CLICKHOUSE_CLIENT} --multiquery --query="
SELECT count(), min(x), max(x) FROM null;
SELECT count(), min(x), max(x) FROM view;
SELECT count(), min(x), max(x) FROM null_00699;
SELECT count(), min(x), max(x) FROM view_00699;
DROP TABLE view;
DROP TABLE null;
DROP TABLE view_00699;
DROP TABLE null_00699;
"

View File

@ -1,14 +1,15 @@
CREATE TEMPORARY TABLE test (x Float32, y Float64, z UInt64, s String);
DROP TEMPORARY TABLE IF EXISTS test_00707;
CREATE TEMPORARY TABLE test_00707 (x Float32, y Float64, z UInt64, s String);
INSERT INTO test FORMAT CSV 123.456,789.012,345678,Hello
INSERT INTO test_00707 FORMAT CSV 123.456,789.012,345678,Hello
SET format_csv_delimiter = ';';
INSERT INTO test FORMAT CSV 123.456;789.012;345678;Hello
INSERT INTO test_00707 FORMAT CSV 123.456;789.012;345678;Hello
SET format_csv_delimiter = ':';
INSERT INTO test FORMAT CSV 123.456:789.012:345678:Hello
INSERT INTO test_00707 FORMAT CSV 123.456:789.012:345678:Hello
SET format_csv_delimiter = '|';
INSERT INTO test FORMAT CSV 123.456|789.012|345678|Hello
INSERT INTO test_00707 FORMAT CSV 123.456|789.012|345678|Hello
SELECT * FROM test;
SELECT * FROM test_00707;

View File

@ -1,12 +1,12 @@
set allow_suspicious_low_cardinality_types = 1;
DROP TABLE IF EXISTS test.test_low_null_float;
DROP TABLE IF EXISTS test.dist;
DROP TABLE IF EXISTS test_low_null_float;
DROP TABLE IF EXISTS dist_00717;
CREATE TABLE test.test_low_null_float (a LowCardinality(Nullable(Float64))) ENGINE = Memory;
CREATE TABLE test.dist (a LowCardinality(Nullable(Float64))) ENGINE = Distributed('test_cluster_two_shards_localhost', 'test', 'test_low_null_float', rand());
CREATE TABLE test_low_null_float (a LowCardinality(Nullable(Float64))) ENGINE = Memory;
CREATE TABLE dist_00717 (a LowCardinality(Nullable(Float64))) ENGINE = Distributed('test_cluster_two_shards_localhost', currentDatabase(), 'test_low_null_float', rand());
INSERT INTO test.dist (a) SELECT number FROM system.numbers LIMIT 1000000;
SELECT a, count() FROM test.dist GROUP BY a ORDER BY a ASC, count() ASC LIMIT 10;
INSERT INTO dist_00717 (a) SELECT number FROM system.numbers LIMIT 1000000;
SELECT a, count() FROM dist_00717 GROUP BY a ORDER BY a ASC, count() ASC LIMIT 10;
DROP TABLE IF EXISTS test.test_low_null_float;
DROP TABLE IF EXISTS test.dist;
DROP TABLE IF EXISTS test_low_null_float;
DROP TABLE IF EXISTS dist_00717;

View File

@ -1,3 +1,4 @@
CREATE TEMPORARY TABLE test (d Date, dt DateTime);
INSERT INTO test VALUES (toDateTime('2000-01-01 01:02:03'), toDate('2000-01-01'));
SELECT * FROM test;
DROP TEMPORARY TABLE IF EXISTS test_00724;
CREATE TEMPORARY TABLE test_00724 (d Date, dt DateTime);
INSERT INTO test_00724 VALUES (toDateTime('2000-01-01 01:02:03'), toDate('2000-01-01'));
SELECT * FROM test_00724;

View File

@ -1,32 +1,32 @@
SET send_logs_level = 'none';
drop table if exists t1;
create table t1 (id UInt64, val Array(String),nid UInt64, eDate Date)ENGINE = MergeTree(eDate, (id, eDate), 8192);
drop table if exists t1_00729;
create table t1_00729 (id UInt64, val Array(String),nid UInt64, eDate Date)ENGINE = MergeTree(eDate, (id, eDate), 8192);
insert into t1 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (2,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (2,[],2,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (3,[],4,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (3,[],5,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (3,[],6,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (3,[],7,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (3,[],8,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (2,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (2,[],2,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (3,[],4,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (3,[],5,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (3,[],6,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (3,[],7,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (3,[],8,'2018-09-27');
select arrayJoin(val) as nameGroup6 from t1 prewhere notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6; -- { serverError 182 }
select arrayJoin(val) as nameGroup6, countDistinct(nid) as rowids from t1 where notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6;
select arrayJoin(val) as nameGroup6, countDistinct(nid) as rowids from t1 prewhere notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6; -- { serverError 182 }
select arrayJoin(val) as nameGroup6 from t1_00729 prewhere notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6; -- { serverError 182 }
select arrayJoin(val) as nameGroup6, countDistinct(nid) as rowids from t1_00729 where notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6;
select arrayJoin(val) as nameGroup6, countDistinct(nid) as rowids from t1_00729 prewhere notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6; -- { serverError 182 }
drop table t1;
create table t1 (id UInt64, val Array(String),nid UInt64, eDate Date) ENGINE = MergeTree(eDate, (id, eDate), 8192);
drop table t1_00729;
create table t1_00729 (id UInt64, val Array(String),nid UInt64, eDate Date) ENGINE = MergeTree(eDate, (id, eDate), 8192);
insert into t1 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (2,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1 (id,val,nid,eDate) values (2,[],2,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (2,['background','foreground','heading','image'],1,'2018-09-27');
insert into t1_00729 (id,val,nid,eDate) values (2,[],2,'2018-09-27');
select arrayJoin(val) as nameGroup6 from t1 prewhere notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6; -- { serverError 182 }
select arrayJoin(val) as nameGroup6, countDistinct(nid) as rowids from t1 where notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6;
select arrayJoin(val) as nameGroup6, countDistinct(nid) as rowids from t1 prewhere notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6; -- { serverError 182 }
select arrayJoin(val) as nameGroup6 from t1_00729 prewhere notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6; -- { serverError 182 }
select arrayJoin(val) as nameGroup6, countDistinct(nid) as rowids from t1_00729 where notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6;
select arrayJoin(val) as nameGroup6, countDistinct(nid) as rowids from t1_00729 prewhere notEmpty(toString(nameGroup6)) group by nameGroup6 order by nameGroup6; -- { serverError 182 }
drop table t1;
drop table t1_00729;

View File

@ -1,3 +1,4 @@
drop temporary table if exists wups;
create temporary table wups (a Array(Nullable(String)));
select count(), a[1] from wups group by a[1];
insert into wups (a) values(['foo']);

View File

@ -1,23 +1,23 @@
DROP TABLE IF EXISTS test.test;
DROP TABLE IF EXISTS test.test_view;
DROP TABLE IF EXISTS test.test_nested_view;
DROP TABLE IF EXISTS test.test_joined_view;
DROP TABLE IF EXISTS test.test_00740;
DROP TABLE IF EXISTS test.test_view_00740;
DROP TABLE IF EXISTS test.test_nested_view_00740;
DROP TABLE IF EXISTS test.test_joined_view_00740;
USE test;
CREATE VIEW test AS SELECT 1 AS N;
CREATE VIEW test_view AS SELECT * FROM test;
CREATE VIEW test_nested_view AS SELECT * FROM (SELECT * FROM test);
CREATE VIEW test_joined_view AS SELECT *, N AS x FROM test ANY LEFT JOIN test USING N;
CREATE VIEW test_00740 AS SELECT 1 AS N;
CREATE VIEW test_view_00740 AS SELECT * FROM test_00740;
CREATE VIEW test_nested_view_00740 AS SELECT * FROM (SELECT * FROM test_00740);
CREATE VIEW test_joined_view_00740 AS SELECT *, N AS x FROM test_00740 ANY LEFT JOIN test_00740 USING N;
SELECT * FROM test_view;
SELECT * FROM test_nested_view;
SELECT * FROM test_joined_view;
SELECT * FROM test_view_00740;
SELECT * FROM test_nested_view_00740;
SELECT * FROM test_joined_view_00740;
USE default;
SELECT * FROM test.test_view;
SELECT * FROM test.test_nested_view;
SELECT * FROM test.test_joined_view;
SELECT * FROM test.test_view_00740;
SELECT * FROM test.test_nested_view_00740;
SELECT * FROM test.test_joined_view_00740;
DROP TABLE IF EXISTS test.test;
DROP TABLE IF EXISTS test.test_view;
DROP TABLE IF EXISTS test.test_nested_view;
DROP TABLE IF EXISTS test.test_00740;
DROP TABLE IF EXISTS test.test_view_00740;
DROP TABLE IF EXISTS test.test_nested_view_00740;

View File

@ -1,9 +1,10 @@
CREATE TEMPORARY TABLE test
DROP TEMPORARY TABLE IF EXISTS test_00744;
CREATE TEMPORARY TABLE test_00744
(
x Int32
);
INSERT INTO test VALUES (1);
INSERT INTO test_00744 VALUES (1);
SELECT x
FROM
@ -11,13 +12,13 @@ FROM
SELECT
x,
1
FROM test
FROM test_00744
ALL INNER JOIN
(
SELECT
count(),
1
FROM test
FROM test_00744
) USING (1)
LIMIT 10
);
@ -25,12 +26,12 @@ FROM
SELECT
x,
1
FROM test
FROM test_00744
ALL INNER JOIN
(
SELECT
count(),
1
FROM test
FROM test_00744
) USING (1)
LIMIT 10;

View File

@ -1,11 +1,11 @@
DROP TABLE IF EXISTS alter_update;
DROP TABLE IF EXISTS alter_update_00806;
CREATE TABLE alter_update (d Date, e Enum8('foo'=1, 'bar'=2)) Engine = MergeTree(d, (d), 8192);
INSERT INTO alter_update (d, e) VALUES ('2018-01-01', 'foo');
INSERT INTO alter_update (d, e) VALUES ('2018-01-02', 'bar');
CREATE TABLE alter_update_00806 (d Date, e Enum8('foo'=1, 'bar'=2)) Engine = MergeTree(d, (d), 8192);
INSERT INTO alter_update_00806 (d, e) VALUES ('2018-01-01', 'foo');
INSERT INTO alter_update_00806 (d, e) VALUES ('2018-01-02', 'bar');
ALTER TABLE alter_update UPDATE e = CAST('foo', 'Enum8(\'foo\' = 1, \'bar\' = 2)') WHERE d='2018-01-02';
ALTER TABLE alter_update_00806 UPDATE e = CAST('foo', 'Enum8(\'foo\' = 1, \'bar\' = 2)') WHERE d='2018-01-02';
SELECT sleep(1); -- TODO: there should be setting for sync ALTER UPDATE someday.
SELECT e FROM alter_update ORDER BY d;
SELECT e FROM alter_update_00806 ORDER BY d;

View File

@ -1,24 +1,24 @@
SET send_logs_level = 'none';
DROP TABLE IF EXISTS test;
CREATE TABLE test(date Date, id Int8, name String, value Int64, sign Int8) ENGINE = CollapsingMergeTree(sign) ORDER BY (id, date);
DROP TABLE IF EXISTS test_00808;
CREATE TABLE test_00808(date Date, id Int8, name String, value Int64, sign Int8) ENGINE = CollapsingMergeTree(sign) ORDER BY (id, date);
INSERT INTO test VALUES('2000-01-01', 1, 'test string 1', 1, 1);
INSERT INTO test VALUES('2000-01-01', 2, 'test string 2', 2, 1);
INSERT INTO test_00808 VALUES('2000-01-01', 1, 'test string 1', 1, 1);
INSERT INTO test_00808 VALUES('2000-01-01', 2, 'test string 2', 2, 1);
SET enable_optimize_predicate_expression = 1;
SELECT '-------ENABLE OPTIMIZE PREDICATE-------';
SELECT * FROM (SELECT * FROM test FINAL) WHERE id = 1;
SELECT * FROM (SELECT * FROM test LIMIT 1) WHERE id = 1;
SELECT * FROM (SELECT id FROM test GROUP BY id LIMIT 1 BY id) WHERE id = 1;
SELECT * FROM (SELECT * FROM test_00808 FINAL) WHERE id = 1;
SELECT * FROM (SELECT * FROM test_00808 LIMIT 1) WHERE id = 1;
SELECT * FROM (SELECT id FROM test_00808 GROUP BY id LIMIT 1 BY id) WHERE id = 1;
SET force_primary_key = 1;
SELECT '-------FORCE PRIMARY KEY-------';
SELECT * FROM (SELECT * FROM test FINAL) WHERE id = 1; -- { serverError 277 }
SELECT * FROM (SELECT * FROM test LIMIT 1) WHERE id = 1; -- { serverError 277 }
SELECT * FROM (SELECT id FROM test GROUP BY id LIMIT 1 BY id) WHERE id = 1; -- { serverError 277 }
SELECT * FROM (SELECT * FROM test_00808 FINAL) WHERE id = 1; -- { serverError 277 }
SELECT * FROM (SELECT * FROM test_00808 LIMIT 1) WHERE id = 1; -- { serverError 277 }
SELECT * FROM (SELECT id FROM test_00808 GROUP BY id LIMIT 1 BY id) WHERE id = 1; -- { serverError 277 }
SELECT '-------CHECK STATEFUL FUNCTIONS-------';
SELECT n, z, changed FROM (
@ -36,4 +36,4 @@ SELECT arrayJoin(arrayMap(x -> x, arraySort(groupArray((ts, n))))) AS k FROM (
) WHERE z = 'a' GROUP BY z;
DROP TABLE IF EXISTS test;
DROP TABLE IF EXISTS test_00808;

View File

@ -1,21 +1,21 @@
drop table if exists t1;
drop table if exists t2;
create table t1 (a Int8, val Float32) engine=Memory();
create table t2 (a Int8, val Float32) engine=Memory();
drop table if exists t1_00816;
drop table if exists t2_00816;
create table t1_00816 (a Int8, val Float32) engine=Memory();
create table t2_00816 (a Int8, val Float32) engine=Memory();
INSERT INTO t1 VALUES (1, 123);
INSERT INTO t2 VALUES (1, 456);
INSERT INTO t1_00816 VALUES (1, 123);
INSERT INTO t2_00816 VALUES (1, 456);
select t1.a, t2.a from t1 all inner join t2 on t1.a=t2.a;
select t1_00816.a, t2_00816.a from t1_00816 all inner join t2_00816 on t1_00816.a=t2_00816.a;
-- Received exception from server (version 18.14.1):
-- Code: 47. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Unknown identifier: t2.a.
-- Code: 47. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Unknown identifier: t2_00816.a.
-- this query works fine
select t1.a, t2.* from t1 all inner join t2 on t1.a=t2.a;
select t1_00816.a, t2_00816.* from t1_00816 all inner join t2_00816 on t1_00816.a=t2_00816.a;
-- and this
select t1.a, t2.val from t1 all inner join t2 on t1.a=t2.a;
select t1_00816.a, t2_00816.val from t1_00816 all inner join t2_00816 on t1_00816.a=t2_00816.a;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t1_00816;
DROP TABLE t2_00816;

View File

@ -18,9 +18,8 @@ with 10 as a select a + 1 as a; -- { serverError 179 }
SELECT 0 as t FROM (SELECT 1 as t) as inn WHERE inn.t = 1;
SELECT sum(value) as value FROM (SELECT 1 as value) as data WHERE data.value > 0;
USE test;
DROP TABLE IF EXISTS test;
CREATE TABLE test (field String, not_field String) ENGINE = Memory;
INSERT INTO test (field, not_field) VALUES ('123', '456')
SELECT test.field AS other_field, test.not_field AS field FROM test;
DROP TABLE test;
DROP TABLE IF EXISTS test_00818;
CREATE TABLE test_00818 (field String, not_field String) ENGINE = Memory;
INSERT INTO test_00818 (field, not_field) VALUES ('123', '456')
SELECT test_00818.field AS other_field, test_00818.not_field AS field FROM test_00818;
DROP TABLE test_00818;

View File

@ -56,26 +56,26 @@ comma nullable
1 1 1 1
2 2 1 2
cross
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nCROSS JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 \nWHERE a = t2.a
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nALL INNER JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 ON a = t2.a\nWHERE a = t2.a
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nCROSS JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 \nWHERE a = t2_00826.a
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nALL INNER JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 ON a = t2_00826.a\nWHERE a = t2_00826.a
cross nullable
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \n, \n(\n SELECT *\n FROM t2 \n) AS t2 \nWHERE a = t2.a
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nALL INNER JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 ON a = t2.a\nWHERE a = t2.a
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \n, \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 \nWHERE a = t2_00826.a
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nALL INNER JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 ON a = t2_00826.a\nWHERE a = t2_00826.a
cross nullable vs not nullable
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nCROSS JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 \nWHERE a = t2.b
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nALL INNER JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 ON a = t2.b\nWHERE a = t2.b
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nCROSS JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 \nWHERE a = t2_00826.b
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nALL INNER JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 ON a = t2_00826.b\nWHERE a = t2_00826.b
cross self
SELECT \n a, \n b, \n y.a, \n y.b\nFROM t1 AS x \nCROSS JOIN t1 AS y \nWHERE (a = y.a) AND (b = y.b)
SELECT \n a, \n b, \n y.a, \n y.b\nFROM t1 AS x \nALL INNER JOIN t1 AS y ON (a = y.a) AND (b = y.b)\nWHERE (a = y.a) AND (b = y.b)
SELECT \n a, \n b, \n y.a, \n y.b\nFROM t1_00826 AS x \nCROSS JOIN t1_00826 AS y \nWHERE (a = y.a) AND (b = y.b)
SELECT \n a, \n b, \n y.a, \n y.b\nFROM t1_00826 AS x \nALL INNER JOIN t1_00826 AS y ON (a = y.a) AND (b = y.b)\nWHERE (a = y.a) AND (b = y.b)
cross one table expr
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nCROSS JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 \nWHERE a = b
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nCROSS JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 \nWHERE a = b
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nCROSS JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 \nWHERE a = b
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nCROSS JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 \nWHERE a = b
cross multiple ands
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nCROSS JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 \nWHERE (a = t2.a) AND (b = t2.b)
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nALL INNER JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 ON (a = t2.a) AND (b = t2.b)\nWHERE (a = t2.a) AND (b = t2.b)
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nCROSS JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 \nWHERE (a = t2_00826.a) AND (b = t2_00826.b)
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nALL INNER JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 ON (a = t2_00826.a) AND (b = t2_00826.b)\nWHERE (a = t2_00826.a) AND (b = t2_00826.b)
cross and inside and
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nCROSS JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 \nWHERE (a = t2.a) AND ((a = t2.a) AND ((a = t2.a) AND (b = t2.b)))
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nALL INNER JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 ON (a = t2.a) AND (a = t2.a) AND (a = t2.a) AND (b = t2.b)\nWHERE (a = t2.a) AND ((a = t2.a) AND ((a = t2.a) AND (b = t2.b)))
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nCROSS JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 \nWHERE (a = t2_00826.a) AND ((a = t2_00826.a) AND ((a = t2_00826.a) AND (b = t2_00826.b)))
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nALL INNER JOIN \n(\n SELECT *\n FROM t2_00826 \n) AS t2_00826 ON (a = t2_00826.a) AND (a = t2_00826.a) AND (a = t2_00826.a) AND (b = t2_00826.b)\nWHERE (a = t2_00826.a) AND ((a = t2_00826.a) AND ((a = t2_00826.a) AND (b = t2_00826.b)))
cross split conjunction
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nCROSS JOIN \n(\n SELECT *\n FROM t2 \n WHERE b > 0\n) AS t2 \nWHERE (a = t2.a) AND (b = t2.b) AND (a >= 1) AND (t2.b > 0)
SELECT \n a, \n b, \n t2.a, \n t2.b\nFROM t1 \nALL INNER JOIN \n(\n SELECT *\n FROM t2 \n WHERE b > 0\n) AS t2 ON (a = t2.a) AND (b = t2.b)\nWHERE (a = t2.a) AND (b = t2.b) AND (a >= 1) AND (t2.b > 0)
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nCROSS JOIN \n(\n SELECT *\n FROM t2_00826 \n WHERE b > 0\n) AS t2_00826 \nWHERE (a = t2_00826.a) AND (b = t2_00826.b) AND (a >= 1) AND (t2_00826.b > 0)
SELECT \n a, \n b, \n t2_00826.a, \n t2_00826.b\nFROM t1_00826 \nALL INNER JOIN \n(\n SELECT *\n FROM t2_00826 \n WHERE b > 0\n) AS t2_00826 ON (a = t2_00826.a) AND (b = t2_00826.b)\nWHERE (a = t2_00826.a) AND (b = t2_00826.b) AND (a >= 1) AND (t2_00826.b > 0)

View File

@ -5,93 +5,93 @@ select * from system.one cross join system.one;
set allow_experimental_cross_to_join_conversion = 1;
select * from system.one cross join system.one;
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP TABLE IF EXISTS t1_00826;
DROP TABLE IF EXISTS t2_00826;
CREATE TABLE t1 (a Int8, b Nullable(Int8)) ENGINE = Memory;
CREATE TABLE t2 (a Int8, b Nullable(Int8)) ENGINE = Memory;
CREATE TABLE t1_00826 (a Int8, b Nullable(Int8)) ENGINE = Memory;
CREATE TABLE t2_00826 (a Int8, b Nullable(Int8)) ENGINE = Memory;
INSERT INTO t1 values (1,1), (2,2);
INSERT INTO t2 values (1,1), (1,2);
INSERT INTO t2 (a) values (2), (3);
INSERT INTO t1_00826 values (1,1), (2,2);
INSERT INTO t2_00826 values (1,1), (1,2);
INSERT INTO t2_00826 (a) values (2), (3);
SELECT 'cross';
SET allow_experimental_cross_to_join_conversion = 0;
SELECT * FROM t1 cross join t2 where t1.a = t2.a;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a;
SET allow_experimental_cross_to_join_conversion = 1;
SELECT * FROM t1 cross join t2 where t1.a = t2.a;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a;
SELECT 'cross nullable';
SET allow_experimental_cross_to_join_conversion = 0;
SELECT * FROM t1 cross join t2 where t1.b = t2.b;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.b = t2_00826.b;
SET allow_experimental_cross_to_join_conversion = 1;
SELECT * FROM t1 cross join t2 where t1.b = t2.b;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.b = t2_00826.b;
SELECT 'cross nullable vs not nullable';
SET allow_experimental_cross_to_join_conversion = 0;
SELECT * FROM t1 cross join t2 where t1.a = t2.b;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.b;
SET allow_experimental_cross_to_join_conversion = 1;
SELECT * FROM t1 cross join t2 where t1.a = t2.b;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.b;
SELECT 'cross self';
SET allow_experimental_cross_to_join_conversion = 0;
SELECT * FROM t1 x cross join t1 y where x.a = y.a and x.b = y.b;
SELECT * FROM t1_00826 x cross join t1_00826 y where x.a = y.a and x.b = y.b;
SET allow_experimental_cross_to_join_conversion = 1;
SELECT * FROM t1 x cross join t1 y where x.a = y.a and x.b = y.b;
SELECT * FROM t1_00826 x cross join t1_00826 y where x.a = y.a and x.b = y.b;
SELECT 'cross one table expr';
SET allow_experimental_cross_to_join_conversion = 0;
SELECT * FROM t1 cross join t2 where t1.a = t1.b order by (t1.a, t2.a, t2.b);
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t1_00826.b order by (t1_00826.a, t2_00826.a, t2_00826.b);
SET allow_experimental_cross_to_join_conversion = 1;
SELECT * FROM t1 cross join t2 where t1.a = t1.b order by (t1.a, t2.a, t2.b);
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t1_00826.b order by (t1_00826.a, t2_00826.a, t2_00826.b);
SELECT 'cross multiple ands';
SET allow_experimental_cross_to_join_conversion = 0;
--SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.a = t2.a and t1.b = t2.b and t1.a = t2.a;
SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.b = t2.b;
--SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b and t1_00826.a = t2_00826.a;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b;
SET allow_experimental_cross_to_join_conversion = 1;
SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.b = t2.b;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b;
SELECT 'cross and inside and';
SET allow_experimental_cross_to_join_conversion = 0;
--SELECT * FROM t1 cross join t2 where t1.a = t2.a and (t1.a = t2.a and (t1.a = t2.a and t1.b = t2.b));
--SELECT * FROM t1 x cross join t2 y where t1.a = t2.a and (t1.b = t2.b and (x.a = y.a and x.b = y.b));
SELECT * FROM t1 cross join t2 where t1.a = t2.a and (t1.b = t2.b and 1);
--SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and (t1_00826.a = t2_00826.a and (t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b));
--SELECT * FROM t1_00826 x cross join t2_00826 y where t1_00826.a = t2_00826.a and (t1_00826.b = t2_00826.b and (x.a = y.a and x.b = y.b));
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and (t1_00826.b = t2_00826.b and 1);
SET allow_experimental_cross_to_join_conversion = 1;
SELECT * FROM t1 cross join t2 where t1.a = t2.a and (t1.b = t2.b and 1);
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and (t1_00826.b = t2_00826.b and 1);
SELECT 'cross split conjunction';
SET allow_experimental_cross_to_join_conversion = 0;
SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.b = t2.b and t1.a >= 1 and t2.b = 1;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b and t1_00826.a >= 1 and t2_00826.b = 1;
SET allow_experimental_cross_to_join_conversion = 1;
SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.b = t2.b and t1.a >= 1 and t2.b = 1;
SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b and t1_00826.a >= 1 and t2_00826.b = 1;
SET allow_experimental_cross_to_join_conversion = 1;
SELECT 'comma';
SELECT * FROM t1, t2 where t1.a = t2.a;
SELECT * FROM t1_00826, t2_00826 where t1_00826.a = t2_00826.a;
SELECT 'comma nullable';
SELECT * FROM t1, t2 where t1.b = t2.b;
SELECT * FROM t1_00826, t2_00826 where t1_00826.b = t2_00826.b;
SELECT 'cross';
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.a;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.a;
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a;
SELECT 'cross nullable';
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1, t2 where t1.a = t2.a;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1, t2 where t1.a = t2.a;
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1_00826, t2_00826 where t1_00826.a = t2_00826.a;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1_00826, t2_00826 where t1_00826.a = t2_00826.a;
SELECT 'cross nullable vs not nullable';
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.b;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.b;
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.b;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.b;
SELECT 'cross self';
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1 x cross join t1 y where x.a = y.a and x.b = y.b;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1 x cross join t1 y where x.a = y.a and x.b = y.b;
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1_00826 x cross join t1_00826 y where x.a = y.a and x.b = y.b;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1_00826 x cross join t1_00826 y where x.a = y.a and x.b = y.b;
SELECT 'cross one table expr';
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t1.b;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t1.b;
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t1_00826.b;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t1_00826.b;
SELECT 'cross multiple ands';
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.b = t2.b;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.b = t2.b;
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b;
SELECT 'cross and inside and';
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.a and (t1.a = t2.a and (t1.a = t2.a and t1.b = t2.b));
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.a and (t1.a = t2.a and (t1.a = t2.a and t1.b = t2.b));
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and (t1_00826.a = t2_00826.a and (t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b));
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and (t1_00826.a = t2_00826.a and (t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b));
SELECT 'cross split conjunction';
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.b = t2.b and t1.a >= 1 and t2.b > 0;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1 cross join t2 where t1.a = t2.a and t1.b = t2.b and t1.a >= 1 and t2.b > 0;
SET allow_experimental_cross_to_join_conversion = 0; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b and t1_00826.a >= 1 and t2_00826.b > 0;
SET allow_experimental_cross_to_join_conversion = 1; ANALYZE SELECT * FROM t1_00826 cross join t2_00826 where t1_00826.a = t2_00826.a and t1_00826.b = t2_00826.b and t1_00826.a >= 1 and t2_00826.b > 0;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t1_00826;
DROP TABLE t2_00826;

View File

@ -5,11 +5,11 @@ set -e
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
. $CURDIR/../shell_config.sh
for i in {1..200}; do echo "drop table if exists view" | $CLICKHOUSE_CLIENT; echo "create view view as select count(*),database,table from system.columns group by database,table" | $CLICKHOUSE_CLIENT; done &
for i in {1..500}; do echo "select * from view order by table" | $CLICKHOUSE_CLIENT >/dev/null 2>&1 || true; done &
for i in {1..200}; do echo "drop table if exists view_00840" | $CLICKHOUSE_CLIENT; echo "create view view_00840 as select count(*),database,table from system.columns group by database,table" | $CLICKHOUSE_CLIENT; done &
for i in {1..500}; do echo "select * from view_00840 order by table" | $CLICKHOUSE_CLIENT >/dev/null 2>&1 || true; done &
wait
echo "drop table view" | $CLICKHOUSE_CLIENT
echo "drop table view_00840" | $CLICKHOUSE_CLIENT
echo 'did not deadlock'

View File

@ -1,5 +1,5 @@
CREATE TEMPORARY TABLE t1 (x UInt8);
INSERT INTO t1 VALUES (1);
SELECT * FROM t1;
CREATE TEMPORARY TABLE t1_00841 (x UInt8);
INSERT INTO t1_00841 VALUES (1);
SELECT * FROM t1_00841;
CREATE TEMPORARY TABLE test.t2 (x UInt8); -- { serverError 442 }
CREATE TEMPORARY TABLE test.t2_00841 (x UInt8); -- { serverError 442 }

View File

@ -1,18 +1,18 @@
SET enable_optimize_predicate_expression = 1;
DROP TABLE IF EXISTS test1;
DROP TABLE IF EXISTS test2;
DROP TABLE IF EXISTS view;
DROP TABLE IF EXISTS test1_00843;
DROP TABLE IF EXISTS test2_00843;
DROP TABLE IF EXISTS view_00843;
CREATE TABLE test1 (a UInt8) ENGINE = Memory;
INSERT INTO test1 VALUES (1);
CREATE TABLE test1_00843 (a UInt8) ENGINE = Memory;
INSERT INTO test1_00843 VALUES (1);
CREATE VIEW view AS SELECT * FROM test1;
SELECT * FROM view;
RENAME TABLE test1 TO test2;
SELECT * FROM view; -- { serverError 60 }
RENAME TABLE test2 TO test1;
SELECT * FROM view;
CREATE VIEW view_00843 AS SELECT * FROM test1_00843;
SELECT * FROM view_00843;
RENAME TABLE test1_00843 TO test2_00843;
SELECT * FROM view_00843; -- { serverError 60 }
RENAME TABLE test2_00843 TO test1_00843;
SELECT * FROM view_00843;
DROP TABLE test1;
DROP TABLE view;
DROP TABLE test1_00843;
DROP TABLE view_00843;

View File

@ -1,21 +1,21 @@
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP TABLE IF EXISTS t1_00844;
DROP TABLE IF EXISTS t2_00844;
CREATE TABLE IF NOT EXISTS t1 (
CREATE TABLE IF NOT EXISTS t1_00844 (
f1 UInt32,
f2 String
) ENGINE = MergeTree ORDER BY (f1);
CREATE TABLE IF NOT EXISTS t2 (
CREATE TABLE IF NOT EXISTS t2_00844 (
f1 String,
f3 String
) ENGINE = MergeTree ORDER BY (f1);
insert into t1 values(1,'1');
insert into t2 values('1','name1');
insert into t1_00844 values(1,'1');
insert into t2_00844 values('1','name1');
select t1.f1,t2.f3 from t1 all inner join t2 on t1.f2 = t2.f1
where t2.f1 = '1';
select t1_00844.f1,t2_00844.f3 from t1_00844 all inner join t2_00844 on t1_00844.f2 = t2_00844.f1
where t2_00844.f1 = '1';
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t1_00844;
DROP TABLE t2_00844;

View File

@ -1,67 +1,67 @@
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP TABLE IF EXISTS t3;
CREATE TABLE t1 ( id String ) ENGINE = Memory;
CREATE TABLE t2 ( id Nullable(String) ) ENGINE = Memory;
CREATE TABLE t3 ( id Nullable(String), not_id Nullable(String) ) ENGINE = Memory;
DROP TABLE IF EXISTS t1_00848;
DROP TABLE IF EXISTS t2_00848;
DROP TABLE IF EXISTS t3_00848;
CREATE TABLE t1_00848 ( id String ) ENGINE = Memory;
CREATE TABLE t2_00848 ( id Nullable(String) ) ENGINE = Memory;
CREATE TABLE t3_00848 ( id Nullable(String), not_id Nullable(String) ) ENGINE = Memory;
insert into t1 values ('l');
insert into t3 (id) values ('r');
insert into t1_00848 values ('l');
insert into t3_00848 (id) values ('r');
SELECT 'on';
SELECT *, toTypeName(t1.id), toTypeName(t3.id) FROM t1 ANY LEFT JOIN t3 ON t1.id = t3.id;
SELECT *, toTypeName(t1.id), toTypeName(t3.id) FROM t1 ANY FULL JOIN t3 ON t1.id = t3.id;
SELECT *, toTypeName(t2.id), toTypeName(t3.id) FROM t2 ANY FULL JOIN t3 ON t2.id = t3.id;
SELECT *, toTypeName(t1_00848.id), toTypeName(t3_00848.id) FROM t1_00848 ANY LEFT JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT *, toTypeName(t1_00848.id), toTypeName(t3_00848.id) FROM t1_00848 ANY FULL JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT *, toTypeName(t2_00848.id), toTypeName(t3_00848.id) FROM t2_00848 ANY FULL JOIN t3_00848 ON t2_00848.id = t3_00848.id;
SELECT *, toTypeName(t1.id), toTypeName(t3.id) FROM t1 LEFT JOIN t3 ON t1.id = t3.id;
SELECT *, toTypeName(t1.id), toTypeName(t3.id) FROM t1 FULL JOIN t3 ON t1.id = t3.id;
SELECT *, toTypeName(t2.id), toTypeName(t3.id) FROM t2 FULL JOIN t3 ON t2.id = t3.id;
SELECT *, toTypeName(t1_00848.id), toTypeName(t3_00848.id) FROM t1_00848 LEFT JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT *, toTypeName(t1_00848.id), toTypeName(t3_00848.id) FROM t1_00848 FULL JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT *, toTypeName(t2_00848.id), toTypeName(t3_00848.id) FROM t2_00848 FULL JOIN t3_00848 ON t2_00848.id = t3_00848.id;
SELECT t3.id = 'l', t3.not_id = 'l' FROM t1 ANY LEFT JOIN t3 ON t1.id = t3.id;
SELECT t3.id = 'l', t3.not_id = 'l' FROM t1 LEFT JOIN t3 ON t1.id = t3.id;
SELECT t3_00848.id = 'l', t3_00848.not_id = 'l' FROM t1_00848 ANY LEFT JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT t3_00848.id = 'l', t3_00848.not_id = 'l' FROM t1_00848 LEFT JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT 'using';
SELECT *, toTypeName(t1.id), toTypeName(t3.id) FROM t1 ANY LEFT JOIN t3 USING(id);
SELECT *, toTypeName(t1.id), toTypeName(t3.id) FROM t1 ANY FULL JOIN t3 USING(id);
SELECT *, toTypeName(t2.id), toTypeName(t3.id) FROM t2 ANY FULL JOIN t3 USING(id);
SELECT *, toTypeName(t1_00848.id), toTypeName(t3_00848.id) FROM t1_00848 ANY LEFT JOIN t3_00848 USING(id);
SELECT *, toTypeName(t1_00848.id), toTypeName(t3_00848.id) FROM t1_00848 ANY FULL JOIN t3_00848 USING(id);
SELECT *, toTypeName(t2_00848.id), toTypeName(t3_00848.id) FROM t2_00848 ANY FULL JOIN t3_00848 USING(id);
SELECT *, toTypeName(t1.id), toTypeName(t3.id) FROM t1 LEFT JOIN t3 USING(id);
SELECT *, toTypeName(t1.id), toTypeName(t3.id) FROM t1 FULL JOIN t3 USING(id);
SELECT *, toTypeName(t2.id), toTypeName(t3.id) FROM t2 FULL JOIN t3 USING(id);
SELECT *, toTypeName(t1_00848.id), toTypeName(t3_00848.id) FROM t1_00848 LEFT JOIN t3_00848 USING(id);
SELECT *, toTypeName(t1_00848.id), toTypeName(t3_00848.id) FROM t1_00848 FULL JOIN t3_00848 USING(id);
SELECT *, toTypeName(t2_00848.id), toTypeName(t3_00848.id) FROM t2_00848 FULL JOIN t3_00848 USING(id);
SELECT t3.id = 'l', t3.not_id = 'l' FROM t1 ANY LEFT JOIN t3 USING(id);
SELECT t3.id = 'l', t3.not_id = 'l' FROM t1 LEFT JOIN t3 USING(id);
SELECT t3_00848.id = 'l', t3_00848.not_id = 'l' FROM t1_00848 ANY LEFT JOIN t3_00848 USING(id);
SELECT t3_00848.id = 'l', t3_00848.not_id = 'l' FROM t1_00848 LEFT JOIN t3_00848 USING(id);
SET join_use_nulls = 1;
-- TODO: toTypeName(t1.id) String -> Nullable(String)
-- TODO: toTypeName(t1_00848.id) String -> Nullable(String)
SELECT 'on + join_use_nulls';
SELECT *, 'TODO', toTypeName(t3.id) FROM t1 ANY LEFT JOIN t3 ON t1.id = t3.id;
SELECT *, 'TODO', toTypeName(t3.id) FROM t1 ANY FULL JOIN t3 ON t1.id = t3.id;
SELECT *, toTypeName(t2.id), toTypeName(t3.id) FROM t2 ANY FULL JOIN t3 ON t2.id = t3.id;
SELECT *, 'TODO', toTypeName(t3_00848.id) FROM t1_00848 ANY LEFT JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT *, 'TODO', toTypeName(t3_00848.id) FROM t1_00848 ANY FULL JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT *, toTypeName(t2_00848.id), toTypeName(t3_00848.id) FROM t2_00848 ANY FULL JOIN t3_00848 ON t2_00848.id = t3_00848.id;
SELECT *, 'TODO', toTypeName(t3.id) FROM t1 LEFT JOIN t3 ON t1.id = t3.id;
SELECT *, 'TODO', toTypeName(t3.id) FROM t1 FULL JOIN t3 ON t1.id = t3.id;
SELECT *, toTypeName(t2.id), toTypeName(t3.id) FROM t2 FULL JOIN t3 ON t2.id = t3.id;
SELECT *, 'TODO', toTypeName(t3_00848.id) FROM t1_00848 LEFT JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT *, 'TODO', toTypeName(t3_00848.id) FROM t1_00848 FULL JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT *, toTypeName(t2_00848.id), toTypeName(t3_00848.id) FROM t2_00848 FULL JOIN t3_00848 ON t2_00848.id = t3_00848.id;
SELECT t3.id = 'l', t3.not_id = 'l' FROM t1 ANY LEFT JOIN t3 ON t1.id = t3.id;
SELECT t3.id = 'l', t3.not_id = 'l' FROM t1 LEFT JOIN t3 ON t1.id = t3.id;
SELECT t3_00848.id = 'l', t3_00848.not_id = 'l' FROM t1_00848 ANY LEFT JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT t3_00848.id = 'l', t3_00848.not_id = 'l' FROM t1_00848 LEFT JOIN t3_00848 ON t1_00848.id = t3_00848.id;
SELECT 'using + join_use_nulls';
SELECT *, 'TODO', toTypeName(t3.id) FROM t1 ANY LEFT JOIN t3 USING(id);
SELECT *, 'TODO', toTypeName(t3.id) FROM t1 ANY FULL JOIN t3 USING(id);
SELECT *, toTypeName(t2.id), toTypeName(t3.id) FROM t2 ANY FULL JOIN t3 USING(id);
SELECT *, 'TODO', toTypeName(t3_00848.id) FROM t1_00848 ANY LEFT JOIN t3_00848 USING(id);
SELECT *, 'TODO', toTypeName(t3_00848.id) FROM t1_00848 ANY FULL JOIN t3_00848 USING(id);
SELECT *, toTypeName(t2_00848.id), toTypeName(t3_00848.id) FROM t2_00848 ANY FULL JOIN t3_00848 USING(id);
SELECT *, 'TODO', toTypeName(t3.id) FROM t1 LEFT JOIN t3 USING(id);
SELECT *, 'TODO', toTypeName(t3.id) FROM t1 FULL JOIN t3 USING(id);
SELECT *, toTypeName(t2.id), toTypeName(t3.id) FROM t2 FULL JOIN t3 USING(id);
SELECT *, 'TODO', toTypeName(t3_00848.id) FROM t1_00848 LEFT JOIN t3_00848 USING(id);
SELECT *, 'TODO', toTypeName(t3_00848.id) FROM t1_00848 FULL JOIN t3_00848 USING(id);
SELECT *, toTypeName(t2_00848.id), toTypeName(t3_00848.id) FROM t2_00848 FULL JOIN t3_00848 USING(id);
SELECT t3.id = 'l', t3.not_id = 'l' FROM t1 ANY LEFT JOIN t3 USING(id);
SELECT t3.id = 'l', t3.not_id = 'l' FROM t1 LEFT JOIN t3 USING(id);
SELECT t3_00848.id = 'l', t3_00848.not_id = 'l' FROM t1_00848 ANY LEFT JOIN t3_00848 USING(id);
SELECT t3_00848.id = 'l', t3_00848.not_id = 'l' FROM t1_00848 LEFT JOIN t3_00848 USING(id);
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t1_00848;
DROP TABLE t2_00848;

View File

@ -1,17 +1,17 @@
SELECT a\nFROM t1 \nCROSS JOIN \n(\n SELECT *\n FROM t2 \n) AS t2
SELECT a\nFROM t1 \nALL INNER JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 ON a = t2.a\nWHERE a = t2.a
SELECT a\nFROM t1 \nALL INNER JOIN \n(\n SELECT *\n FROM t2 \n) AS t2 ON b = t2.b\nWHERE b = t2.b
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n a AS `--t1.a`, \n b, \n t2.a AS `--t2.a`, \n t2.b\n FROM t1 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 ON `--t1.a` = `--t2.a`\n WHERE `--t1.a` = `--t2.a`\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t3 \n) AS t3 ON `--t1.a` = a\nWHERE (`--t1.a` = `--t2.a`) AND (`--t1.a` = a)
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n a AS `--t1.a`, \n b AS `--t1.b`, \n t2.a, \n t2.b AS `--t2.b`\n FROM t1 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 ON `--t1.b` = `--t2.b`\n WHERE `--t1.b` = `--t2.b`\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t3 \n) AS t3 ON `--t1.b` = b\nWHERE (`--t1.b` = `--t2.b`) AND (`--t1.b` = b)
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n `--t1.a`, \n b, \n `--t2.a`, \n `t2.b`, \n a AS `--t3.a`, \n t3.b\n FROM \n (\n SELECT \n a AS `--t1.a`, \n b, \n t2.a AS `--t2.a`, \n t2.b\n FROM t1 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 ON `--t1.a` = `--t2.a`\n WHERE `--t1.a` = `--t2.a`\n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3 \n ) AS t3 ON `--t1.a` = `--t3.a`\n WHERE (`--t1.a` = `--t3.a`) AND (`--t1.a` = `--t2.a`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4 \n) AS t4 ON `--t1.a` = a\nWHERE (`--t1.a` = `--t2.a`) AND (`--t1.a` = `--t3.a`) AND (`--t1.a` = a)
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n `--t1.a`, \n `--t1.b`, \n `t2.a`, \n `--t2.b`, \n a, \n b AS `--t3.b`\n FROM \n (\n SELECT \n a AS `--t1.a`, \n b AS `--t1.b`, \n t2.a, \n t2.b AS `--t2.b`\n FROM t1 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 ON `--t1.b` = `--t2.b`\n WHERE `--t1.b` = `--t2.b`\n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3 \n ) AS t3 ON `--t1.b` = `--t3.b`\n WHERE (`--t1.b` = `--t3.b`) AND (`--t1.b` = `--t2.b`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4 \n) AS t4 ON `--t1.b` = b\nWHERE (`--t1.b` = `--t2.b`) AND (`--t1.b` = `--t3.b`) AND (`--t1.b` = b)
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n `--t1.a`, \n b, \n `--t2.a`, \n `t2.b`, \n a AS `--t3.a`, \n t3.b\n FROM \n (\n SELECT \n a AS `--t1.a`, \n b, \n t2.a AS `--t2.a`, \n t2.b\n FROM t1 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 ON `--t2.a` = `--t1.a`\n WHERE `--t2.a` = `--t1.a`\n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3 \n ) AS t3 ON `--t2.a` = `--t3.a`\n WHERE (`--t2.a` = `--t3.a`) AND (`--t2.a` = `--t1.a`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4 \n) AS t4 ON `--t2.a` = a\nWHERE (`--t2.a` = `--t1.a`) AND (`--t2.a` = `--t3.a`) AND (`--t2.a` = a)
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n `--t1.a`, \n b, \n `--t2.a`, \n `t2.b`, \n a AS `--t3.a`, \n t3.b\n FROM \n (\n SELECT \n a AS `--t1.a`, \n b, \n t2.a AS `--t2.a`, \n t2.b\n FROM t1 \n CROSS JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 \n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3 \n ) AS t3 ON (`--t3.a` = `--t1.a`) AND (`--t3.a` = `--t2.a`)\n WHERE (`--t3.a` = `--t2.a`) AND (`--t3.a` = `--t1.a`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4 \n) AS t4 ON `--t3.a` = a\nWHERE (`--t3.a` = `--t1.a`) AND (`--t3.a` = `--t2.a`) AND (`--t3.a` = a)
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n `--t1.a`, \n b, \n `--t2.a`, \n `t2.b`, \n a AS `--t3.a`, \n t3.b\n FROM \n (\n SELECT \n a AS `--t1.a`, \n b, \n t2.a AS `--t2.a`, \n t2.b\n FROM t1 \n CROSS JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 \n ) \n CROSS JOIN \n (\n SELECT *\n FROM t3 \n ) AS t3 \n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4 \n) AS t4 ON (a = `--t1.a`) AND (a = `--t2.a`) AND (a = `--t3.a`)\nWHERE (a = `--t1.a`) AND (a = `--t2.a`) AND (a = `--t3.a`)
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n `--t1.a`, \n b, \n `--t2.a`, \n `t2.b`, \n a AS `--t3.a`, \n t3.b\n FROM \n (\n SELECT \n a AS `--t1.a`, \n b, \n t2.a AS `--t2.a`, \n t2.b\n FROM t1 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 ON `--t1.a` = `--t2.a`\n WHERE `--t1.a` = `--t2.a`\n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3 \n ) AS t3 ON `--t2.a` = `--t3.a`\n WHERE (`--t2.a` = `--t3.a`) AND (`--t1.a` = `--t2.a`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4 \n) AS t4 ON `--t3.a` = a\nWHERE (`--t1.a` = `--t2.a`) AND (`--t2.a` = `--t3.a`) AND (`--t3.a` = a)
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n `--t1.a`, \n b, \n `t2.a`, \n `t2.b`, \n a, \n t3.b\n FROM \n (\n SELECT \n a AS `--t1.a`, \n b, \n t2.a, \n t2.b\n FROM t1 \n CROSS JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 \n ) \n CROSS JOIN \n (\n SELECT *\n FROM t3 \n ) AS t3 \n) \nCROSS JOIN \n(\n SELECT *\n FROM t4 \n) AS t4
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n `--t1.a`, \n b, \n `t2.a`, \n `t2.b`, \n a, \n t3.b\n FROM \n (\n SELECT \n a AS `--t1.a`, \n b, \n t2.a, \n t2.b\n FROM t1 \n CROSS JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 \n ) \n CROSS JOIN \n (\n SELECT *\n FROM t3 \n ) AS t3 \n) \nCROSS JOIN \n(\n SELECT *\n FROM t4 \n) AS t4
SELECT `--t1.a` AS `t1.a`\nFROM \n(\n SELECT \n a AS `--t1.a`, \n b, \n t2.a AS `--t2.a`, \n t2.b\n FROM t1 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2 \n ) AS t2 ON `--t1.a` = `--t2.a`\n) \nCROSS JOIN \n(\n SELECT *\n FROM t3 \n) AS t3
SELECT a\nFROM t1_00849 \nCROSS JOIN \n(\n SELECT *\n FROM t2_00849 \n) AS t2_00849
SELECT a\nFROM t1_00849 \nALL INNER JOIN \n(\n SELECT *\n FROM t2_00849 \n) AS t2_00849 ON a = t2_00849.a\nWHERE a = t2_00849.a
SELECT a\nFROM t1_00849 \nALL INNER JOIN \n(\n SELECT *\n FROM t2_00849 \n) AS t2_00849 ON b = t2_00849.b\nWHERE b = t2_00849.b
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a AS `--t2_00849.a`, \n t2_00849.b\n FROM t1_00849 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 ON `--t1_00849.a` = `--t2_00849.a`\n WHERE `--t1_00849.a` = `--t2_00849.a`\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t3_00849 \n) AS t3_00849 ON `--t1_00849.a` = a\nWHERE (`--t1_00849.a` = `--t2_00849.a`) AND (`--t1_00849.a` = a)
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n a AS `--t1_00849.a`, \n b AS `--t1_00849.b`, \n t2_00849.a, \n t2_00849.b AS `--t2_00849.b`\n FROM t1_00849 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 ON `--t1_00849.b` = `--t2_00849.b`\n WHERE `--t1_00849.b` = `--t2_00849.b`\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t3_00849 \n) AS t3_00849 ON `--t1_00849.b` = b\nWHERE (`--t1_00849.b` = `--t2_00849.b`) AND (`--t1_00849.b` = b)
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n `--t1_00849.a`, \n b, \n `--t2_00849.a`, \n `t2_00849.b`, \n a AS `--t3_00849.a`, \n t3_00849.b\n FROM \n (\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a AS `--t2_00849.a`, \n t2_00849.b\n FROM t1_00849 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 ON `--t1_00849.a` = `--t2_00849.a`\n WHERE `--t1_00849.a` = `--t2_00849.a`\n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3_00849 \n ) AS t3_00849 ON `--t1_00849.a` = `--t3_00849.a`\n WHERE (`--t1_00849.a` = `--t3_00849.a`) AND (`--t1_00849.a` = `--t2_00849.a`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4_00849 \n) AS t4_00849 ON `--t1_00849.a` = a\nWHERE (`--t1_00849.a` = `--t2_00849.a`) AND (`--t1_00849.a` = `--t3_00849.a`) AND (`--t1_00849.a` = a)
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n `--t1_00849.a`, \n `--t1_00849.b`, \n `t2_00849.a`, \n `--t2_00849.b`, \n a, \n b AS `--t3_00849.b`\n FROM \n (\n SELECT \n a AS `--t1_00849.a`, \n b AS `--t1_00849.b`, \n t2_00849.a, \n t2_00849.b AS `--t2_00849.b`\n FROM t1_00849 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 ON `--t1_00849.b` = `--t2_00849.b`\n WHERE `--t1_00849.b` = `--t2_00849.b`\n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3_00849 \n ) AS t3_00849 ON `--t1_00849.b` = `--t3_00849.b`\n WHERE (`--t1_00849.b` = `--t3_00849.b`) AND (`--t1_00849.b` = `--t2_00849.b`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4_00849 \n) AS t4_00849 ON `--t1_00849.b` = b\nWHERE (`--t1_00849.b` = `--t2_00849.b`) AND (`--t1_00849.b` = `--t3_00849.b`) AND (`--t1_00849.b` = b)
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n `--t1_00849.a`, \n b, \n `--t2_00849.a`, \n `t2_00849.b`, \n a AS `--t3_00849.a`, \n t3_00849.b\n FROM \n (\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a AS `--t2_00849.a`, \n t2_00849.b\n FROM t1_00849 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 ON `--t2_00849.a` = `--t1_00849.a`\n WHERE `--t2_00849.a` = `--t1_00849.a`\n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3_00849 \n ) AS t3_00849 ON `--t2_00849.a` = `--t3_00849.a`\n WHERE (`--t2_00849.a` = `--t3_00849.a`) AND (`--t2_00849.a` = `--t1_00849.a`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4_00849 \n) AS t4_00849 ON `--t2_00849.a` = a\nWHERE (`--t2_00849.a` = `--t1_00849.a`) AND (`--t2_00849.a` = `--t3_00849.a`) AND (`--t2_00849.a` = a)
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n `--t1_00849.a`, \n b, \n `--t2_00849.a`, \n `t2_00849.b`, \n a AS `--t3_00849.a`, \n t3_00849.b\n FROM \n (\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a AS `--t2_00849.a`, \n t2_00849.b\n FROM t1_00849 \n CROSS JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 \n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3_00849 \n ) AS t3_00849 ON (`--t3_00849.a` = `--t1_00849.a`) AND (`--t3_00849.a` = `--t2_00849.a`)\n WHERE (`--t3_00849.a` = `--t2_00849.a`) AND (`--t3_00849.a` = `--t1_00849.a`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4_00849 \n) AS t4_00849 ON `--t3_00849.a` = a\nWHERE (`--t3_00849.a` = `--t1_00849.a`) AND (`--t3_00849.a` = `--t2_00849.a`) AND (`--t3_00849.a` = a)
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n `--t1_00849.a`, \n b, \n `--t2_00849.a`, \n `t2_00849.b`, \n a AS `--t3_00849.a`, \n t3_00849.b\n FROM \n (\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a AS `--t2_00849.a`, \n t2_00849.b\n FROM t1_00849 \n CROSS JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 \n ) \n CROSS JOIN \n (\n SELECT *\n FROM t3_00849 \n ) AS t3_00849 \n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4_00849 \n) AS t4_00849 ON (a = `--t1_00849.a`) AND (a = `--t2_00849.a`) AND (a = `--t3_00849.a`)\nWHERE (a = `--t1_00849.a`) AND (a = `--t2_00849.a`) AND (a = `--t3_00849.a`)
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n `--t1_00849.a`, \n b, \n `--t2_00849.a`, \n `t2_00849.b`, \n a AS `--t3_00849.a`, \n t3_00849.b\n FROM \n (\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a AS `--t2_00849.a`, \n t2_00849.b\n FROM t1_00849 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 ON `--t1_00849.a` = `--t2_00849.a`\n WHERE `--t1_00849.a` = `--t2_00849.a`\n ) \n ALL INNER JOIN \n (\n SELECT *\n FROM t3_00849 \n ) AS t3_00849 ON `--t2_00849.a` = `--t3_00849.a`\n WHERE (`--t2_00849.a` = `--t3_00849.a`) AND (`--t1_00849.a` = `--t2_00849.a`)\n) \nALL INNER JOIN \n(\n SELECT *\n FROM t4_00849 \n) AS t4_00849 ON `--t3_00849.a` = a\nWHERE (`--t1_00849.a` = `--t2_00849.a`) AND (`--t2_00849.a` = `--t3_00849.a`) AND (`--t3_00849.a` = a)
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n `--t1_00849.a`, \n b, \n `t2_00849.a`, \n `t2_00849.b`, \n a, \n t3_00849.b\n FROM \n (\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a, \n t2_00849.b\n FROM t1_00849 \n CROSS JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 \n ) \n CROSS JOIN \n (\n SELECT *\n FROM t3_00849 \n ) AS t3_00849 \n) \nCROSS JOIN \n(\n SELECT *\n FROM t4_00849 \n) AS t4_00849
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n `--t1_00849.a`, \n b, \n `t2_00849.a`, \n `t2_00849.b`, \n a, \n t3_00849.b\n FROM \n (\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a, \n t2_00849.b\n FROM t1_00849 \n CROSS JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 \n ) \n CROSS JOIN \n (\n SELECT *\n FROM t3_00849 \n ) AS t3_00849 \n) \nCROSS JOIN \n(\n SELECT *\n FROM t4_00849 \n) AS t4_00849
SELECT `--t1_00849.a` AS `t1_00849.a`\nFROM \n(\n SELECT \n a AS `--t1_00849.a`, \n b, \n t2_00849.a AS `--t2_00849.a`, \n t2_00849.b\n FROM t1_00849 \n ALL INNER JOIN \n (\n SELECT *\n FROM t2_00849 \n ) AS t2_00849 ON `--t1_00849.a` = `--t2_00849.a`\n) \nCROSS JOIN \n(\n SELECT *\n FROM t3_00849 \n) AS t3_00849
SELECT * FROM t1, t2
1 1 1 1
1 1 1 \N

View File

@ -1,58 +1,58 @@
SET enable_debug_queries = 1;
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP TABLE IF EXISTS t3;
DROP TABLE IF EXISTS t4;
DROP TABLE IF EXISTS t1_00849;
DROP TABLE IF EXISTS t2_00849;
DROP TABLE IF EXISTS t3_00849;
DROP TABLE IF EXISTS t4_00849;
CREATE TABLE t1 (a UInt32, b Nullable(Int32)) ENGINE = Memory;
CREATE TABLE t2 (a UInt32, b Nullable(Int32)) ENGINE = Memory;
CREATE TABLE t3 (a UInt32, b Nullable(Int32)) ENGINE = Memory;
CREATE TABLE t4 (a UInt32, b Nullable(Int32)) ENGINE = Memory;
CREATE TABLE t1_00849 (a UInt32, b Nullable(Int32)) ENGINE = Memory;
CREATE TABLE t2_00849 (a UInt32, b Nullable(Int32)) ENGINE = Memory;
CREATE TABLE t3_00849 (a UInt32, b Nullable(Int32)) ENGINE = Memory;
CREATE TABLE t4_00849 (a UInt32, b Nullable(Int32)) ENGINE = Memory;
ANALYZE SELECT t1.a FROM t1, t2;
ANALYZE SELECT t1.a FROM t1, t2 WHERE t1.a = t2.a;
ANALYZE SELECT t1.a FROM t1, t2 WHERE t1.b = t2.b;
ANALYZE SELECT t1.a FROM t1, t2, t3 WHERE t1.a = t2.a AND t1.a = t3.a;
ANALYZE SELECT t1.a FROM t1, t2, t3 WHERE t1.b = t2.b AND t1.b = t3.b;
ANALYZE SELECT t1.a FROM t1, t2, t3, t4 WHERE t1.a = t2.a AND t1.a = t3.a AND t1.a = t4.a;
ANALYZE SELECT t1.a FROM t1, t2, t3, t4 WHERE t1.b = t2.b AND t1.b = t3.b AND t1.b = t4.b;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849 WHERE t1_00849.a = t2_00849.a;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849 WHERE t1_00849.b = t2_00849.b;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849 WHERE t1_00849.a = t2_00849.a AND t1_00849.a = t3_00849.a;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849 WHERE t1_00849.b = t2_00849.b AND t1_00849.b = t3_00849.b;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t1_00849.a = t2_00849.a AND t1_00849.a = t3_00849.a AND t1_00849.a = t4_00849.a;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t1_00849.b = t2_00849.b AND t1_00849.b = t3_00849.b AND t1_00849.b = t4_00849.b;
ANALYZE SELECT t1.a FROM t1, t2, t3, t4 WHERE t2.a = t1.a AND t2.a = t3.a AND t2.a = t4.a;
ANALYZE SELECT t1.a FROM t1, t2, t3, t4 WHERE t3.a = t1.a AND t3.a = t2.a AND t3.a = t4.a;
ANALYZE SELECT t1.a FROM t1, t2, t3, t4 WHERE t4.a = t1.a AND t4.a = t2.a AND t4.a = t3.a;
ANALYZE SELECT t1.a FROM t1, t2, t3, t4 WHERE t1.a = t2.a AND t2.a = t3.a AND t3.a = t4.a;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t2_00849.a = t1_00849.a AND t2_00849.a = t3_00849.a AND t2_00849.a = t4_00849.a;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t3_00849.a = t1_00849.a AND t3_00849.a = t2_00849.a AND t3_00849.a = t4_00849.a;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t4_00849.a = t1_00849.a AND t4_00849.a = t2_00849.a AND t4_00849.a = t3_00849.a;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t1_00849.a = t2_00849.a AND t2_00849.a = t3_00849.a AND t3_00849.a = t4_00849.a;
ANALYZE SELECT t1.a FROM t1, t2, t3, t4;
ANALYZE SELECT t1.a FROM t1 CROSS JOIN t2 CROSS JOIN t3 CROSS JOIN t4;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849, t3_00849, t4_00849;
ANALYZE SELECT t1_00849.a FROM t1_00849 CROSS JOIN t2_00849 CROSS JOIN t3_00849 CROSS JOIN t4_00849;
ANALYZE SELECT t1.a FROM t1, t2 CROSS JOIN t3; -- { serverError 48 }
ANALYZE SELECT t1.a FROM t1 JOIN t2 USING a CROSS JOIN t3; -- { serverError 48 }
ANALYZE SELECT t1.a FROM t1 JOIN t2 ON t1.a = t2.a CROSS JOIN t3;
ANALYZE SELECT t1_00849.a FROM t1_00849, t2_00849 CROSS JOIN t3_00849; -- { serverError 48 }
ANALYZE SELECT t1_00849.a FROM t1_00849 JOIN t2_00849 USING a CROSS JOIN t3_00849; -- { serverError 48 }
ANALYZE SELECT t1_00849.a FROM t1_00849 JOIN t2_00849 ON t1_00849.a = t2_00849.a CROSS JOIN t3_00849;
INSERT INTO t1 values (1,1), (2,2), (3,3), (4,4);
INSERT INTO t2 values (1,1), (1, Null);
INSERT INTO t3 values (1,1), (1, Null);
INSERT INTO t4 values (1,1), (1, Null);
INSERT INTO t1_00849 values (1,1), (2,2), (3,3), (4,4);
INSERT INTO t2_00849 values (1,1), (1, Null);
INSERT INTO t3_00849 values (1,1), (1, Null);
INSERT INTO t4_00849 values (1,1), (1, Null);
SELECT 'SELECT * FROM t1, t2';
SELECT * FROM t1, t2;
SELECT * FROM t1_00849, t2_00849;
SELECT 'SELECT * FROM t1, t2 WHERE t1.a = t2.a';
SELECT * FROM t1, t2 WHERE t1.a = t2.a;
SELECT * FROM t1_00849, t2_00849 WHERE t1_00849.a = t2_00849.a;
SELECT 'SELECT t1.a, t2.a FROM t1, t2 WHERE t1.b = t2.b';
SELECT t1.a, t2.b FROM t1, t2 WHERE t1.b = t2.b;
SELECT t1_00849.a, t2_00849.b FROM t1_00849, t2_00849 WHERE t1_00849.b = t2_00849.b;
SELECT 'SELECT t1.a, t2.b, t3.b FROM t1, t2, t3 WHERE t1.a = t2.a AND t1.a = t3.a';
SELECT t1.a, t2.b, t3.b FROM t1, t2, t3 WHERE t1.a = t2.a AND t1.a = t3.a;
SELECT t1_00849.a, t2_00849.b, t3_00849.b FROM t1_00849, t2_00849, t3_00849 WHERE t1_00849.a = t2_00849.a AND t1_00849.a = t3_00849.a;
SELECT 'SELECT t1.a, t2.b, t3.b FROM t1, t2, t3 WHERE t1.b = t2.b AND t1.b = t3.b';
SELECT t1.a, t2.b, t3.b FROM t1, t2, t3 WHERE t1.b = t2.b AND t1.b = t3.b;
SELECT t1_00849.a, t2_00849.b, t3_00849.b FROM t1_00849, t2_00849, t3_00849 WHERE t1_00849.b = t2_00849.b AND t1_00849.b = t3_00849.b;
SELECT 'SELECT t1.a, t2.b, t3.b, t4.b FROM t1, t2, t3, t4 WHERE t1.a = t2.a AND t1.a = t3.a AND t1.a = t4.a';
SELECT t1.a, t2.b, t3.b, t4.b FROM t1, t2, t3, t4 WHERE t1.a = t2.a AND t1.a = t3.a AND t1.a = t4.a;
SELECT t1_00849.a, t2_00849.b, t3_00849.b, t4_00849.b FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t1_00849.a = t2_00849.a AND t1_00849.a = t3_00849.a AND t1_00849.a = t4_00849.a;
SELECT 'SELECT t1.a, t2.b, t3.b, t4.b FROM t1, t2, t3, t4 WHERE t1.b = t2.b AND t1.b = t3.b AND t1.b = t4.b';
SELECT t1.a, t2.b, t3.b, t4.b FROM t1, t2, t3, t4 WHERE t1.b = t2.b AND t1.b = t3.b AND t1.b = t4.b;
SELECT t1_00849.a, t2_00849.b, t3_00849.b, t4_00849.b FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t1_00849.b = t2_00849.b AND t1_00849.b = t3_00849.b AND t1_00849.b = t4_00849.b;
SELECT 'SELECT t1.a, t2.b, t3.b, t4.b FROM t1, t2, t3, t4 WHERE t1.a = t2.a AND t2.a = t3.a AND t3.a = t4.a';
SELECT t1.a, t2.b, t3.b, t4.b FROM t1, t2, t3, t4 WHERE t1.a = t2.a AND t2.a = t3.a AND t3.a = t4.a;
SELECT t1_00849.a, t2_00849.b, t3_00849.b, t4_00849.b FROM t1_00849, t2_00849, t3_00849, t4_00849 WHERE t1_00849.a = t2_00849.a AND t2_00849.a = t3_00849.a AND t3_00849.a = t4_00849.a;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
DROP TABLE t4;
DROP TABLE t1_00849;
DROP TABLE t2_00849;
DROP TABLE t3_00849;
DROP TABLE t4_00849;

View File

@ -1,36 +1,35 @@
USE test;
DROP TABLE IF EXISTS t_local;
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP TABLE IF EXISTS t1_00850;
DROP TABLE IF EXISTS t2_00850;
CREATE TABLE t_local (dummy UInt8) ENGINE = Memory;
CREATE TABLE t1 (dummy UInt8) ENGINE = Distributed(test_shard_localhost, 'test', 't_local');
CREATE TABLE t2 (dummy UInt8) ENGINE = Distributed(test_shard_localhost, 'test', 't_local');
CREATE TABLE t1_00850 (dummy UInt8) ENGINE = Distributed(test_shard_localhost, currentDatabase(), 't_local');
CREATE TABLE t2_00850 (dummy UInt8) ENGINE = Distributed(test_shard_localhost, currentDatabase(), 't_local');
INSERT INTO t_local VALUES (1);
SET asterisk_left_columns_only = 1;
SELECT * FROM t1
SELECT * FROM t1_00850
GLOBAL INNER JOIN
(
SELECT *
FROM ( SELECT * FROM t2 )
INNER JOIN ( SELECT * FROM t1 )
FROM ( SELECT * FROM t2_00850 )
INNER JOIN ( SELECT * FROM t1_00850 )
USING dummy
) USING dummy;
DROP TABLE t_local;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t1_00850;
DROP TABLE t2_00850;
SELECT * FROM remote('127.0.0.2', system.one)
GLOBAL INNER JOIN
(
SELECT *
FROM ( SELECT dummy FROM remote('127.0.0.2', system.one) ) t1
GLOBAL INNER JOIN ( SELECT dummy FROM remote('127.0.0.3', system.one) ) t2
FROM ( SELECT dummy FROM remote('127.0.0.2', system.one) ) t1_00850
GLOBAL INNER JOIN ( SELECT dummy FROM remote('127.0.0.3', system.one) ) t2_00850
USING dummy
) USING dummy;
@ -41,17 +40,17 @@ SELECT * FROM remote('127.0.0.2', system.one)
GLOBAL INNER JOIN
(
SELECT *, dummy
FROM ( SELECT dummy FROM remote('127.0.0.2', system.one) ) t1
GLOBAL INNER JOIN ( SELECT dummy FROM remote('127.0.0.3', system.one) ) t2
FROM ( SELECT dummy FROM remote('127.0.0.2', system.one) ) t1_00850
GLOBAL INNER JOIN ( SELECT dummy FROM remote('127.0.0.3', system.one) ) t2_00850
USING dummy
) USING dummy;
SELECT * FROM remote('127.0.0.2', system.one)
GLOBAL INNER JOIN
(
SELECT *, t1.*, t2.*
FROM ( SELECT toUInt8(0) AS dummy ) t1
INNER JOIN ( SELECT toUInt8(0) AS dummy ) t2
SELECT *, t1_00850.*, t2_00850.*
FROM ( SELECT toUInt8(0) AS dummy ) t1_00850
INNER JOIN ( SELECT toUInt8(0) AS dummy ) t2_00850
USING dummy
) USING dummy;
@ -59,8 +58,8 @@ SELECT * FROM remote('127.0.0.2', system.one)
GLOBAL INNER JOIN
(
SELECT *, dummy
FROM ( SELECT toUInt8(0) AS dummy ) t1
INNER JOIN ( SELECT toUInt8(0) AS dummy ) t2
FROM ( SELECT toUInt8(0) AS dummy ) t1_00850
INNER JOIN ( SELECT toUInt8(0) AS dummy ) t2_00850
USING dummy
) USING dummy;
@ -68,8 +67,8 @@ SELECT * FROM remote('127.0.0.2', system.one)
GLOBAL INNER JOIN
(
SELECT *, dummy as other
FROM ( SELECT dummy FROM remote('127.0.0.3', system.one) ) t1
GLOBAL INNER JOIN ( SELECT toUInt8(0) AS dummy ) t2
FROM ( SELECT dummy FROM remote('127.0.0.3', system.one) ) t1_00850
GLOBAL INNER JOIN ( SELECT toUInt8(0) AS dummy ) t2_00850
USING dummy
) USING dummy;
@ -77,7 +76,7 @@ SELECT * FROM remote('127.0.0.2', system.one)
GLOBAL INNER JOIN
(
SELECT *, dummy, dummy as other
FROM ( SELECT toUInt8(0) AS dummy ) t1
GLOBAL INNER JOIN ( SELECT dummy FROM remote('127.0.0.3', system.one) ) t2
FROM ( SELECT toUInt8(0) AS dummy ) t1_00850
GLOBAL INNER JOIN ( SELECT dummy FROM remote('127.0.0.3', system.one) ) t2_00850
USING dummy
) USING dummy;

View File

@ -1,11 +1,11 @@
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
CREATE TABLE t1 (n Int32) ENGINE = Memory;
CREATE TABLE t2 (a Int32, n Int32) ENGINE = Memory;
DROP TABLE IF EXISTS t1_00856;
DROP TABLE IF EXISTS t2_00856;
CREATE TABLE t1_00856 (n Int32) ENGINE = Memory;
CREATE TABLE t2_00856 (a Int32, n Int32) ENGINE = Memory;
SELECT count() FROM t1 WHERE if(1, 1, n = 0);
SELECT count(n) FROM t2 WHERE if(1, 1, n = 0);
SELECT count() FROM t2 WHERE if(1, 1, n = 0);
SELECT count() FROM t1_00856 WHERE if(1, 1, n = 0);
SELECT count(n) FROM t2_00856 WHERE if(1, 1, n = 0);
SELECT count() FROM t2_00856 WHERE if(1, 1, n = 0);
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t1_00856;
DROP TABLE t2_00856;

View File

@ -1,27 +1,26 @@
set distributed_product_mode = 'local';
use test;
drop table if exists shard1;
drop table if exists shard2;
drop table if exists distr1;
drop table if exists distr2;
create table test.shard1 (id Int32) engine = MergeTree order by cityHash64(id);
create table test.shard2 (id Int32) engine = MergeTree order by cityHash64(id);
create table shard1 (id Int32) engine = MergeTree order by cityHash64(id);
create table shard2 (id Int32) engine = MergeTree order by cityHash64(id);
create table test.distr1 as shard1 engine Distributed (test_cluster_two_shards_localhost, test, shard1, cityHash64(id));
create table test.distr2 as shard2 engine Distributed (test_cluster_two_shards_localhost, test, shard2, cityHash64(id));
create table distr1 as shard1 engine Distributed (test_cluster_two_shards_localhost, currentDatabase(), shard1, cityHash64(id));
create table distr2 as shard2 engine Distributed (test_cluster_two_shards_localhost, currentDatabase(), shard2, cityHash64(id));
insert into shard1 (id) values (0), (1);
insert into shard2 (id) values (1), (2);
select distinct(test.distr1.id) from test.distr1
where test.distr1.id in
select distinct(distr1.id) from distr1
where distr1.id in
(
select test.distr1.id
from test.distr1
join test.distr2 on test.distr1.id = test.distr2.id
where test.distr1.id > 0
select distr1.id
from distr1
join distr2 on distr1.id = distr2.id
where distr1.id > 0
); -- { serverError 288 }
select distinct(d0.id) from distr1 d0
@ -34,13 +33,13 @@ where d0.id in
);
-- TODO
--select distinct(test.distr1.id) from test.distr1
--where test.distr1.id in
--select distinct(distr1.id) from distr1
--where distr1.id in
--(
-- select test.distr1.id
-- from test.distr1 as d1
-- join test.distr2 as d2 on test.distr1.id = test.distr2.id
-- where test.distr1.id > 0
-- select distr1.id
-- from distr1 as d1
-- join distr2 as d2 on distr1.id = distr2.id
-- where distr1.id > 0
--);
drop table shard1;

View File

@ -1,5 +1,3 @@
use test;
drop table if exists fooL;
drop table if exists fooR;
create table fooL (a Int32, v String) engine = Memory;

View File

@ -1,17 +1,17 @@
DROP TABLE IF EXISTS test;
CREATE TABLE test (key UInt64, d32 Decimal32(2), d64 Decimal64(2), d128 Decimal128(2)) ENGINE = Memory;
DROP TABLE IF EXISTS test_00861;
CREATE TABLE test_00861 (key UInt64, d32 Decimal32(2), d64 Decimal64(2), d128 Decimal128(2)) ENGINE = Memory;
INSERT INTO test FORMAT CSV "1","1","1","1"
INSERT INTO test_00861 FORMAT CSV "1","1","1","1"
;
INSERT INTO test FORMAT CSV "2","-1","-1","-1"
INSERT INTO test_00861 FORMAT CSV "2","-1","-1","-1"
;
INSERT INTO test FORMAT CSV "3","1.0","1.0","1.0"
INSERT INTO test_00861 FORMAT CSV "3","1.0","1.0","1.0"
;
INSERT INTO test FORMAT CSV "4","-0.1","-0.1","-0.1"
INSERT INTO test_00861 FORMAT CSV "4","-0.1","-0.1","-0.1"
;
INSERT INTO test FORMAT CSV "5","0.010","0.010","0.010"
INSERT INTO test_00861 FORMAT CSV "5","0.010","0.010","0.010"
;
SELECT * FROM test ORDER BY key;
SELECT * FROM test_00861 ORDER BY key;
DROP TABLE test;
DROP TABLE test_00861;

View File

@ -1,21 +1,21 @@
drop table if exists test1;
drop table if exists test2;
drop table if exists test3;
drop table if exists test1_00863;
drop table if exists test2_00863;
drop table if exists test3_00863;
create table test1 (id UInt64, code String) engine = Memory;
create table test3 (id UInt64, code String) engine = Memory;
create table test2 (id UInt64, code String, test1_id UInt64, test3_id UInt64) engine = Memory;
create table test1_00863 (id UInt64, code String) engine = Memory;
create table test3_00863 (id UInt64, code String) engine = Memory;
create table test2_00863 (id UInt64, code String, test1_id UInt64, test3_id UInt64) engine = Memory;
insert into test1 (id, code) select number, toString(number) FROM numbers(100000);
insert into test3 (id, code) select number, toString(number) FROM numbers(100000);
insert into test2 (id, code, test1_id, test3_id) select number, toString(number), number, number FROM numbers(100000);
insert into test1_00863 (id, code) select number, toString(number) FROM numbers(100000);
insert into test3_00863 (id, code) select number, toString(number) FROM numbers(100000);
insert into test2_00863 (id, code, test1_id, test3_id) select number, toString(number), number, number FROM numbers(100000);
select test2.id
from test1, test2, test3
where test1.code in ('1', '2', '3')
and test2.test1_id = test1.id
and test2.test3_id = test3.id;
select test2_00863.id
from test1_00863, test2_00863, test3_00863
where test1_00863.code in ('1', '2', '3')
and test2_00863.test1_id = test1_00863.id
and test2_00863.test3_id = test3_00863.id;
drop table test1;
drop table test2;
drop table test3;
drop table test1_00863;
drop table test2_00863;
drop table test3_00863;

View File

@ -1,4 +1,5 @@
use default;
-- Must use `test` database and this tables - they configured in dbms/tests/*_dictionary.xml
use test;
drop table if exists ints;
drop table if exists strings;
drop table if exists decimals;

View File

@ -45,8 +45,8 @@ export CLICKHOUSE_PORT_TCP_SECURE=${CLICKHOUSE_PORT_TCP_SECURE:=9440}
export CLICKHOUSE_PORT_HTTPS=${CLICKHOUSE_PORT_HTTPS:=8443}
if [ "${TEST_CONNECT}" ]; then
sed -i 's/ssl_conf = ssl_sect/#ssl_conf = ssl_sect/g' /etc/ssl/openssl.cnf
cat /etc/ssl/openssl.cnf
sed -i 's/ssl_conf = ssl_sect/#ssl_conf = ssl_sect/g' /etc/ssl/openssl.cnf ||:
[ "${TEST_PORT_RANDOM}" ] && echo "<yandex><http_port>${CLICKHOUSE_PORT_HTTP}</http_port><tcp_port>${CLICKHOUSE_PORT_TCP}</tcp_port><interserver_http_port>${CLICKHOUSE_PORT_INTERSERVER}</interserver_http_port></yandex>" > /etc/clickhouse-server/config.d/port.xml
if [ "${TEST_SSL}" ]; then

View File

@ -7,7 +7,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>decimals</table>
</clickhouse>
</source>
@ -45,7 +45,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>decimals</table>
</clickhouse>
</source>
@ -83,7 +83,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>decimals</table>
</clickhouse>
</source>
@ -121,7 +121,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>decimals</table>
</clickhouse>
</source>
@ -162,7 +162,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>decimals</table>
</clickhouse>
</source>

View File

@ -7,7 +7,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>ints</table>
</clickhouse>
</source>
@ -70,7 +70,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>ints</table>
</clickhouse>
</source>
@ -133,7 +133,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>ints</table>
</clickhouse>
</source>
@ -196,7 +196,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>ints</table>
</clickhouse>
</source>
@ -262,7 +262,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>ints</table>
</clickhouse>
</source>

View File

@ -7,7 +7,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>strings</table>
</clickhouse>
</source>
@ -35,7 +35,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>strings</table>
</clickhouse>
</source>
@ -63,7 +63,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>strings</table>
</clickhouse>
</source>
@ -91,7 +91,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>strings</table>
</clickhouse>
</source>
@ -122,7 +122,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>strings</table>
</clickhouse>
</source>
@ -153,7 +153,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>strings</table>
</clickhouse>
</source>
@ -184,7 +184,7 @@
<port>9000</port>
<user>default</user>
<password></password>
<db></db>
<db>test</db>
<table>strings</table>
</clickhouse>
</source>