From d3118f0a763314a3d65b850e59881f38c290cfab Mon Sep 17 00:00:00 2001 From: Nikolai Kochetov Date: Mon, 25 Nov 2019 15:57:14 +0300 Subject: [PATCH] Support SAMPLE and FINAL together in MergeTree. --- .../src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp b/dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp index 3dbdca52af8..b453f62ab40 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp +++ b/dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp @@ -459,10 +459,11 @@ Pipes MergeTreeDataSelectExecutor::readFromParts( ASTPtr sampling_key_ast = data.getSamplingKeyAST(); if (select.final()) { - auto sampling_column_name = sampling_key_ast->getColumnName(); - sampling_key_ast = std::make_shared(sampling_column_name); + sampling_key_ast = std::make_shared(data.sampling_expr_column_name); + /// We do spoil available_real_columns here, but it is not used later. - available_real_columns.emplace_back(std::move(sampling_column_name)); + auto sampling_column_type = data.primary_key_sample.getByName(data.sampling_expr_column_name).type; + available_real_columns.emplace_back(data.sampling_expr_column_name, std::move(type)); } if (has_lower_limit)