-
Notifications
You must be signed in to change notification settings - Fork 447
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[GLUTEN-5643] Fix the failure when the pre-project of GenerateExec falls back #6167
Conversation
Run Gluten Clickhouse CI |
3 similar comments
Run Gluten Clickhouse CI |
Run Gluten Clickhouse CI |
Run Gluten Clickhouse CI |
cbecf17
to
2496f2a
Compare
Run Gluten Clickhouse CI |
1 similar comment
Run Gluten Clickhouse CI |
@xumingming Could you help to review? Thanks! |
Sure, will do the first round of review in the recent days. |
@marin-ma I understand Project might fallback(some function not supported?), but I don't understand why we should consider ValueStreamNode as valid, can you elaborate? |
@xumingming |
} else { | ||
auto name = child->outputType()->names()[index]; | ||
auto field = child->outputType()->childAt(index); | ||
std::cout << "name: " << name << "type: " << field->toString() << std::endl; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: field -> type, remove the std::cout?
VELOX_CHECK( | ||
projNode != nullptr && projNode->names().size() > requiredChildOutput.size(), | ||
std::dynamic_pointer_cast<const core::ProjectNode>(childNode) != nullptr || | ||
std::dynamic_pointer_cast<const ValueStreamNode>(childNode) != nullptr, | ||
"injectedProject is true, but the Project is missing or does not have the corresponding projection field") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The error message need to be updated to reflect the code change.
Run Gluten Clickhouse CI |
Currently, if GenerateExec needs a pre-project, only ProjectNode is allowed in the native substrait -> Velox PlanNode transformation. Query would fail if the pre-project of GenerateExec falls back due to native validation failure. We should consider
ValueStreamNode
as valid in case of pre-project fallback.Introduce
VeloxDummyExpression
for test purpose. An expression wrapped byVeloxDummyExpression
can mock the case when a certain expression is supported by Gluten, but it fails on native validation.