0.46.0 (2024-12-01)
0.45.1 (2024-11-24)
0.45.0 (2024-10-27)
- spark: Spark TimestampNTZType is now emitted as Substrait PrecisionTimestamp
- spark: Spark TimestampType is now emitted as Substrait PrecisionTimestampTZ
feat(core): added support for Expression.EmptyMapLiteral
- spark: add Window support (#307) (b3f61a2)
- spark: additional type and literal support (#311) (513a049)
- spark: bitwise functions (#309) (b8ccd8b)
- spark: convert VirtualTableScan to LocalRelation (#312) (3f2cc1e)
- spark: enable upper/lower/concat/coalesce string functions (#308) (fc8a764)
- propagate sorts in aggregate function invocation proto->rel (#313) (75ebac2)
- spark: nullability of output columns of expand relation (#310) (6413e55)
0.44.0 (2024-10-20)
- spark: map EqualNullSafe fn to is_not_distinct_from (#306) (357cc01)
- spark: support conversion of boolean types (#305) (d5452ad)
0.43.0 (2024-10-13)
0.42.0 (2024-10-06)
- EXCEPT ALL and INTERSECT ALL now output different SetOps
- spark: add MakeDecimal support (#298) (eec9727)
- spark: support UNION ALL in SparkSql (#301) (b55d8b0)
0.41.0 (2024-09-29)
0.40.0 (2024-09-22)
- IntervalDay now has "subsecond" and "precision" fields instead of "microseconds". Old protobufs should be still read correctly.
0.39.0 (2024-09-01)
0.38.1 (2024-08-18)
- core: output nullability of IfThen depends on all possible outputs (a0ca17b)
- core: wrong type derivation for ConsistentPartitionWindow (#286) (60575b3)
0.38.0 (2024-08-11)
0.37.0 (2024-07-21)
- AdvancedExtension#getOptimization() has been removed. Use getOptimizations() instead.
- literal support for precision timestamp types (#283) (94996f9)
- validate VirtualTableScan field names with schema (#284) (0f8514a)
0.36.0 (2024-07-14)
- Expression#options now returns List
- ProtoAggregateFunctionConverter#from(AggregateFunction) now returns AggregateFunctionInvocation
0.35.0 (2024-06-30)
- deprecate Timestamp and TimestampTZ visit functions (#273) (8a8253e)
- introduce substrait-spark module (#271) (8537dca)
0.34.0 (2024-06-23)
- getDfsNames() has been removed from VirtualTableScan
- getInitialSchema() not longer has a default implementation in VirtualTableScan
0.33.0 (2024-06-16)
0.32.0 (2024-06-04)
- Substrait FP32 is now mapped to Calcite REAL instead of FLOAT
- Calcite FLOAT is now mapped to Substrait FP64 instead of FP32
In Calcite, the Sql Type Names DOUBLE and FLOAT correspond to FP64, and REAL corresponds to FP32
- account for struct fields in VirtualTableScan check (#255) (3bbcf82)
- map Calcite REAL to Substrait FP32 (#261) (37331c2)
0.31.0 (2024-05-05)
- isthumus: CLI related functionality is now in the io.substrait.isthmus.cli package
- allow deployment time selection of logging framework #243 (#244) (72bab63)
- isthumus: extract CLI into isthmus-cli project #248 (#249) (a49de62)
0.30.0 (2024-04-28)
- ParameterizedTypeVisitor has new visit methods
- TypeExpressionVisitor has new visit methods
- TypeVisitor has new visit methods
- BaseProtoTypes has new visit methods
0.29.1 (2024-03-31)
0.29.0 (2024-03-17)
- isthmus: method ExpressionCreator.cast(Type, Expression) has been removed
0.28.1 (2024-03-10)
0.28.0 (2024-02-25)
- isthmus: add WindowRelFunctionConverter (#234) (a5e1a21)
- isthmus: improve signature matching for functions with wildcard arguments (#226) (ec1887c)
- disable task caches in the gradle build (#233) (7879f2b)
- isthmus: allow for conversion of plans containing Calcite SqlAggFunctions (#230) (0bdac49), closes #180
0.27.0 (2024-02-18)
- ExpressionVisitor now has a
visit(Expression.EmptyListLiteral)
method - LiteralConstructorConverter constructor now requires a TypeConverter
- add support for empty list literals (#227) (2a98e3c)
- pojo: add POJO representation and converters for ConsistentPartitionWindowRel (#231) (f148bbb)
- support for user-defined type literals (#232) (ca8187f)
0.26.0 (2024-02-11)
- isthmus: support for replace (#224) (e96f4ba)
- isthmus: support for SQL expressions in CLI (#209) (e63388d)
0.25.0 (2024-01-21)
-
isthmus: signatures for aggregate building utils have changed
-
feat: additional builder methods for arithmetic aggregate functions
-
feat: sortField builder method
-
feat: grouping builder method
-
feat: add, subtract, multiply, divide and negate methods for builder
-
refactor: extract row matching assertions to PlanTestBase
-
feat(isthmus): improved Calcite support for Substrait Aggregate rels
-
refactor: builder functions for aggregates and aggregate functions now consume and return Aggregate.Measure instead of AggregateFunctionInvocation
- enable conversion of SQL expressions to Substrait ExtendedExpressions (#191) (750220e)
- improved error messages for Substrait conversion failures (#221) (#222) (8c70245)
- isthmus: improved Calcite support for Substrait Aggregate rels (#214) (1689c93)
0.24.0 (2024-01-07)
- introduce DefaultExtensionCatalog (#217) (35f9b62)
- isthmus: additional output formats for cli (#216) (6e62f46)
0.23.0 (2023-12-18)
- isthmus: support for char_length (#212) (7424483)
- pojo: support for extended expressions (#206) (9e023a7)
0.22.0 (2023-11-26)
0.21.0 (2023-11-19)
0.20.0 (2023-11-07)
- RelCopyOnWriteVisitor now extends RelVisitor and has generic type parameter
- exhaustive copy on write visitors (#199) (39c56ab)
- improved ReadRel handling (#194) (6548670)
- initial NestedLoopJoin support (#188) (b66d5b1)
0.19.0 (2023-10-29)
0.18.0 (2023-09-24)
- StrLiteral is no longer converted to CHAR()
fix(isthmus): convert BinaryLiteral to VARBINARY
- BinaryLiteral is no longer converted to BINARY)
- calcite: Isthmus no longer uses Calcite built-in MAX, MIN, SUM, SUM0 and AVG functions
- calcite: removed REQUIRED and NULLABLE fields from Type interface
- calcite: dedicated Substrait MAX, MIN, SUM, SUM0 and AVG functions (#180) (477b63e)
- extend literal conversion support (#183) (6e82f39)
0.17.0 (2023-09-17)
- EnumArgument, TypeArgument and ValueArgument are now abstract
- visit over core substrait types (#178)
- calcite: support reading in list and map literals (#177) (e8a2645)
- use Immutables for Argument subclasses (#179) (edfc65f)
- visit over core substrait types (#178) (6bee452)
0.16.0 (2023-09-06)
-
- windowFunction expression creator now requires window bound type parameter
-
the WindowBound POJO representation has been reworked to use visitation and more closely match the spec
-
ExpressionRexConverter now requires a WindowFunctionConverter
0.15.0 (2023-08-20)
- pojos: various public functions that took the AggregateFunction.AggregationInvocation proto now take the POJO equivalent Expression.AggregationInvocation.
- implement fractional second intervals (#167) (68aa7c4)
- support reading Substrait plans with Window Functions (#165) (93c6db5)
0.14.1 (2023-08-06)
0.14.0 (2023-07-23)
0.13.0 (2023-07-16)
0.12.1 (2023-06-18)
0.12.0 (2023-06-06)
- TypeConverter no longer uses static methods
- SimpleExtension.MAPPER has been replaced with SimpleExtension.objectMapper(String namespace)
- handle user-defined types in Isthmus (#149) (7d7acf8)
- support IfThen translation from Substrait to Calcite (#151) (f505c23)
0.11.0 (2023-05-28)
- rename and move extension associated code (#148)
0.10.0 (2023-05-15)
- add comparison function mappings (#142) (77f2744)
- support proto <-> pojo custom type conversion (#144) (9a12e60)
- upgrade calcite to 1.34.0 (#146) (02b0f17)
0.9.0 (2023-04-30)
0.8.0 (2023-04-09)
- Use commonExtension to indicate that these extensions are associated with the RelCommon message
- Use relExtension to indicate that these extensions are associated directly with Rels
0.7.0 (2023-03-12)
0.6.0 (2023-03-05)
0.5.0 (2023-02-05)
0.4.0 (2023-01-29)
0.3.0 (2023-01-19)
- SubstraitRelNodeConverter constructor has changed