dbms: Server: Added functional test + comment. [#METR-18059]

This commit is contained in:
Alexey Arno 2015-09-30 16:43:25 +03:00
parent e42022adce
commit 3a8d096be2
3 changed files with 6 additions and 1 deletions

View File

@ -197,7 +197,8 @@ void LogicalExpressionsOptimizer::addInExpression(const DisjunctiveEqualityChain
value_list->children.push_back(operands[1]);
}
/// Отсортировать литералы.
/// Отсортировать литералы, чтобы они были указаны в одном и том же порядке в выражении IN.
/// Иначе они указывались бы в порядке адресов ASTLiteral, который недетерминирован.
std::sort(value_list->children.begin(), value_list->children.end(), [](const DB::ASTPtr & lhs, const DB::ASTPtr & rhs)
{
const auto val_lhs = static_cast<const ASTLiteral *>(&*lhs);

View File

@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS test.foo(id UInt64) Engine=Memory;
INSERT INTO test.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 test.foo;
DROP TABLE test.foo;