mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 00:52:02 +00:00
Fix
This commit is contained in:
parent
b72f6ea78e
commit
5606e248a7
@ -129,27 +129,18 @@ void MergeTreePartition::load(const MergeTreeData & storage, const DiskPtr & dis
|
|||||||
if (!metadata_snapshot->hasPartitionKey())
|
if (!metadata_snapshot->hasPartitionKey())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const auto & partition_key_sample = metadata_snapshot->getPartitionKey().sample_block;
|
const auto & partition_key_sample = adjustPartitionKey(metadata_snapshot, storage.getContext()).sample_block;
|
||||||
auto partition_file_path = part_path + "partition.dat";
|
auto partition_file_path = part_path + "partition.dat";
|
||||||
auto file = openForReading(disk, partition_file_path);
|
auto file = openForReading(disk, partition_file_path);
|
||||||
value.resize(partition_key_sample.columns());
|
value.resize(partition_key_sample.columns());
|
||||||
for (size_t i = 0; i < partition_key_sample.columns(); ++i)
|
for (size_t i = 0; i < partition_key_sample.columns(); ++i)
|
||||||
{
|
partition_key_sample.getByPosition(i).type->getDefaultSerialization()->deserializeBinary(value[i], *file);
|
||||||
if (partition_key_sample.getByPosition(i).name.starts_with("modulo"))
|
|
||||||
{
|
|
||||||
SerializationNumber<UInt8>().deserializeBinary(value[i], *file);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
partition_key_sample.getByPosition(i).type->getDefaultSerialization()->deserializeBinary(value[i], *file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MergeTreePartition::store(const MergeTreeData & storage, const DiskPtr & disk, const String & part_path, MergeTreeDataPartChecksums & checksums) const
|
void MergeTreePartition::store(const MergeTreeData & storage, const DiskPtr & disk, const String & part_path, MergeTreeDataPartChecksums & checksums) const
|
||||||
{
|
{
|
||||||
auto metadata_snapshot = storage.getInMemoryMetadataPtr();
|
auto metadata_snapshot = storage.getInMemoryMetadataPtr();
|
||||||
const auto & partition_key_sample = metadata_snapshot->getPartitionKey().sample_block;
|
const auto & partition_key_sample = adjustPartitionKey(metadata_snapshot, storage.getContext()).sample_block;
|
||||||
store(partition_key_sample, disk, part_path, checksums);
|
store(partition_key_sample, disk, part_path, checksums);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,6 +84,27 @@ recursive modulo partition key:
|
|||||||
(58,8,29)
|
(58,8,29)
|
||||||
(59,9,30)
|
(59,9,30)
|
||||||
(60,0,30)
|
(60,0,30)
|
||||||
|
After detach:
|
||||||
|
(-1,-1,0)
|
||||||
|
(-2,-2,-1)
|
||||||
|
(-3,-3,-2)
|
||||||
|
(-4,-4,-2)
|
||||||
|
(-5,-5,-2)
|
||||||
|
(-57,-7,-28)
|
||||||
|
(-58,-8,-29)
|
||||||
|
(-59,-9,-30)
|
||||||
|
(-60,0,-30)
|
||||||
|
(-61,-1,-30)
|
||||||
|
(0,0,0)
|
||||||
|
(0,0,0)
|
||||||
|
(1,1,0)
|
||||||
|
(2,2,1)
|
||||||
|
(3,3,2)
|
||||||
|
(4,4,2)
|
||||||
|
(57,7,28)
|
||||||
|
(58,8,29)
|
||||||
|
(59,9,30)
|
||||||
|
(60,0,30)
|
||||||
comparison:
|
comparison:
|
||||||
0 -205 -5 -5
|
0 -205 -5 -5
|
||||||
1 -204 -4 -4
|
1 -204 -4 -4
|
||||||
|
@ -32,6 +32,8 @@ INSERT INTO table3 SELECT number-205, number FROM numbers(400, 10);
|
|||||||
SELECT partition as p FROM system.parts WHERE table='table3' ORDER BY p;
|
SELECT partition as p FROM system.parts WHERE table='table3' ORDER BY p;
|
||||||
DETACH TABLE table3;
|
DETACH TABLE table3;
|
||||||
ATTACH TABLE table3;
|
ATTACH TABLE table3;
|
||||||
|
SELECT 'After detach:';
|
||||||
|
SELECT partition as p FROM system.parts WHERE table='table3' ORDER BY p;
|
||||||
|
|
||||||
SELECT 'comparison:';
|
SELECT 'comparison:';
|
||||||
SELECT v, v-205 as vv, modulo(vv, 200), moduloLegacy(vv, 200) FROM table1 ORDER BY v;
|
SELECT v, v-205 as vv, modulo(vv, 200), moduloLegacy(vv, 200) FROM table1 ORDER BY v;
|
||||||
|
Loading…
Reference in New Issue
Block a user