-
Notifications
You must be signed in to change notification settings - Fork 25
Add helper fn to construct VirtualTable from go primitives #163
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
base: main
Are you sure you want to change the base?
Conversation
257ba24 to
3bf1356
Compare
3bf1356 to
ed27133
Compare
plan/builders.go
Outdated
| // configuration. The function automatically maps Go types to appropriate Substrait types | ||
| // and handles nil values by converting them to typed null literals. | ||
| // If nullableColumns is nil, all columns default to non-nullable (required). | ||
| VirtualTableFromGoTypes(fieldNames []string, tuples [][]any, nullableColumns []bool) (*VirtualTableReadRel, error) |
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'm not one of the approvers (or reviewers) so... take it or not... I'm not really sure that this kind of logic belongs with the builders. Go types can get pretty complex pretty fast; not sure the library itself should carry this complexity.
But even ignoring the above, if maintainers think it's useful (and , I do think its definitely applicable and a common enough task for Go users of this library), then at least I'd encourage not to expand the Builder interface. I think a standalone function should work just fine; And also, we might want to consider adding it to the "literal" package -- it's a utility that constructs virtual scan from literals; maybe that package is a better home for it?
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.
Hey, thanks for the comment. I think that is a great point. I'll look into moving it to another place briefly. Thanks!
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.
Moved to the literals package 👍
Also, I know that you're not one of the reviewers, but just rerequested you because I want everyone (to the extent possible) to be happy with the change! Thanks
7813813 to
f9bd366
Compare
| // It accepts field names, tuples of polymorphic Go values, and optional nullability configuration. | ||
| // Returns the converted expressions, inferred column types, and any error encountered. | ||
| // If nullableColumns is nil, all columns default to non-nullable (required). | ||
| func VirtualTableFromGoTypes(fieldNames []string, tuples [][]any, nullableColumns []bool) ([]expr.VirtualTableExpressionValue, []types.Type, error) { |
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.
This is much better; but maintainers should do the proper review.
Closes #162