mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-29 21:20:49 +00:00
Fix build.
This commit is contained in:
parent
4f133ae036
commit
5ef5ec4e05
@ -44,7 +44,8 @@ namespace ErrorCodes
|
||||
|
||||
ExpressionActions::~ExpressionActions() = default;
|
||||
|
||||
ExpressionActions::ExpressionActions(ActionsDAGPtr actions_dag_, const ExpressionActionsSettings & settings)
|
||||
ExpressionActions::ExpressionActions(ActionsDAGPtr actions_dag_, const ExpressionActionsSettings & settings_)
|
||||
: settings(settings_)
|
||||
{
|
||||
actions_dag = actions_dag_->clone();
|
||||
|
||||
@ -55,8 +56,6 @@ ExpressionActions::ExpressionActions(ActionsDAGPtr actions_dag_, const Expressio
|
||||
|
||||
linearizeActions();
|
||||
|
||||
max_temporary_non_const_columns = settings.max_temporary_non_const_columns;
|
||||
|
||||
if (settings.max_temporary_columns && num_columns > settings.max_temporary_columns)
|
||||
throw Exception(ErrorCodes::TOO_MANY_TEMPORARY_COLUMNS,
|
||||
"Too many temporary columns: {}. Maximum: {}",
|
||||
@ -261,14 +260,14 @@ std::string ExpressionActions::Action::toString() const
|
||||
|
||||
void ExpressionActions::checkLimits(const ColumnsWithTypeAndName & columns) const
|
||||
{
|
||||
if (max_temporary_non_const_columns)
|
||||
if (settings.max_temporary_non_const_columns)
|
||||
{
|
||||
size_t non_const_columns = 0;
|
||||
for (const auto & column : columns)
|
||||
if (column.column && !isColumnConst(*column.column))
|
||||
++non_const_columns;
|
||||
|
||||
if (non_const_columns > max_temporary_non_const_columns)
|
||||
if (non_const_columns > settings.max_temporary_non_const_columns)
|
||||
{
|
||||
WriteBufferFromOwnString list_of_non_const_columns;
|
||||
for (const auto & column : columns)
|
||||
@ -276,7 +275,7 @@ void ExpressionActions::checkLimits(const ColumnsWithTypeAndName & columns) cons
|
||||
list_of_non_const_columns << "\n" << column.name;
|
||||
|
||||
throw Exception("Too many temporary non-const columns:" + list_of_non_const_columns.str()
|
||||
+ ". Maximum: " + std::to_string(max_temporary_non_const_columns),
|
||||
+ ". Maximum: " + std::to_string(settings.max_temporary_non_const_columns),
|
||||
ErrorCodes::TOO_MANY_TEMPORARY_NON_CONST_COLUMNS);
|
||||
}
|
||||
}
|
||||
|
@ -78,12 +78,12 @@ private:
|
||||
ColumnNumbers result_positions;
|
||||
Block sample_block;
|
||||
|
||||
size_t max_temporary_non_const_columns = 0;
|
||||
ExpressionActionsSettings settings;
|
||||
|
||||
public:
|
||||
ExpressionActions() = delete;
|
||||
~ExpressionActions();
|
||||
explicit ExpressionActions(ActionsDAGPtr actions_dag_, const ExpressionActionsSettings & settings);
|
||||
explicit ExpressionActions(ActionsDAGPtr actions_dag_, const ExpressionActionsSettings & settings_);
|
||||
ExpressionActions(const ExpressionActions &) = default;
|
||||
ExpressionActions & operator=(const ExpressionActions &) = default;
|
||||
|
||||
@ -91,6 +91,7 @@ public:
|
||||
const std::list<Node> & getNodes() const { return actions_dag->getNodes(); }
|
||||
const ActionsDAG & getActionsDAG() const { return *actions_dag; }
|
||||
const ColumnNumbers & getResultPositions() const { return result_positions; }
|
||||
const ExpressionActionsSettings & getSettings() const { return settings; }
|
||||
|
||||
/// Get a list of input columns.
|
||||
Names getRequiredColumns() const;
|
||||
|
@ -869,7 +869,9 @@ JoinPtr SelectQueryExpressionAnalyzer::makeTableJoin(
|
||||
const ColumnsWithTypeAndName & right_sample_columns = subquery_for_join.sample_block.getColumnsWithTypeAndName();
|
||||
bool need_convert = syntax->analyzed_join->applyJoinKeyConvert(left_sample_columns, right_sample_columns);
|
||||
if (need_convert)
|
||||
subquery_for_join.addJoinActions(std::make_shared<ExpressionActions>(syntax->analyzed_join->rightConvertingActions()));
|
||||
subquery_for_join.addJoinActions(std::make_shared<ExpressionActions>(
|
||||
syntax->analyzed_join->rightConvertingActions(),
|
||||
ExpressionActionsSettings::fromContext(context)));
|
||||
|
||||
subquery_for_join.join = makeJoin(syntax->analyzed_join, subquery_for_join.sample_block, context);
|
||||
|
||||
|
@ -51,7 +51,7 @@ void SubqueryForSet::addJoinActions(ExpressionActionsPtr actions)
|
||||
auto new_dag = ActionsDAG::merge(
|
||||
std::move(*joined_block_actions->getActionsDAG().clone()),
|
||||
std::move(*actions->getActionsDAG().clone()));
|
||||
joined_block_actions = std::make_shared<ExpressionActions>(new_dag);
|
||||
joined_block_actions = std::make_shared<ExpressionActions>(new_dag, actions->getSettings());
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user