Commit Graph

6351 Commits

Author SHA1 Message Date
Alexey Milovidov
1546f5bcb9 Suppress UBSan report in Decimal comparison 2021-02-13 03:54:38 +03:00
Alexander Kuzmenkov
716a3df6eb
Merge pull request #20337 from ClickHouse/aku/window-prototype
window function rank() and friends
2021-02-13 03:03:49 +03:00
alexey-milovidov
2fe2190a20
Merge pull request #19721 from azat/buffer-profile
Add separate config directive for Buffer profile
2021-02-13 02:43:41 +03:00
alexey-milovidov
04701376ac
Merge pull request #20232 from ClickHouse/fix_int_field_to_decimal_conversion
Fix integer Field to Decimal conversion
2021-02-13 02:22:32 +03:00
alexey-milovidov
371e84957a
Merge pull request #20303 from azat/constant-folding-fixes
Do not allow early constant folding of explicitly forbidden functions
2021-02-13 02:20:06 +03:00
alesapin
051c9533b9 Fix dependent test 2021-02-12 22:42:20 +03:00
alesapin
939a3e9555 Fix tests for better parallel run 2021-02-12 22:28:00 +03:00
Alexander Kuzmenkov
824475b224 cleanup 2021-02-12 13:37:27 +03:00
alesapin
a94e223cee
Merge pull request #20344 from azat/join_use_nulls-fix
Fix null dereference with join_use_nulls=1
2021-02-12 12:48:53 +03:00
alesapin
9aadbde86c
Merge pull request #20339 from kitaisreal/decimal-binary-operation-constants-fix
Decimal binary operation constants fix
2021-02-12 12:32:58 +03:00
Maksim Kita
e141367bcf
Merge pull request #20345 from azat/RANGE_HASHED-dict-fix
Avoid invalid dereference in RANGE_HASHED() dictionary
2021-02-12 11:05:10 +03:00
alesapin
a2bb586170
Merge pull request #20335 from ClickHouse/fix_scheduling_of_non_successful_background_tasks
Fix backoff for failed background tasks in replicated merge tree
2021-02-12 10:06:04 +03:00
alexey-milovidov
4e32dbd024
Merge pull request #19317 from abyss7/dwarf-folly
Print inline frames for fatal stacktraces
2021-02-12 02:38:50 +03:00
Azat Khuzhin
3993ad6f01 Fix test_system_merges by using mutations_sync=1
After early_constant_folding started to ignore not only ignore(), but
all functions with isSuitableForConstantFolding() == false, there became
more sleep(2) calls for this test:
- MergeTreeDataSelectExecutor::readFromParts -> DB::KeyCondition::KeyCondition
- MergeTreeDataMergerMutator::mutatePartToTemporaryPart -> DB::isStorageTouchedByMutations -> FilterTransform::transform
- MergeTreeDataMergerMutator::mutatePartToTemporaryPart -> DB::MergeTreeDataMergerMutator::mutateAllPartColumns -> FilterTransform::transform

While before it was optimized to 0 during WHERE analysis.
2021-02-11 22:46:56 +03:00
Azat Khuzhin
f6cfcd4da9 Fix null dereference with join_use_nulls=1
Found with MSan [1], the following query triggers null dereference:

```sql
SELECT
    Y.id - 1
FROM X
RIGHT JOIN Y ON (X.id + 1) = Y.id
SETTINGS join_use_nulls=1; -- { serverError 53 }
```

```
Received signal 11
(version 21.3.1.5916, build id: 2E9E84AA32AEAAC7C8B6EB45DA3EC0B4F15E9ED4) (from thread 100) (query_id: 9ab8cb0d-be8d-445e-8498-930a7268488b) Received signal Segmentation fault (11)
Address: 0x10 Access: read. Address not mapped to object.
Stack trace: 0x2d079d65 0x29bf1f30 0x12b12220 0x12b13098 0x12b17b08 0x12b20459 0x2ae37913 0x2ae352d9 0x2c746072 0x2c7585dd 0x2c7483e3 0x2c74e63d 0x2c7483e3 0x2c74e63d 0x2c7483e3 0x2c74e63d 0x2c7483e3 0x2c74e63d 0x2c7483e3 0x2c74e63d 0x2c7483e3 0x2c74e63d 0x2c7483e3 0x2c74e63d 0x2c7483e3 0x2c74e63d 0x2c7483e3 0x2c74e63d
4. ./obj-x86_64-linux-gnu/../contrib/boost/boost/smart_ptr/intrusive_ptr.hpp:0: DB::ColumnConst::ColumnConst(COW<DB::IColumn>::immutable_ptr<DB::IColumn> const&, unsigned long) @ 0x2d079d65 in /workspace/clickhouse
5. ./obj-x86_64-linux-gnu/../src/Common/COW.h:0: DB::createBlockWithNestedColumns(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&) @ 0x29bf1f30 in /workspace/clickhouse
6. DB::FunctionOverloadResolverAdaptor::getReturnTypeDefaultImplementationForNulls(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&, std::__1::function<std::__1::shared_ptr<DB::IDataType const> (std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&)> const&) @ 0x12b12220 in /workspace/clickhouse
7. DB::FunctionOverloadResolverAdaptor::getReturnTypeWithoutLowCardinality(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&) const @ 0x12b13098 in /workspace/clickhouse
8. DB::FunctionOverloadResolverAdaptor::getReturnType(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&) const @ 0x12b17b08 in /workspace/clickhouse
9. DB::FunctionOverloadResolverAdaptor::build(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&) const @ 0x12b20459 in /workspace/clickhouse
```

  [1]: https://clickhouse-test-reports.s3.yandex.net/19451/64c0bf98290362fa216c05b070aa122a12af3c25/fuzzer_msan/report.html#fail1
2021-02-11 21:30:05 +03:00
Azat Khuzhin
2907385400 Avoid invalid dereference in RANGE_HASHED() dictionary
UBsan report the following [1], when query does not contains any columns
from the dictionary:

```sql
SELECT
    toUInt32(toUInt32(NULL, toUInt32(NULL, inf, NULL), NULL)),
    toUInt32(toUInt32(toUInt32(toUInt32(toUInt32(NULL, 1., NULL)), toUInt32(toUInt32(NULL, 0.5, NULL)), toUInt32(NULL, NULL)), toUInt32(toUInt32(NULL, 1., NULL)), toUInt32(NULL, NULL)), toUInt32(toUInt32(toUInt32(toUInt32(NULL, 1000.0001220703125, NULL)), toUInt32(toUInt32(NULL, 10.000100135803223, NULL)), toUInt32(NULL, NULL)), NULL, NULL, NULL))
FROM somedict
```

```
std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> >::back() @ 0x128c07a6 in /workspace/clickhouse
./obj-x86_64-linux-gnu/../src/Dictionaries/RangeDictionaryBlockInputStream.h:0: DB::RangeDictionaryBlockInputStream<DB::RangeHashedDictionary, unsigned short, unsigned long>::fillBlock(DB::PODArray<unsigned long, 4096ul, Allocator<false, false>, 15ul, 16ul> const&, DB::PODArray<unsigned short, 4096ul, Allocator<false, false>, 15ul, 16ul> const&, DB::PODArray<unsigned short, 4096ul, Allocator<false, false>, 15ul, 16ul> const&) const @ 0x1692335e in /workspace/clickhouse
./obj-x86_64-linux-gnu/../src/Dictionaries/RangeDictionaryBlockInputStream.h:0: DB::RangeDictionaryBlockInputStream<DB::RangeHashedDictionary, unsigned short, unsigned long>::getBlock(unsigned long, unsigned long) const @ 0x16922f96 in /workspace/clickhouse
./obj-x86_64-linux-gnu/../src/Dictionaries/DictionaryBlockInputStreamBase.cpp:23: DB::DictionaryBlockInputStreamBase::getHeader() const @ 0x166ab57c in /workspace/clickhouse
```

  [1]: https://clickhouse-test-reports.s3.yandex.net/19451/64c0bf98290362fa216c05b070aa122a12af3c25/fuzzer_ubsan/report.html#fail1
2021-02-11 21:07:37 +03:00
alexey-milovidov
7b55eb8c58
Merge pull request #20178 from amosbird/delayinactive
Delay or throw insertion when too many inactive parts
2021-02-11 20:52:04 +03:00
alexey-milovidov
ac707f7165
Merge pull request #20305 from azat/fix-flaky-tests
Fix 00738_lock_for_inner_table flakiness
2021-02-11 20:46:42 +03:00
alexey-milovidov
d15d340691
Merge pull request #20301 from azat/numbers-numeric-limit
Accept arbitrary numeric types for numbers() arguments (for scientific notation)
2021-02-11 20:41:15 +03:00
Alexander Kuzmenkov
1275be58bf Merge remote-tracking branch 'origin/master' into HEAD 2021-02-11 19:49:37 +03:00
Alexander Kuzmenkov
ebb47595aa
Merge pull request #20293 from ClickHouse/aku/window-prototype-3
make window functions faster
2021-02-11 19:49:02 +03:00
Alexander Kuzmenkov
62b3bf7b57 some tests and speedup 2021-02-11 19:20:57 +03:00
Maksim Kita
248a06f930 Added test 2021-02-11 19:11:07 +03:00
Alexander Kuzmenkov
d8f9a8d3cd first_value and last_value 2021-02-11 18:41:54 +03:00
alesapin
bf4af9713c Fix tests 2021-02-11 18:29:08 +03:00
Alexander Kuzmenkov
ecbcf47f28 lag/lead stubs + cleanup 2021-02-11 18:07:42 +03:00
alexey-milovidov
263d751d64
Merge pull request #20169 from ClickHouse/no-excessive-squash-memory
Disable excessive squashing of blocks for StorageMemory #13052
2021-02-11 16:38:24 +03:00
Alexey Milovidov
c32ed77976 Some queries become too fast 2021-02-11 16:37:46 +03:00
Alexander Kuzmenkov
525400bc41 window function rank() and friends 2021-02-11 16:29:30 +03:00
alesapin
3253638969 Fix backoff for failed background tasks in replicated merge tree 2021-02-11 14:46:18 +03:00
Alexander Kuzmenkov
363007b964 fixes 2021-02-11 11:39:39 +03:00
alesapin
56453256b7
Merge pull request #20300 from ClickHouse/restrict_to_drop_version_column
Don't allow to drop or rename version column
2021-02-11 11:04:00 +03:00
alesapin
121c5c9605
Merge pull request #20279 from ClickHouse/relax_check_in_data_writer
Relax check in data writer for non adaptive tables
2021-02-11 10:57:07 +03:00
Alexander Kuzmenkov
38678ff484 Merge remote-tracking branch 'origin/master' into HEAD 2021-02-11 10:40:05 +03:00
Alexander Kuzmenkov
2571dac984
Merge pull request #20111 from ClickHouse/aku/window-prototype
RANGE OFFSET window frame
2021-02-11 10:39:21 +03:00
Azat Khuzhin
222a0db3f4 Update tests expectations for early_constant_folding 2021-02-11 10:31:58 +03:00
Azat Khuzhin
6845eb36fa Generate query_id based on current database in 00738_lock_for_inner_table
For flaky checker
2021-02-11 10:23:23 +03:00
Azat Khuzhin
ed7e5a26be Generate UUID based on random current database in 00738_lock_for_inner_table 2021-02-11 10:23:23 +03:00
Azat Khuzhin
064deaf3c1 Fix 00738_lock_for_inner_table flakiness
It is possible to execute DROP just before an INSERT will acquire the
lock for the underlying table, and then the test will fail [1]:

    2021-02-09 13:03:27 00738_lock_for_inner_table:                                             [ FAIL ] 3.18 sec. - having stderror:
    2021-02-09 13:03:27 [3eff0fc65d1a] 2021.02.09 13:03:27.440841 [ 220384 ] {test_00738} <Error> executeQuery: Code: 60, e.displayText() = DB::Exception: Table default.`.inner_id.00000738-1000-4000-8000-000000000001` (9647fbaa-a80d-420e-9240-30f5719a84e7) doesn't exist (version 21.3.1.5956) (from [::1]:56964) (comment: '/usr/share/clickhouse-test/queries/0_stateless/01701_if_tuple_segfault.sql') (in query: INSERT INTO tab_00738 SELECT number FROM numbers(10000000)), Stack trace (when copying this message, always include the lines below):
    2021-02-09 13:03:27
    2021-02-09 13:03:27 0. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/exception:133: std::exception::capture() @ 0x10d0a908 in /usr/bin/clickhouse
    2021-02-09 13:03:27 1. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/exception:111: std::exception::exception() @ 0x10d0a8d5 in /usr/bin/clickhouse
    2021-02-09 13:03:27 2. ./obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/Exception.cpp:27: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x1e5b4943 in /usr/bin/clickhouse
    2021-02-09 13:03:27 3. ./obj-x86_64-linux-gnu/../src/Common/Exception.cpp:54: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x10cec720 in /usr/bin/clickhouse
    2021-02-09 13:03:27 4. ./obj-x86_64-linux-gnu/../src/Common/Exception.h:38: DB::Exception::Exception<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) @ 0x10e82041 in /usr/bin/clickhouse
    2021-02-09 13:03:27 5. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/optional:324: void std::__1::__optional_storage_base<DB::Exception, false>::__construct<int const&, char const (&) [23], std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(int const&, char const (&) [23], std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) @ 0x19940df9 in /usr/bin/clickhouse
    2021-02-09 13:03:27 6. ./obj-x86_64-linux-gnu/../contrib/libcxx/include/optional:830: DB::Exception& std::__1::optional<DB::Exception>::emplace<int const&, char const (&) [23], std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(int const&, char const (&) [23], std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) @ 0x19939b7a in /usr/bin/clickhouse
    2021-02-09 13:03:27 7. ./obj-x86_64-linux-gnu/../src/Interpreters/DatabaseCatalog.cpp:233: DB::DatabaseCatalog::getTableImpl(DB::StorageID const&, DB::Context const&, std::__1::optional<DB::Exception>*) const @ 0x1992efcf in /usr/bin/clickhouse
    2021-02-09 13:03:27 8. ./obj-x86_64-linux-gnu/../src/Interpreters/DatabaseCatalog.cpp:641: DB::DatabaseCatalog::getTable(DB::StorageID const&, DB::Context const&) const @ 0x19932fba in /usr/bin/clickhouse
    2021-02-09 13:03:27 9. ./obj-x86_64-linux-gnu/../src/Storages/StorageMaterializedView.cpp:376: DB::StorageMaterializedView::getTargetTable() const @ 0x1a5fe2bf in /usr/bin/clickhouse
    2021-02-09 13:03:27 10. ./obj-x86_64-linux-gnu/../src/DataStreams/PushingToViewsBlockOutputStream.cpp:88: DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(std::__1::shared_ptr<DB::IStorage> const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::Context const&, std::__1::shared_ptr<DB::IAST> const&, bool) @ 0x19e26530 in /usr/bin/clickhouse

And if you will take a look at the 88 line, you will see that this is
just a timing issue.

  [1]: https://clickhouse-test-reports.s3.yandex.net/19673/7bddaba9208232f54095712f0cbfa44c6a5e2564/functional_stateless_tests_(antlr_debug).html#fail1
2021-02-11 10:23:23 +03:00
Azat Khuzhin
dac0c0fa95 Mark 01641_memory_tracking_insert_optimize as long
https://clickhouse-test-reports.s3.yandex.net/20301/3adadeb12bb7d2f4c9405927a28f9f7a49617d46/functional_stateless_tests_flaky_check_(address).html#fail1
2021-02-11 09:56:20 +03:00
Vladimir Ch
73a0e2961b
Merge pull request #20175 from amosbird/countrewrite 2021-02-11 09:38:12 +03:00
Alexey Milovidov
e73a6c9660 Temporary disable LIVE VIEW test 2021-02-11 03:03:21 +03:00
Azat Khuzhin
3adadeb12b Mark 01513_optimize_aggregation_in_order_memory as long
https://clickhouse-test-reports.s3.yandex.net/20301/b6dc721e332e30c7e6dde40282441dd59cfa276e/functional_stateless_tests_flaky_check_(address).html#fail1
2021-02-11 00:46:38 +03:00
alexey-milovidov
e33477a16e
Merge pull request #20282 from ClickHouse/dont_allow_ttl_for_old_syntax
Don't allow TTL in old syntax
2021-02-11 00:46:30 +03:00
Azat Khuzhin
53ea58810e Do not allow constant folding of explicitly forbidden functions 2021-02-11 00:38:47 +03:00
Alexey Milovidov
d3dba0e52a Merge branch 'master' into no-excessive-squash-memory 2021-02-10 23:45:12 +03:00
Azat Khuzhin
e2d5972eca Cover buffer_profile config directive 2021-02-10 22:44:26 +03:00
Azat Khuzhin
b6dc721e33 Update tests for new numbers(limit) syntax
$ gg -e 'numbers(toUInt64' -e 'numbers_mt(toUInt64' | cut -d: -f1 | sort -u | xargs sed -i -E 's#numbers(_mt|)\(toUInt64\(([^()]*)\)\)#numbers\1(\2)#'
2021-02-10 22:32:32 +03:00
Azat Khuzhin
5001b19613 Accept arbitrary numeric types for numbers() arguments (for scientific notation)
This is to make the syntax simpler, i.e. avoid explicit cast to UInt64
if you want to use scientific notation (i.e. 1e9 over 1 000 000 000).

v2: use plain evaluateConstantExpression() over
evaluateConstantExpressionOrIdentifierAsLiteral() since identifier will
not work anyway
2021-02-10 22:32:32 +03:00
alesapin
891fce3275 Don't allow to drop or rename version column 2021-02-10 22:23:48 +03:00