Skip to content

Commit

Permalink
Update CHANGELOG ahead of 0.3.0 release (#338)
Browse files Browse the repository at this point in the history
  • Loading branch information
alancai98 committed Apr 11, 2023
1 parent 17fd6e7 commit ccee459
Showing 1 changed file with 30 additions and 5 deletions.
35 changes: 30 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]
### Changed
- `EvalExpr.evaluate` function now returns a [Cow](https://doc.rust-lang.org/std/borrow/enum.Cow.html) of `Value`
- `Evaluable` trait's `get_vars` function returns by ref
- Refactor of `partiql-eval` crate
- Operators previously implementing `Evaluable` (e.g. `EvalScan`, `EvalFilter`) are under the `eval::evaluable` module
- Expressions previously implementing `EvalExpr` (e.g. `EvalBinOpExpr`, `EvalLitExpr`) are under the `eval::expr` module
- Refactor `CallAgg` `partiql-ast` node

### Added
- `DATE`/`TIME`/`TIMESTAMP` values
- Implements `LIMIT` and `OFFSET` operators in evaluator
- Adds some benchmarks for parsing, compiling, planning, & evaluation
- Implements more built-in functions -- `POSITION`, `OCTET_LEN`, `BIT_LEN`, `ABS`, `MOD`, `CARDINALITY`, `OVERLAY`
- Implements `PIVOT` operator in evaluator
- `serde` feature to `partiql-value` and `partiql-logical` with `Serialize` and `Deserialize` traits.
- Implements `LIKE` for non-string, non-literals
- `serde` feature to `partiql-value` and `partiql-logical` with `Serialize` and `Deserialize` traits
- Adds `Display` for `LogicalPlan`
- Expose `partiql_value::parse_ion` as a public API.
- Expose `partiql_value::parse_ion` as a public API
- Adds some convenience methods on `Value`
- Add `Extend` implementations for `List` and `Bag`
- Add methods to iterate a `Tuple`'s values without zipping its names
- Allow `collect()` into a `Tuple` with any `Into<String>`
- Parse `OUTER UNION`/`INTERSECT`/`EXCEPT`
- Parse `WITH` clause
- Implements `LIMIT` and `OFFSET` operators in evaluator
- `DATE`/`TIME`/`TIMESTAMP` values
- Parse `TABLE <id>` references
- Implements `GROUP BY` operator in evaluator
- Implements `HAVING` operator in evaluator
- Implements `ORDER BY` operator in evaluator
- Implements SQL Aggregation functions -- AVG, COUNT, MAX, MIN, SUM
- Implements SQL aggregation functions (`AVG`, `COUNT`, `MAX`, `MIN`, `SUM`) in evaluator

### Fixes
- Some performance improvements from removing extraneous `clone`s 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 in `GROUP` clause
- Fix `JOIN` parsing by defaulting to `INNER` and 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

## [0.2.0] - 2023-01-10
### Changed
Expand Down Expand Up @@ -89,3 +113,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[Unreleased]: https://github.com/partiql/partiql-lang-rust/compare/v0.2.0...HEAD
[0.1.0]: https://github.com/partiql/partiql-lang-rust/releases/tag/v0.1.0
[0.2.0]: https://github.com/partiql/partiql-lang-rust/releases/tag/v0.2.0
[0.3.0]: https://github.com/partiql/partiql-lang-rust/releases/tag/v0.3.0

1 comment on commit ccee459

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PartiQL (rust) Benchmark

Benchmark suite Current: ccee459 Previous: 17fd6e7 Ratio
parse-1 6241 ns/iter (± 47) 6959 ns/iter (± 118) 0.90
parse-15 60181 ns/iter (± 74) 67651 ns/iter (± 902) 0.89
parse-30 120538 ns/iter (± 271) 137684 ns/iter (± 2259) 0.88
compile-1 5118 ns/iter (± 8) 5618 ns/iter (± 118) 0.91
compile-15 36925 ns/iter (± 25) 40914 ns/iter (± 586) 0.90
compile-30 75899 ns/iter (± 92) 81308 ns/iter (± 1989) 0.93
plan-1 19442 ns/iter (± 213) 22056 ns/iter (± 533) 0.88
plan-15 361533 ns/iter (± 732) 419242 ns/iter (± 4841) 0.86
plan-30 733630 ns/iter (± 1122) 839189 ns/iter (± 19369) 0.87
eval-1 21441586 ns/iter (± 133055) 26300062 ns/iter (± 650598) 0.82
eval-15 122726231 ns/iter (± 431153) 136098701 ns/iter (± 2210380) 0.90
eval-30 240696104 ns/iter (± 403089) 255607807 ns/iter (± 4204209) 0.94
join 14324 ns/iter (± 34) 16780 ns/iter (± 502) 0.85
simple 5511 ns/iter (± 3) 5885 ns/iter (± 132) 0.94
simple-no 2397 ns/iter (± 1) 2459 ns/iter (± 63) 0.97
numbers 107 ns/iter (± 0) 168 ns/iter (± 4) 0.64
parse-simple 706 ns/iter (± 0) 770 ns/iter (± 17) 0.92
parse-ion 2735 ns/iter (± 19) 2896 ns/iter (± 66) 0.94
parse-group 8966 ns/iter (± 24) 9997 ns/iter (± 141) 0.90
parse-complex 22500 ns/iter (± 68) 25598 ns/iter (± 421) 0.88
parse-complex-fexpr 34062 ns/iter (± 112) 40720 ns/iter (± 555) 0.84

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.