mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-17 21:24:28 +00:00
Added processing stage check for StorageMerge. [#CLICKHOUSE-3694] #2156
This commit is contained in:
parent
4f7c284d34
commit
60f0ed9296
@ -171,11 +171,20 @@ BlockInputStreams StorageMerge::read(
|
|||||||
|
|
||||||
const ASTPtr & query = query_info.query;
|
const ASTPtr & query = query_info.query;
|
||||||
|
|
||||||
/// If PREWHERE is used in query, you need to make sure that all tables support this.
|
for (const auto & elem : selected_tables)
|
||||||
if (typeid_cast<const ASTSelectQuery &>(*query).prewhere_expression)
|
{
|
||||||
for (const auto & elem : selected_tables)
|
/// Check processing stage again in case new table was added after getQueryProcessingStage call.
|
||||||
|
auto stage = elem.first->getQueryProcessingStage(context);
|
||||||
|
if (stage != processed_stage)
|
||||||
|
throw Exception("Source tables for Merge table are processing data up to different stages",
|
||||||
|
ErrorCodes::INCOMPATIBLE_SOURCE_TABLES);
|
||||||
|
|
||||||
|
/// If PREWHERE is used in query, you need to make sure that all tables support this.
|
||||||
|
if (typeid_cast<const ASTSelectQuery &>(*query).prewhere_expression)
|
||||||
if (!elem.first->supportsPrewhere())
|
if (!elem.first->supportsPrewhere())
|
||||||
throw Exception("Storage " + elem.first->getName() + " doesn't support PREWHERE.", ErrorCodes::ILLEGAL_PREWHERE);
|
throw Exception("Storage " + elem.first->getName() + " doesn't support PREWHERE.",
|
||||||
|
ErrorCodes::ILLEGAL_PREWHERE);
|
||||||
|
}
|
||||||
|
|
||||||
Block virtual_columns_block = getBlockWithVirtualColumns(selected_tables);
|
Block virtual_columns_block = getBlockWithVirtualColumns(selected_tables);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user