Skip to content

Conversation

@benbellick
Copy link
Member

Closes #162

@benbellick benbellick marked this pull request as ready for review September 4, 2025 16:32
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)
Copy link
Contributor

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?

Copy link
Member Author

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!

Copy link
Member Author

@benbellick benbellick Sep 4, 2025

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

// 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) {
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add helper to construct virtual tables from go primitives

2 participants