mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-27 01:51:59 +00:00
Merge branch 'master' into harmful
This commit is contained in:
commit
4eb0ca0655
@ -127,6 +127,12 @@ std::pair<size_t, size_t> CollectJoinOnKeysMatcher::getTableNumbers(const ASTPtr
|
||||
getIdentifiers(left_ast, left_identifiers);
|
||||
getIdentifiers(right_ast, right_identifiers);
|
||||
|
||||
if (left_identifiers.empty() || right_identifiers.empty())
|
||||
{
|
||||
throw Exception("Not equi-join ON expression: " + queryToString(expr) + ". No columns in one of equality side.",
|
||||
ErrorCodes::INVALID_JOIN_ON_EXPRESSION);
|
||||
}
|
||||
|
||||
size_t left_idents_table = getTableForIdentifiers(left_identifiers, data);
|
||||
size_t right_idents_table = getTableForIdentifiers(right_identifiers, data);
|
||||
|
||||
|
@ -106,7 +106,7 @@ def get_node(query_node, table='dist', *args, **kwargs):
|
||||
LIMIT 1
|
||||
) a
|
||||
JOIN system.clusters c
|
||||
ON a._shard_num = c.shard_num AND cluster = 'shards_cluster'
|
||||
ON a._shard_num = c.shard_num WHERE cluster = 'shards_cluster'
|
||||
""".format(query_id=query_id))
|
||||
return rows.strip()
|
||||
|
||||
|
@ -23,8 +23,6 @@ join_use_nulls = 1
|
||||
-
|
||||
\N \N
|
||||
-
|
||||
1 1 \N \N
|
||||
2 2 \N \N
|
||||
-
|
||||
1 1 1 1
|
||||
2 2 \N \N
|
||||
@ -51,8 +49,6 @@ join_use_nulls = 0
|
||||
-
|
||||
-
|
||||
-
|
||||
1 1 0 0
|
||||
2 2 0 0
|
||||
-
|
||||
1 1 1 1
|
||||
2 2 0 0
|
||||
|
@ -30,11 +30,11 @@ select * from t left outer join s on (t.a=s.a and t.b=s.b) where s.a is null;
|
||||
select '-';
|
||||
select s.* from t left outer join s on (t.a=s.a and t.b=s.b) where s.a is null;
|
||||
select '-';
|
||||
select t.*, s.* from t left join s on (s.a=t.a and t.b=s.b and t.a=toInt64(2)) order by t.a;
|
||||
select t.*, s.* from t left join s on (s.a=t.a and t.b=s.b and t.a=toInt64(2)) order by t.a; -- {serverError 403 }
|
||||
select '-';
|
||||
select t.*, s.* from t left join s on (s.a=t.a) order by t.a;
|
||||
select '-';
|
||||
select t.*, s.* from t left join s on (t.b=toInt64(2) and s.a=t.a) where s.b=2;
|
||||
select t.*, s.* from t left join s on (t.b=toInt64(2) and s.a=t.a) where s.b=2; -- {serverError 403 }
|
||||
|
||||
select 'join_use_nulls = 0';
|
||||
set join_use_nulls = 0;
|
||||
@ -58,11 +58,11 @@ select '-';
|
||||
select '-';
|
||||
-- select s.* from t left outer join s on (t.a=s.a and t.b=s.b) where s.a is null; -- TODO
|
||||
select '-';
|
||||
select t.*, s.* from t left join s on (s.a=t.a and t.b=s.b and t.a=toInt64(2)) order by t.a;
|
||||
select t.*, s.* from t left join s on (s.a=t.a and t.b=s.b and t.a=toInt64(2)) order by t.a; -- {serverError 403 }
|
||||
select '-';
|
||||
select t.*, s.* from t left join s on (s.a=t.a) order by t.a;
|
||||
select '-';
|
||||
select t.*, s.* from t left join s on (t.b=toInt64(2) and s.a=t.a) where s.b=2;
|
||||
select t.*, s.* from t left join s on (t.b=toInt64(2) and s.a=t.a) where s.b=2; -- {serverError 403 }
|
||||
|
||||
drop table t;
|
||||
drop table s;
|
||||
|
@ -29,8 +29,6 @@ remote(Distributed)
|
||||
JOIN system.clusters
|
||||
1 10 localhost ::1 9000
|
||||
1 20 localhost ::1 9000
|
||||
1 10 localhost ::1 9000
|
||||
1 20 localhost ::1 9000
|
||||
dist_3
|
||||
100 foo
|
||||
foo 100 foo
|
||||
|
@ -48,11 +48,12 @@ FROM (SELECT *, _shard_num FROM dist_1) a
|
||||
JOIN system.clusters b
|
||||
ON a._shard_num = b.shard_num
|
||||
WHERE b.cluster = 'test_cluster_two_shards_localhost';
|
||||
|
||||
SELECT _shard_num, key, b.host_name, b.host_address, b.port
|
||||
FROM dist_1 a
|
||||
JOIN system.clusters b
|
||||
ON _shard_num = b.shard_num
|
||||
WHERE b.cluster = 'test_cluster_two_shards_localhost';
|
||||
WHERE b.cluster = 'test_cluster_two_shards_localhost'; -- { serverError 403 }
|
||||
|
||||
-- rewrite does not work with aliases, hence Missing columns (47)
|
||||
SELECT a._shard_num, key FROM dist_1 a; -- { serverError 47; }
|
||||
|
@ -2,7 +2,7 @@ drop table if exists test_01081;
|
||||
|
||||
create table test_01081 (key Int) engine=MergeTree() order by key;
|
||||
insert into test_01081 select * from system.numbers limit 10;
|
||||
select 1 from remote('127.{1,2}', currentDatabase(), test_01081) lhs join system.one as rhs on rhs.dummy = 1 order by 1;
|
||||
select 1 from remote('127.{1,2}', currentDatabase(), test_01081) lhs join system.one as rhs on rhs.dummy = 1 order by 1; -- { serverError 403 }
|
||||
|
||||
-- With multiple blocks triggers:
|
||||
--
|
||||
@ -11,6 +11,6 @@ select 1 from remote('127.{1,2}', currentDatabase(), test_01081) lhs join system
|
||||
-- _dummy Int Int32(size = 0), 1 UInt8 Const(size = 0, UInt8(size = 1)).
|
||||
|
||||
insert into test_01081 select * from system.numbers limit 10;
|
||||
select 1 from remote('127.{1,2}', currentDatabase(), test_01081) lhs join system.one as rhs on rhs.dummy = 1 order by 1;
|
||||
select 1 from remote('127.{1,2}', currentDatabase(), test_01081) lhs join system.one as rhs on rhs.dummy = 1 order by 1; -- { serverError 403 }
|
||||
|
||||
drop table if exists test_01081;
|
||||
|
@ -8,7 +8,3 @@ xyzabc 2
|
||||
1 0 0 3
|
||||
\N 1 2 \N 0
|
||||
\N 1 0 \N 3
|
||||
1
|
||||
1
|
||||
1 hello\0\0\0
|
||||
1 hello\0\0\0
|
||||
|
@ -17,7 +17,6 @@ select null, isConstant(null), * from (select 2 x, null) a right join (select 3
|
||||
|
||||
-- other cases with joins and constants
|
||||
|
||||
select cast(1, 'UInt8') from (select arrayJoin([1, 2]) as a) t1 left join (select 1 as b) t2 on b = ignore('UInt8');
|
||||
|
||||
select isConstant('UInt8'), toFixedString('hello', toUInt8(substring('UInt8', 5, 1))) from (select arrayJoin([1, 2]) as a) t1 left join (select 1 as b) t2 on b = ignore('UInt8');
|
||||
select cast(1, 'UInt8') from (select arrayJoin([1, 2]) as a) t1 left join (select 1 as b) t2 on b = ignore('UInt8'); -- { serverError 403 }
|
||||
|
||||
select isConstant('UInt8'), toFixedString('hello', toUInt8(substring('UInt8', 5, 1))) from (select arrayJoin([1, 2]) as a) t1 left join (select 1 as b) t2 on b = ignore('UInt8'); -- { serverError 403 }
|
||||
|
7
tests/queries/0_stateless/01478_not_equi-join_on.sql
Normal file
7
tests/queries/0_stateless/01478_not_equi-join_on.sql
Normal file
@ -0,0 +1,7 @@
|
||||
SELECT * FROM (SELECT NULL AS a, 1 AS b) AS foo
|
||||
RIGHT JOIN (SELECT 1024 AS b) AS bar
|
||||
ON 1 = foo.b; -- { serverError 403 }
|
||||
|
||||
SELECT * FROM (SELECT NULL AS a, 1 AS b) AS foo
|
||||
RIGHT JOIN (SELECT 1024 AS b) AS bar
|
||||
ON 1 = bar.b; -- { serverError 403 }
|
1
tests/queries/0_stateless/01632_group_array_msan.sql
Normal file
1
tests/queries/0_stateless/01632_group_array_msan.sql
Normal file
@ -0,0 +1 @@
|
||||
SELECT groupArrayMerge(1048577)(y * 1048576) FROM (SELECT groupArrayState(9223372036854775807)(x) AS y FROM (SELECT 1048576 AS x)) FORMAT Null;
|
1
tests/queries/0_stateless/01633_limit_fuzz.reference
Normal file
1
tests/queries/0_stateless/01633_limit_fuzz.reference
Normal file
File diff suppressed because one or more lines are too long
1
tests/queries/0_stateless/01633_limit_fuzz.sql
Normal file
1
tests/queries/0_stateless/01633_limit_fuzz.sql
Normal file
@ -0,0 +1 @@
|
||||
SELECT number, 1 AS k FROM numbers(100000) ORDER BY k, number LIMIT 1025, 1023 FORMAT Values;
|
@ -4,15 +4,9 @@
|
||||
{
|
||||
"thread-sanitizer": [
|
||||
"00877",
|
||||
"00985",
|
||||
"query_profiler",
|
||||
"memory_profiler",
|
||||
/// 01083 and 00505 and 00505 are critical and temproray disabled
|
||||
"01083_expressions_in_engine_arguments",
|
||||
"00505_shard_secure",
|
||||
"00505_secure",
|
||||
"01103_check_cpu_instructions_at_startup",
|
||||
"01098_temporary_and_external_tables", /// race in openssl (should be enabled as fast as possible)
|
||||
"00152_insert_different_granularity",
|
||||
"00151_replace_partition_with_different_granularity",
|
||||
"00157_cache_dictionary",
|
||||
@ -50,7 +44,6 @@
|
||||
"01103_check_cpu_instructions_at_startup",
|
||||
"01086_odbc_roundtrip", /// can't pass because odbc libraries are not instrumented
|
||||
"00877_memory_limit_for_new_delete", /// memory limits don't work correctly under msan because it replaces malloc/free
|
||||
"01114_mysql_database_engine_segfault", /// it fails in _nss_files_parse_servent while using NSS from GLibc to authenticate (need to get rid of it)
|
||||
"01473_event_time_microseconds",
|
||||
"01526_max_untracked_memory", /// requires TraceCollector, does not available under sanitizers
|
||||
"01193_metadata_loading"
|
||||
|
Loading…
Reference in New Issue
Block a user