Experimental Go bindings for substrait
This is work in progress still, things still to do:
- Expression parsing
- Reading in extension yamls
- CI building and testing the implementation
- Serialization/Deserialization of some expression types:
- IfThen
- SwitchExpression
- SingularOrList
- MultiOrList
- Cast
- Nested
- Subquery
- Serialization/Deserialization of Plan and Relations
- Plan
- PlanRel
- Rel
- ReadRel
- FilterRel
- FetchRel
- AggregateRel
- SortRel
- JoinRel
- ProjectRel
- SetRel
- ExtensionSingleRel
- ExtensionMultiRel
- ExtensionLeafRel
- CrossRel
- HashJoinRel
- MergeJoinRel
- DdlRel
- WriteRel
- ExchangeRel
- Plan Building helpers
- ReadRel
- NamedScanReadRel
- VirtualTableReadRel
- ExtensionTableReadRel
- LocalFileReadRel
- FilterRel
- FetchRel
- AggregateRel
- SortRel
- JoinRel
- ProjectRel
- SetRel
- CrossRel
- HashJoinRel
- MergeJoinRel
- DdlRel
- WriteRel
- ExchangeRel
- ReadRel
As this is built out, you can expect refactors and other changes to the structure of the package for the time being. The API should not yet be considered stable.
Protobuf bindings come from substrait-protobuf.