v0.3.0
Pre-release
Pre-release
Changed
EvalExpr.evaluatefunction now returns a Cow ofValueEvaluabletrait'sget_varsfunction returns by ref- Refactor of
partiql-evalcrate- Operators previously implementing
Evaluable(e.g.EvalScan,EvalFilter) are under theeval::evaluablemodule - Expressions previously implementing
EvalExpr(e.g.EvalBinOpExpr,EvalLitExpr) are under theeval::exprmodule
- Operators previously implementing
- Refactor
CallAggpartiql-astnode
Added
- Adds some benchmarks for parsing, compiling, planning, & evaluation
- Implements more built-in functions --
POSITION,OCTET_LEN,BIT_LEN,ABS,MOD,CARDINALITY,OVERLAY - Implements
PIVOToperator in evaluator - Implements
LIKEfor non-string, non-literals serdefeature topartiql-valueandpartiql-logicalwithSerializeandDeserializetraits- Adds
DisplayforLogicalPlan - Expose
partiql_value::parse_ionas a public API - Adds some convenience methods on
Value- Add
Extendimplementations forListandBag - Add methods to iterate a
Tuple's values without zipping its names - Allow
collect()into aTuplewith anyInto<String>
- Add
- Parse
OUTER UNION/INTERSECT/EXCEPT - Parse
WITHclause - Implements
LIMITandOFFSEToperators in evaluator DATE/TIME/TIMESTAMPvalues- Parse
TABLE <id>references - Implements
GROUP BYoperator in evaluator - Implements
HAVINGoperator in evaluator - Implements
ORDER BYoperator in evaluator - Implements SQL aggregation functions (
AVG,COUNT,MAX,MIN,SUM) in evaluator
Fixes
- Some performance improvements from removing extraneous
clones and tweaking buffer sizes - Fix off by one error when checking preconditions to lower join
ON - Recognize aggregate fn names in parser
- Pass-through comments when processing special forms
- Make
BY <x>optional inGROUPclause - Fix
JOINparsing by defaulting toINNERand allowing elision of keywords - Allow un-parenthesized subquery as the only argument of a function in parser
- Fix handling of List/Bag/Tuple in keyword argument preprocessing in parser
- Fixes Tuple value duplicate equality and hashing
- Properly skip comments when parsing