mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
Fix added input.
This commit is contained in:
parent
3eba817a68
commit
2c1539f641
@ -91,7 +91,7 @@ const ActionsDAG::Node & ActionsDAG::addInput(std::string name, DataTypePtr type
|
|||||||
return addNode(std::move(node), can_replace, add_to_index);
|
return addNode(std::move(node), can_replace, add_to_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
const ActionsDAG::Node & ActionsDAG::addInput(ColumnWithTypeAndName column, bool can_replace)
|
const ActionsDAG::Node & ActionsDAG::addInput(ColumnWithTypeAndName column, bool can_replace, bool add_to_index)
|
||||||
{
|
{
|
||||||
Node node;
|
Node node;
|
||||||
node.type = ActionType::INPUT;
|
node.type = ActionType::INPUT;
|
||||||
@ -99,7 +99,7 @@ const ActionsDAG::Node & ActionsDAG::addInput(ColumnWithTypeAndName column, bool
|
|||||||
node.result_name = std::move(column.name);
|
node.result_name = std::move(column.name);
|
||||||
node.column = std::move(column.column);
|
node.column = std::move(column.column);
|
||||||
|
|
||||||
return addNode(std::move(node), can_replace);
|
return addNode(std::move(node), can_replace, add_to_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
const ActionsDAG::Node & ActionsDAG::addColumn(ColumnWithTypeAndName column, bool can_replace, bool materialize)
|
const ActionsDAG::Node & ActionsDAG::addColumn(ColumnWithTypeAndName column, bool can_replace, bool materialize)
|
||||||
@ -1430,7 +1430,7 @@ ActionsDAGPtr ActionsDAG::cloneActionsForConjunction(std::vector<Node *> conjunc
|
|||||||
Node * input;
|
Node * input;
|
||||||
auto & list = required_inputs[col.name];
|
auto & list = required_inputs[col.name];
|
||||||
if (list.empty())
|
if (list.empty())
|
||||||
input = &const_cast<Node &>(actions->addInput(col));
|
input = &const_cast<Node &>(actions->addInput(col, true, false));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
input = list.front();
|
input = list.front();
|
||||||
|
@ -200,7 +200,7 @@ public:
|
|||||||
std::string dumpDAG() const;
|
std::string dumpDAG() const;
|
||||||
|
|
||||||
const Node & addInput(std::string name, DataTypePtr type, bool can_replace = false, bool add_to_index = true);
|
const Node & addInput(std::string name, DataTypePtr type, bool can_replace = false, bool add_to_index = true);
|
||||||
const Node & addInput(ColumnWithTypeAndName column, bool can_replace = false);
|
const Node & addInput(ColumnWithTypeAndName column, bool can_replace = false, bool add_to_index = true);
|
||||||
const Node & addColumn(ColumnWithTypeAndName column, bool can_replace = false, bool materialize = false);
|
const Node & addColumn(ColumnWithTypeAndName column, bool can_replace = false, bool materialize = false);
|
||||||
const Node & addAlias(const std::string & name, std::string alias, bool can_replace = false);
|
const Node & addAlias(const std::string & name, std::string alias, bool can_replace = false);
|
||||||
const Node & addArrayJoin(const std::string & source_name, std::string result_name);
|
const Node & addArrayJoin(const std::string & source_name, std::string result_name);
|
||||||
@ -301,7 +301,7 @@ public:
|
|||||||
/// Pushed condition: z > 0
|
/// Pushed condition: z > 0
|
||||||
/// GROUP BY step will transform columns `x, y, z` -> `sum(x), y, z`
|
/// GROUP BY step will transform columns `x, y, z` -> `sum(x), y, z`
|
||||||
/// If we just add filter step with actions `z -> z > 0` before GROUP BY,
|
/// If we just add filter step with actions `z -> z > 0` before GROUP BY,
|
||||||
/// columns will be transformed like `x, y, z` -> `z, z > 0, x, y` -(remove filter)-> `z, z, y`.
|
/// columns will be transformed like `x, y, z` -> `z, z > 0, x, y` -(remove filter)-> `z, x, y`.
|
||||||
/// To avoid it, add inputs from `all_inputs` list,
|
/// To avoid it, add inputs from `all_inputs` list,
|
||||||
/// so actions `x, y, z -> x, y, z, z > 0` -(remove filter)-> `x, y, z` will not change columns order.
|
/// so actions `x, y, z -> x, y, z, z > 0` -(remove filter)-> `x, y, z` will not change columns order.
|
||||||
ActionsDAGPtr cloneActionsForFilterPushDown(
|
ActionsDAGPtr cloneActionsForFilterPushDown(
|
||||||
|
Loading…
Reference in New Issue
Block a user