mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 17:12:03 +00:00
Fix counting column size in wide part for Dynamid and JSON types
This commit is contained in:
parent
ea806b05a0
commit
020b69647a
@ -108,7 +108,7 @@ ColumnSize MergeTreeDataPartWide::getColumnSizeImpl(
|
|||||||
auto mrk_checksum = checksums.files.find(*stream_name + getMarksFileExtension());
|
auto mrk_checksum = checksums.files.find(*stream_name + getMarksFileExtension());
|
||||||
if (mrk_checksum != checksums.files.end())
|
if (mrk_checksum != checksums.files.end())
|
||||||
size.marks += mrk_checksum->second.file_size;
|
size.marks += mrk_checksum->second.file_size;
|
||||||
});
|
}, column.type, getColumnSample(column));
|
||||||
|
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,7 @@ size_t MergeTreeReaderWide::readRows(
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (column->empty())
|
if (column->empty() && max_rows_to_read > 0)
|
||||||
res_columns[pos] = nullptr;
|
res_columns[pos] = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
test 10.00 million 352.87 MiB 39.43 MiB 39.45 MiB
|
@ -0,0 +1,22 @@
|
|||||||
|
-- Tags: no-random-settings
|
||||||
|
|
||||||
|
set allow_experimental_dynamic_type = 1;
|
||||||
|
set allow_experimental_json_type = 1;
|
||||||
|
|
||||||
|
drop table if exists test;
|
||||||
|
create table test (d Dynamic, json JSON) engine=MergeTree order by tuple() settings min_rows_for_wide_part=0, min_bytes_for_wide_part=1;
|
||||||
|
insert into test select number, '{"a" : 42, "b" : "Hello, World"}' from numbers(10000000);
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
`table`,
|
||||||
|
formatReadableQuantity(sum(rows)) AS rows,
|
||||||
|
formatReadableSize(sum(data_uncompressed_bytes)) AS data_size_uncompressed,
|
||||||
|
formatReadableSize(sum(data_compressed_bytes)) AS data_size_compressed,
|
||||||
|
formatReadableSize(sum(bytes_on_disk)) AS total_size_on_disk
|
||||||
|
FROM system.parts
|
||||||
|
WHERE active AND (database = currentDatabase()) AND (`table` = 'test')
|
||||||
|
GROUP BY `table`
|
||||||
|
ORDER BY `table` ASC;
|
||||||
|
|
||||||
|
drop table test;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user