Fix tests.

This commit is contained in:
Nikolai Kochetov 2020-11-11 14:15:25 +03:00
parent 1846bb3cac
commit bd15b4e77f
2 changed files with 8 additions and 15 deletions

View File

@ -69,9 +69,6 @@ ExpressionActions::ExpressionActions(ActionsDAGPtr actions_dag_)
throw Exception(ErrorCodes::TOO_MANY_TEMPORARY_COLUMNS,
"Too many temporary columns: {}. Maximum: {}",
actions_dag->dumpNames(), std::to_string(settings.max_temporary_columns));
max_temporary_non_const_columns = settings.max_temporary_non_const_columns;
project_input = settings.project_input;
}
ExpressionActionsPtr ExpressionActions::clone() const
@ -259,6 +256,7 @@ std::string ExpressionActions::Action::toString() const
void ExpressionActions::checkLimits(const ColumnsWithTypeAndName & columns) const
{
auto max_temporary_non_const_columns = actions_dag->getSettings().max_temporary_non_const_columns;
if (max_temporary_non_const_columns)
{
size_t non_const_columns = 0;
@ -440,7 +438,7 @@ void ExpressionActions::execute(Block & block, size_t & num_rows, bool dry_run)
}
}
if (project_input)
if (actions_dag->getSettings().project_input)
{
block.clear();
}
@ -528,7 +526,7 @@ std::string ExpressionActions::dumpActions() const
for (const auto & output_column : output_columns)
ss << output_column.name << " " << output_column.type->getName() << "\n";
ss << "\nproject input: " << project_input << "\noutput positions:";
ss << "\nproject input: " << actions_dag->getSettings().project_input << "\noutput positions:";
for (auto pos : result_positions)
ss << " " << pos;
ss << "\n";
@ -706,6 +704,7 @@ ActionsDAGPtr ActionsDAG::splitActionsBeforeArrayJoin(const NameSet & array_join
auto split_actions = cloneEmpty();
split_actions->nodes.swap(split_nodes);
split_actions->index.swap(split_index);
split_actions->settings.project_input = false;
return split_actions;
}

View File

@ -273,8 +273,10 @@ private:
};
/** Contains a sequence of actions on the block.
*/
/// Sequence of actions on the block.
/// Is used to calculate expressions.
///
/// Takes ActionsDAG and orders actions using top-sort.
class ExpressionActions
{
public:
@ -313,11 +315,6 @@ private:
ColumnNumbers result_positions;
Block sample_block;
/// This flag means that all columns except input will be removed from block before execution.
bool project_input = false;
size_t max_temporary_non_const_columns = 0;
friend class ActionsDAG;
public:
@ -330,9 +327,6 @@ public:
const std::list<Node> & getNodes() const { return actions_dag->getNodes(); }
const ActionsDAG & getActionsDAG() const { return *actions_dag; }
/// Adds to the beginning the removal of all extra columns.
void projectInput() { project_input = true; }
/// Get a list of input columns.
Names getRequiredColumns() const;
const NamesAndTypesList & getRequiredColumnsWithTypes() const { return required_columns; }