You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "ZMZ91 (Jira)" <ji...@apache.org> on 2021/05/10 08:42:00 UTC
[jira] [Updated] (ARROW-12705) [C++][Gandiva] Performance issue for
TreeExprBuilder::MakeIf when nested plenty times.
[ https://issues.apache.org/jira/browse/ARROW-12705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ZMZ91 updated ARROW-12705:
--------------------------
Description:
Run following code, it hangs on the last line. Could you help check is this expected and any idea to optimize the usage? Thanks.
{code:c++}
auto top_node = TreeExprBuilder::MakeField(fielda);
for (int64_t i = 0; i < 20; i++)
{
auto comp_node = TreeExprBuilder::MakeLiteral(i);
auto when = TreeExprBuilder::MakeFunction("greater_than",
{top_node,comp_node}, arrow::boolean());
top_node = TreeExprBuilder::MakeIf(when, top_node, comp_node,
arrow::int64());
}
auto expr = TreeExprBuilder::MakeExpression(top_node, field_result);
std::shared_ptr<Projector> projector;
auto status = Projector::Make(schema, {expr}, TestConfiguration(),
&projector);
{code}
was:
Run following code, it hangs on the last line. Could you help check is this expected and any idea to optimize the usage? Thanks.
```c++
auto top_node = TreeExprBuilder::MakeField(fielda);
for (int64_t i = 0; i < 20; i++) {
auto comp_node = TreeExprBuilder::MakeLiteral(i);
auto when = TreeExprBuilder::MakeFunction("greater_than", \{top_node, comp_node}, arrow::boolean());
top_node = TreeExprBuilder::MakeIf(when, top_node, comp_node, arrow::int64());
}
auto expr = TreeExprBuilder::MakeExpression(top_node, field_result);
std::shared_ptr<Projector> projector;
auto status = Projector::Make(schema, \{expr}, TestConfiguration(), &projector);
```
> [C++][Gandiva] Performance issue for TreeExprBuilder::MakeIf when nested plenty times.
> --------------------------------------------------------------------------------------
>
> Key: ARROW-12705
> URL: https://issues.apache.org/jira/browse/ARROW-12705
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++, C++ - Gandiva
> Reporter: ZMZ91
> Priority: Major
>
> Run following code, it hangs on the last line. Could you help check is this expected and any idea to optimize the usage? Thanks.
> {code:c++}
> auto top_node = TreeExprBuilder::MakeField(fielda);
> for (int64_t i = 0; i < 20; i++)
> {
> auto comp_node = TreeExprBuilder::MakeLiteral(i);
> auto when = TreeExprBuilder::MakeFunction("greater_than",
> {top_node,comp_node}, arrow::boolean());
> top_node = TreeExprBuilder::MakeIf(when, top_node, comp_node,
> arrow::int64());
> }
> auto expr = TreeExprBuilder::MakeExpression(top_node, field_result);
> std::shared_ptr<Projector> projector;
> auto status = Projector::Make(schema, {expr}, TestConfiguration(),
> &projector);
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)