-
Notifications
You must be signed in to change notification settings - Fork 26
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
Support CTAS #125
Support CTAS #125
Conversation
return proj->CreateRel(create_table->schema_name, create_table->table_name); | ||
} | ||
default: | ||
return child; |
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.
returning child here seems weird. what's the reasoning?
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.
It'd be useful to document this branch as well with the answer. I'm guessing we're treating this as a no-op for all non-write operations.
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.
RootOp is always a ProjectionRelation for read operations (existing code). ProjRel is added in line 820. For write_op we should return the child relation without adding projection. Only CTAS needed to handle column names here.
Any unsupported write op we throw an exception above in TransformOp, so here we should just return the child.
I can add below comment in next PR if it is helpful.
// return child relation for other supported write operations (INSERT, DELETE)
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.
I don't understand why would we wouldn't throw here. It sounds like you're saying that code above is going to throw so we just return something random here. And what's wrong with adding a projection relation?
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.
Let's merge this change and open an issue to follow-up on better clarity around why we have these weird specialized cases outside of individual transform ops.
As mentioned, going to merge this or as part of cherry picking from other branch and then reevaluate in subsequent issue. |
No description provided.