diff --git a/.gitmodules b/.gitmodules
index 29b2ada63ea..4a5b21ce30a 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -148,3 +148,6 @@
path = contrib/avro
url = https://github.com/ClickHouse-Extras/avro.git
ignore = untracked
+[submodule "website/images/feathericons"]
+ path = website/images/feathericons
+ url = https://github.com/feathericons/feather
diff --git a/README.md b/README.md
index 22bba89e371..9697f88fe2e 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ ClickHouse is an open-source column-oriented database management system that all
* [Contacts](https://clickhouse.tech/#contacts) can help to get your questions answered if there are any.
* You can also [fill this form](https://forms.yandex.com/surveys/meet-yandex-clickhouse-team/) to meet Yandex ClickHouse team in person.
-## Upcoming Events
+## Upcoming Events
* [ClickHouse Workshop in Novosibirsk](https://2020.codefest.ru/lecture/1628) on March 28, 2020.
* [Talks on Saint HighLoad++ in St. Petersburg](https://www.highload.ru/spb/2020/abstracts/6647) on April 6, 2020.
diff --git a/dbms/tests/performance/arithmetic.xml b/dbms/tests/performance/arithmetic.xml
index 3af85a260f3..a2e7c654fc8 100644
--- a/dbms/tests/performance/arithmetic.xml
+++ b/dbms/tests/performance/arithmetic.xml
@@ -10,6 +10,10 @@
+
+ 30000000000
+
+
arg
@@ -34,45 +38,30 @@
multiplydivideintDivOrZero
- modulomoduloOrZero
-CREATE TABLE nums
-(
- u8 UInt8,
- u16 UInt16,
- u32 UInt32,
- u64 UInt64,
- i8 Int8,
- i16 Int16,
- i32 Int32,
- i64 Int64,
- f32 Float32,
- f64 Float64
-) ENGINE = Memory;
+ CREATE TABLE nums ENGINE Memory AS
+ WITH number as x
+ SELECT
+ toUInt8(x) u8,
+ toUInt16(x) u16,
+ toUInt32(x) u32,
+ toUInt64(x) u64,
+ toInt8(x) i8,
+ toInt16(x) i16,
+ toInt32(x) i32,
+ toInt64(x) i64,
+ toFloat32(x) f32,
+ toFloat64(x) f64
+ FROM numbers_mt(200000000)
+ SETTINGS max_threads = 4
+ ;
-
-INSERT INTO nums
-WITH cityHash64(number) AS x
-SELECT
- toUInt8(x),
- toUInt16(x),
- toUInt32(x),
- toUInt64(x),
- toInt8(x),
- toInt16(x),
- toInt32(x),
- toInt64(x),
- toFloat32(x),
- toFloat64(x)
-FROM numbers(100000000);
-
-
SELECT count() FROM nums WHERE NOT ignore({op}({arg}, {arg}))DROP TABLE nums
diff --git a/dbms/tests/performance/group_array_moving_sum.xml b/dbms/tests/performance/group_array_moving_sum.xml
index 6da1752e1f6..76b6b5bb980 100644
--- a/dbms/tests/performance/group_array_moving_sum.xml
+++ b/dbms/tests/performance/group_array_moving_sum.xml
@@ -1,6 +1,4 @@
-
-
30000
@@ -10,27 +8,33 @@
+
+ 30000000000
+
- CREATE TABLE moving_sum_100m(k UInt64, v UInt64) ENGINE = MergeTree ORDER BY k
- CREATE TABLE moving_sum_1000m(k UInt64, v UInt64) ENGINE = MergeTree ORDER BY k
+
+
+ millions
+
+ 50
+ 100
+
+
+
+ window
+
+ 10
+ 1000
+ 10000
+
+
+
- INSERT INTO moving_sum_100m SELECT number%100, rand() from numbers(100000000)
- INSERT INTO moving_sum_1000m SELECT number%100, rand() from numbers(1000000000)
+ create table moving_sum_{millions}m engine MergeTree order by k as select number % 100 k, rand() v from numbers_mt(1000000 * {millions})
+ optimize table moving_sum_{millions}m final
- SELECT k,groupArrayMovingSum(10)(v) FROM moving_sum_100m GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(10)(v) FROM moving_sum_100m WHERE k in (49, 50, 51) GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(1000)(v) FROM moving_sum_100m GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(1000)(v) FROM moving_sum_100m WHERE k in (49, 50, 51) GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(10000)(v) FROM moving_sum_100m GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(10000)(v) FROM moving_sum_100m WHERE k in (49, 50, 51) GROUP BY k FORMAT Null
+ select k, groupArrayMovingSum({window})(v) from moving_sum_{millions}m group by k format Null
+ select k % 10 kk, groupArrayMovingSum({window})(v) from moving_sum_{millions}m group by kk format Null
- SELECT k,groupArrayMovingSum(10)(v) FROM moving_sum_1000m GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(10)(v) FROM moving_sum_1000m WHERE k in (49, 50, 51) GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(1000)(v) FROM moving_sum_1000m GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(1000)(v) FROM moving_sum_1000m WHERE k in (49, 50, 51) GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(10000)(v) FROM moving_sum_1000m GROUP BY k FORMAT Null
- SELECT k,groupArrayMovingSum(10000)(v) FROM moving_sum_1000m WHERE k in (49, 50, 51) GROUP BY k FORMAT Null
-
- DROP TABLE IF EXISTS moving_sum_1000m
- DROP TABLE IF EXISTS moving_sum_100m
+ drop table if exists moving_sum_{millions}m
diff --git a/dbms/tests/performance/insert_values_with_expressions.xml b/dbms/tests/performance/insert_values_with_expressions.xml
index 4464066c16e..0b753e68d89 100644
--- a/dbms/tests/performance/insert_values_with_expressions.xml
+++ b/dbms/tests/performance/insert_values_with_expressions.xml
@@ -22,6 +22,11 @@
+
+ file('test_all_expr_matches.values', Values, 'd DateTime, i UInt32, s String, ni Nullable(UInt64), ns Nullable(String), ars Array(String)')
+ file('test_some_expr_matches.values', Values, 'i Int64, ari Array(Int64), ars Array(String)')
+
+
select * from file('test_all_expr_matches.values', Values, 'd DateTime, i UInt32, s String, ni Nullable(UInt64), ns Nullable(String), ars Array(String)')select * from file('test_some_expr_matches.values', Values, 'i Int64, ari Array(Int64), ars Array(String)')
diff --git a/dbms/tests/performance/joins_in_memory.xml b/dbms/tests/performance/joins_in_memory.xml
index 31e75984003..67c86f49ff2 100644
--- a/dbms/tests/performance/joins_in_memory.xml
+++ b/dbms/tests/performance/joins_in_memory.xml
@@ -9,11 +9,11 @@
CREATE TABLE ints (i64 Int64, i32 Int32, i16 Int16, i8 Int8) ENGINE = Memory
- INSERT INTO ints SELECT number AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(50000)
- INSERT INTO ints SELECT 10000 + number % 1000 AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(50000)
- INSERT INTO ints SELECT 20000 + number % 100 AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(50000)
- INSERT INTO ints SELECT 30000 + number % 10 AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(50000)
- INSERT INTO ints SELECT 40000 + number % 1 AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(50000)
+ INSERT INTO ints SELECT number AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(10000)
+ INSERT INTO ints SELECT 10000 + number % 1000 AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(10000)
+ INSERT INTO ints SELECT 20000 + number % 100 AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(10000)
+ INSERT INTO ints SELECT 30000 + number % 10 AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(10000)
+ INSERT INTO ints SELECT 40000 + number % 1 AS i64, i64 AS i32, i64 AS i16, i64 AS i8 FROM numbers(10000)SELECT COUNT() FROM ints l ANY LEFT JOIN ints r USING i64 WHERE i32 = 200042SELECT COUNT() FROM ints l ANY LEFT JOIN ints r USING i64,i32,i16,i8 WHERE i32 = 200042
@@ -40,8 +40,8 @@
SELECT COUNT() FROM ints l FULL JOIN ints r ON l.i64 = r.i64 WHERE i32 = 200042SELECT COUNT() FROM ints l FULL JOIN ints r USING i64 WHERE i32 IN(42, 100042, 200042, 300042, 400042)
- SELECT COUNT() FROM ints l CROSS JOIN (SELECT number as i64 FROM numbers(4)) WHERE i32 = 42
- SELECT COUNT() FROM ints l CROSS JOIN (SELECT number as i64 FROM numbers(4)) WHERE i32 = 42
+ SELECT COUNT() FROM ints l CROSS JOIN (SELECT number as i64 FROM numbers(4)) r WHERE i32 = 42
+ SELECT COUNT() FROM ints l CROSS JOIN (SELECT number as i64 FROM numbers(4)) r WHERE i32 = 42DROP TABLE IF EXISTS ints
diff --git a/dbms/tests/performance/parallel_insert.xml b/dbms/tests/performance/parallel_insert.xml
index 6da1a2cc020..7af2a1418d9 100644
--- a/dbms/tests/performance/parallel_insert.xml
+++ b/dbms/tests/performance/parallel_insert.xml
@@ -1,23 +1,38 @@
-
2
-
-
-
-
default.hits_10m_single
- CREATE TABLE hits2 AS hits_10m_single
- set max_insert_threads=8
+
+ CREATE TABLE hits2 ENGINE MergeTree
+ PARTITION BY toYYYYMM(EventDate)
+ ORDER BY (CounterID, EventDate, intHash32(UserID))
+ SAMPLE BY intHash32(UserID)
+ SETTINGS
+ parts_to_delay_insert = 5000,
+ parts_to_throw_insert = 5000
+ AS
+ -- don't select all columns to keep the run time down
+ SELECT CounterID, EventDate, UserID, Title
+ FROM hits_10m_single
+ -- do not select anything because we only need column types
+ LIMIT 0
+
+ SET max_insert_threads=8
+ SYSTEM STOP MERGES
- INSERT INTO hits2 SELECT * FROM hits_10m_single
+
+ INSERT INTO hits2
+ SELECT CounterID, EventDate, UserID, Title
+ FROM hits_10m_single
+
+ SYSTEM START MERGESDROP TABLE IF EXISTS hits2
diff --git a/dbms/tests/performance/synthetic_hardware_benchmark.xml b/dbms/tests/performance/synthetic_hardware_benchmark.xml
index 82cd4f553d4..22cb79dcc2b 100644
--- a/dbms/tests/performance/synthetic_hardware_benchmark.xml
+++ b/dbms/tests/performance/synthetic_hardware_benchmark.xml
@@ -6,6 +6,10 @@
+
+ 30000000000
+
+
-
-
-
-