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)
|
||||
{
|
||||
SourceStepWithFilter::updatePrewhereInfo(prewhere_info_value);
|
||||
|
||||
/// Rebuild children plans to apply new prewhere info
|
||||
child_plans.reset();
|
||||
filterTablesAndCreateChildrenPlans();
|
||||
|
||||
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)
|
||||
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)
|
||||
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