Azat Khuzhin
46a94f395d
Move the check into IMergedBlockOutputStream::removeEmptyColumnsFromPart()
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-05-26 20:14:10 +03:00
Azat Khuzhin
4288d09a85
Do not write expired columns by TTL after merge w/o TTL
...
Usually second merge do not perform TTL, since everything is up to date,
however in this case TTLTransform is not used, and hence expired_columns
will not be filled for new part, and so those columns will be written
with default values.
Avoid this, by manually filling expired_columns.
Here is a simpler reproducer:
Simple reproducer:
```sql
create table ttl_02262 (date Date, key Int, value String TTL date + interval 1 month) engine=MergeTree order by key settings min_bytes_for_wide_part=0, min_rows_for_wide_part=0;
insert into ttl_02262 values ('2010-01-01', 2010, 'foo');
```
```sh
# ls -l .server/data/default/ttl_02262/all_*
.server/data/default/ttl_02262/all_1_1_0:
total 48
-rw-r----- 1 root root 335 May 26 14:19 checksums.txt
-rw-r----- 1 root root 76 May 26 14:19 columns.txt
-rw-r----- 1 root root 1 May 26 14:19 count.txt
-rw-r----- 1 root root 28 May 26 14:19 date.bin
-rw-r----- 1 root root 48 May 26 14:19 date.mrk2
-rw-r----- 1 root root 10 May 26 14:19 default_compression_codec.txt
-rw-r----- 1 root root 30 May 26 14:19 key.bin
-rw-r----- 1 root root 48 May 26 14:19 key.mrk2
-rw-r----- 1 root root 8 May 26 14:19 primary.idx
-rw-r----- 1 root root 99 May 26 14:19 ttl.txt
-rw-r----- 1 root root 30 May 26 14:19 value.bin
-rw-r----- 1 root root 48 May 26 14:19 value.mrk2
```
```sql
optimize table ttl_02262 final;
```
```sh
.server/data/default/ttl_02262/all_1_1_1:
total 40
-rw-r----- 1 root root 279 May 26 14:19 checksums.txt
-rw-r----- 1 root root 61 May 26 14:19 columns.txt
-rw-r----- 1 root root 1 May 26 14:19 count.txt
-rw-r----- 1 root root 28 May 26 14:19 date.bin
-rw-r----- 1 root root 48 May 26 14:19 date.mrk2
-rw-r----- 1 root root 10 May 26 14:19 default_compression_codec.txt
-rw-r----- 1 root root 30 May 26 14:19 key.bin
-rw-r----- 1 root root 48 May 26 14:19 key.mrk2
-rw-r----- 1 root root 8 May 26 14:19 primary.idx
-rw-r----- 1 root root 81 May 26 14:19 ttl.txt
```
```sql
optimize table ttl_02262 final;
```
```sh
.server/data/default/ttl_02262/all_1_1_2:
total 48
-rw-r----- 1 root root 349 May 26 14:20 checksums.txt
-rw-r----- 1 root root 76 May 26 14:20 columns.txt
-rw-r----- 1 root root 1 May 26 14:20 count.txt
-rw-r----- 1 root root 28 May 26 14:20 date.bin
-rw-r----- 1 root root 48 May 26 14:20 date.mrk2
-rw-r----- 1 root root 10 May 26 14:20 default_compression_codec.txt
-rw-r----- 1 root root 30 May 26 14:20 key.bin
-rw-r----- 1 root root 48 May 26 14:20 key.mrk2
-rw-r----- 1 root root 8 May 26 14:20 primary.idx
-rw-r----- 1 root root 81 May 26 14:20 ttl.txt
-rw-r----- 1 root root 27 May 26 14:20 value.bin
-rw-r----- 1 root root 48 May 26 14:20 value.mrk2
```
And now we have `value.*` for all_1_1_2, this should not happen.
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-05-26 20:14:10 +03:00
Azat Khuzhin
8328d7068b
Fix updating of MergeTreeDataPartTTLInfo::finished
...
Previously you cannot distinguish non-initialized finished with
initialized to false, so update() cannot do the correct thing.
Rename the field to avoid hidden usage.
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-05-26 20:14:10 +03:00
Azat Khuzhin
0de1a64436
Log empty parts in IMergedBlockOutputStream::removeEmptyColumnsFromPart()
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-05-26 20:14:09 +03:00
Azat Khuzhin
dc9ca3d70c
Fix LOGICAL_ERROR in getMaxSourcePartsSizeForMerge during merges ( #37413 )
2022-05-26 14:14:58 +02:00
Alexander Tokmakov
47820c216d
Revert "(only with zero-copy replication, non-production experimental feature not recommended to use) fix possible deadlock during fetching part"
2022-05-25 23:10:33 +03:00
alesapin
51868a9a4f
Merge pull request #37424 from metahys/fix_fetching_part_deadlock
...
(only with zero-copy replication, non-production experimental feature not recommended to use) fix possible deadlock during fetching part
2022-05-25 20:15:41 +02:00
alesapin
0a3597da72
Merge pull request #34915 from ianton-ru/MDB-16962
...
Fix collision of S3 operation log revision
2022-05-25 18:15:31 +02:00
mergify[bot]
73662b4436
Merge branch 'master' into fix_fetching_part_deadlock
2022-05-25 14:22:35 +00:00
alesapin
9a19309e69
Slightly better fix
2022-05-24 14:46:29 +02:00
alesapin
3ca7a8831b
Revert "fix deadlock during fetching part"
...
This reverts commit 6ae8a26fae
.
2022-05-24 14:26:06 +02:00
alesapin
a5ba6bca95
Merge branch 'master' into metahys-fix_fetching_part_deadlock
2022-05-24 14:07:47 +02:00
Alexander Tokmakov
6bc68c0cbc
Merge branch 'master' into fixes_for_transactions
2022-05-23 18:49:21 +02:00
metahys
6ae8a26fae
fix deadlock during fetching part
2022-05-23 20:08:04 +08:00
Robert Schulze
19d53c14fa
Merge pull request #37382 from ClickHouse/wc++98-compat-extra-semi
...
Enable -Wc++98-compat-extra-semi
2022-05-22 09:40:45 +02:00
Alexander Tokmakov
44f2d4529a
better waiting, add fault injection
2022-05-20 22:10:01 +02:00
Anton Popov
cb0e6c2718
mark all operators bool() as explicit
2022-05-20 15:29:54 +00:00
Robert Schulze
0f6715bd91
Follow-up to PR #37300 : semicolon warnings
...
In PR #37300 , Alexej asked why we the compiler does not warn about
unnecessary semicolons, e.g.
f()
{
}; // <-- here
The answer is surprising: In C++98, above syntax was disallowed but by
most compilers accepted it regardless. C++>11 introduced "empty
declarations" which made the syntax legal.
The previous behavior can be restored using flag
-Wc++98-compat-extra-semi. This finds many useless semicolons which were
removed in this change. Unfortunately, there are also false positives
which would require #pragma-s and HAS_* logic (--> check_flags.cmake) to
suppress. In the end, -Wc++98-compat-extra-semi comes with extra effort
for little benefit. Therefore, this change only fixes some semicolons
but does not enable the flag.
2022-05-20 15:06:34 +02:00
Alexander Tokmakov
12bbb7de87
fix race on TID allocation
2022-05-20 12:41:44 +02:00
Robert Schulze
b475fbc9a7
Merge pull request #37300 from ClickHouse/cmake-cleanup-pt3
...
Various cmake cleanups
2022-05-20 10:02:36 +02:00
Alexander Tokmakov
f787dc7097
Revert "Fix mutations in tables with columns of type Object
"
2022-05-19 13:24:48 +03:00
Vitaly Baranov
7c8956ca8d
Merge pull request #36879 from tonickkozlov/tonickkozlov/lazy-marks-loading
...
Lazy marks loading
2022-05-18 22:56:46 +02:00
Kruglov Pavel
aaace46da2
Merge pull request #37266 from CurtizJ/fix-mutations-with-object
...
Fix mutations in tables with columns of type `Object`
2022-05-18 12:19:55 +02:00
alesapin
4d4634b12d
Merge pull request #37164 from kssenii/ficx-async-reads-assertions
...
fix async reads from remote fs internal setting not being always turned on
2022-05-17 11:29:14 +02:00
Robert Schulze
43945cea1b
Fixing some warnings
2022-05-16 20:59:27 +02:00
Anton Popov
b6c5ab4fcf
fix mutations in tables with columns of type Object
2022-05-16 18:26:53 +00:00
kssenii
f7493965b7
Remove additional check for merge tree
2022-05-16 11:19:57 +02:00
kssenii
49201f217f
Revert
2022-05-16 11:17:56 +02:00
Robert Schulze
e3cfec5b09
Merge remote-tracking branch 'origin/master' into clangtidies
2022-05-16 10:12:50 +02:00
Robert Schulze
859f2f3391
Enclose large if block in {}
2022-05-15 14:49:20 +02:00
alesapin
1c082717a4
Relax log level for some checks in check thread
2022-05-13 23:29:36 +02:00
Kseniia Sumarokova
0f07c41f19
Update MergeTreeIOSettings.h
2022-05-13 13:26:47 +02:00
kssenii
cde5cecc4d
One more
2022-05-12 23:57:25 +02:00
kssenii
e5466a40fd
Make sure async reads from remote fs related internal setting is turned on when needed
2022-05-12 19:00:19 +02:00
Dmitry Novik
df071bb701
Merge pull request #37129 from ClickHouse/enable-overcommit-for-user
...
Update documentation and defaults for memory overcommit
2022-05-12 14:38:43 +02:00
Maksim Kita
437d70d4da
Fixed tests
2022-05-11 21:59:51 +02:00
Maksim Kita
4e7d10297b
Fixed style
2022-05-11 21:59:51 +02:00
Maksim Kita
ce92f6aab1
Fixed tests
2022-05-11 21:59:51 +02:00
Maksim Kita
8ceb63ee6c
Added JIT compilation of SortDescription
2022-05-11 21:59:51 +02:00
Dmitry Novik
17608b3d93
Update documentation and defaults for memory overcommit
2022-05-11 16:18:41 +00:00
Anton Kozlov
23e6792898
Lazy marks loading
2022-05-11 10:15:56 +00:00
Anton Popov
aec30c4076
Merge pull request #37053 from CurtizJ/remove-streams-comments
...
Remove last mentions of data streams
2022-05-10 13:38:13 +02:00
Anton Popov
e911900054
remove last mentions of data streams
2022-05-09 19:15:24 +00:00
Anton Ivashkin
6a6505c224
Merge master
2022-05-09 17:21:34 +03:00
alesapin
28e492bc17
Followup fix
2022-05-09 15:21:33 +02:00
alesapin
018ed10684
Add test
2022-05-09 15:21:21 +02:00
Robert Schulze
61cbcbf073
Enable clang-tidy readability-misleading-indentation
...
Official docs:
Correct indentation helps to understand code. Mismatch of the
syntactical structure and the indentation of the code may hide serious
problems.
2022-05-08 19:12:01 +02:00
alesapin
2f650366a6
Merge branch 'master' into better_delete_outdated_parts
2022-05-08 12:55:42 +02:00
alesapin
46712f1d98
Fix forgotten parts in cleanup thread
2022-05-08 00:53:55 +02:00
Alexey Milovidov
fdbb5b75b2
Merge branch 'master' into minor-renames
2022-05-07 14:18:50 +03:00