mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 01:25:21 +00:00
Fix THERE_IS_NO_COLUMN error in case move to PREWHERE applied to storage merge inside another table function
This commit is contained in:
parent
2cba91f555
commit
ac22904ff2
@ -405,6 +405,11 @@ ReadFromMerge::ReadFromMerge(
|
|||||||
void ReadFromMerge::updatePrewhereInfo(const PrewhereInfoPtr & prewhere_info_value)
|
void ReadFromMerge::updatePrewhereInfo(const PrewhereInfoPtr & prewhere_info_value)
|
||||||
{
|
{
|
||||||
SourceStepWithFilter::updatePrewhereInfo(prewhere_info_value);
|
SourceStepWithFilter::updatePrewhereInfo(prewhere_info_value);
|
||||||
|
|
||||||
|
/// Rebuild children plans to apply new prewhere info
|
||||||
|
child_plans.reset();
|
||||||
|
filterTablesAndCreateChildrenPlans();
|
||||||
|
|
||||||
common_header = applyPrewhereActions(common_header, prewhere_info);
|
common_header = applyPrewhereActions(common_header, prewhere_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -879,6 +884,9 @@ SelectQueryInfo ReadFromMerge::getModifiedQueryInfo(const ContextMutablePtr & mo
|
|||||||
if (modified_query_info.optimized_prewhere_info && !modified_query_info.prewhere_info)
|
if (modified_query_info.optimized_prewhere_info && !modified_query_info.prewhere_info)
|
||||||
modified_query_info.prewhere_info = modified_query_info.optimized_prewhere_info;
|
modified_query_info.prewhere_info = modified_query_info.optimized_prewhere_info;
|
||||||
|
|
||||||
|
if (prewhere_info && !modified_query_info.prewhere_info)
|
||||||
|
modified_query_info.prewhere_info = prewhere_info;
|
||||||
|
|
||||||
if (modified_query_info.planner_context)
|
if (modified_query_info.planner_context)
|
||||||
modified_query_info.planner_context = std::make_shared<PlannerContext>(modified_context, modified_query_info.planner_context);
|
modified_query_info.planner_context = std::make_shared<PlannerContext>(modified_context, modified_query_info.planner_context);
|
||||||
|
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
a1451105-722e-4fe7-bfaa-65ad2ae249c2 whatever
|
||||||
|
a1451105-722e-4fe7-bfaa-65ad2ae249c2 whatever
|
||||||
|
a1451105-722e-4fe7-bfaa-65ad2ae249c2 whatever
|
||||||
|
a1451105-722e-4fe7-bfaa-65ad2ae249c2 whatever
|
||||||
|
a1451105-722e-4fe7-bfaa-65ad2ae249c2 whatever
|
||||||
|
a1451105-722e-4fe7-bfaa-65ad2ae249c2 whatever
|
||||||
|
a1451105-722e-4fe7-bfaa-65ad2ae249c2 whatever
|
@ -0,0 +1,41 @@
|
|||||||
|
-- Tags: distributed
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS ids;
|
||||||
|
DROP TABLE IF EXISTS data;
|
||||||
|
DROP TABLE IF EXISTS data2;
|
||||||
|
|
||||||
|
CREATE TABLE ids (id UUID, whatever String) Engine=MergeTree ORDER BY tuple();
|
||||||
|
INSERT INTO ids VALUES ('a1451105-722e-4fe7-bfaa-65ad2ae249c2', 'whatever');
|
||||||
|
|
||||||
|
CREATE TABLE data (id UUID, event_time DateTime, status String) Engine=MergeTree ORDER BY tuple();
|
||||||
|
INSERT INTO data VALUES ('a1451105-722e-4fe7-bfaa-65ad2ae249c2', '2000-01-01', 'CREATED');
|
||||||
|
|
||||||
|
CREATE TABLE data2 (id UUID, event_time DateTime, status String) Engine=MergeTree ORDER BY tuple();
|
||||||
|
INSERT INTO data2 VALUES ('a1451105-722e-4fe7-bfaa-65ad2ae249c2', '2000-01-02', 'CREATED');
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
whatever
|
||||||
|
FROM ids AS l
|
||||||
|
INNER JOIN merge(currentDatabase(), 'data*') AS s ON l.id = s.id
|
||||||
|
WHERE (status IN ['CREATED', 'CREATING'])
|
||||||
|
ORDER BY event_time DESC
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
whatever
|
||||||
|
FROM ids AS l
|
||||||
|
INNER JOIN clusterAllReplicas(test_cluster_two_shards, merge(currentDatabase(), 'data*')) AS s ON l.id = s.id
|
||||||
|
WHERE (status IN ['CREATED', 'CREATING'])
|
||||||
|
ORDER BY event_time DESC
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
whatever
|
||||||
|
FROM ids AS l
|
||||||
|
INNER JOIN view(SELECT * FROM merge(currentDatabase(), 'data*')) AS s ON l.id = s.id
|
||||||
|
WHERE (status IN ['CREATED', 'CREATING'])
|
||||||
|
ORDER BY event_time DESC
|
||||||
|
;
|
Loading…
Reference in New Issue
Block a user