@@ -718,11 +718,12 @@ ColumnPtr filterWithBlanks(ColumnPtr src_column, const IColumn::Filter & filter,
718718NotJoinedBlocks::NotJoinedBlocks (std::unique_ptr<RightColumnsFiller> filler_,
719719 const Block & result_sample_block_,
720720 size_t left_columns_count,
721- const LeftToRightKeyRemap & left_to_right_key_remap )
721+ const TableJoin & table_join )
722722 : filler(std::move(filler_))
723723 , saved_block_sample(filler->getEmptyBlock ())
724724 , result_sample_block(materializeBlock(result_sample_block_))
725725{
726+ const auto & left_to_right_key_remap = table_join.leftToRightKeyRemap ();
726727 for (size_t left_pos = 0 ; left_pos < left_columns_count; ++left_pos)
727728 {
728729 // / We need right 'x' for 'RIGHT JOIN ... USING(x)'
@@ -739,14 +740,21 @@ NotJoinedBlocks::NotJoinedBlocks(std::unique_ptr<RightColumnsFiller> filler_,
739740
740741 // / `saved_block_sample` may contains non unique column names, get any of them
741742 // / (e.g. in case of `... JOIN (SELECT a, a, b FROM table) as t2`)
742- for (const auto & [name , right_pos] : saved_block_sample.getNamesToIndexesMap ())
743+ for (const auto & [right_name , right_pos] : saved_block_sample.getNamesToIndexesMap ())
743744 {
745+ String column_name (right_name);
746+ if (table_join.getStorageJoin ())
747+ {
748+ // / StorageJoin operates with original non qualified column names, so apply renaming here
749+ column_name = table_join.renamedRightColumnName (column_name);
750+ }
751+
744752 // / Start from left_columns_count to don't remap left keys twice. We need only qualified right keys here
745753 // / `result_sample_block` may contains non unique column names, need to set index for all of them
746754 for (size_t result_pos = left_columns_count; result_pos < result_sample_block.columns (); ++result_pos)
747755 {
748756 const auto & result_name = result_sample_block.getByPosition (result_pos).name ;
749- if (result_name == name )
757+ if (result_name == column_name )
750758 setRightIndex (right_pos, result_pos);
751759 }
752760 }
0 commit comments