diff --git a/CHANGELOG.md b/CHANGELOG.md index 29424bb5..9795d8aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Changed +### Added + +### Fixed + +## [0.6.0] - 2023-10-31 +### Changed - *BREAKING:* partiql-value: `BindingsName` changed to hold `Cow` rather than `String` - *BREAKING:* partiql-eval: Construction of expression evaluators changed to separate binding from evaluation of expression. & implement strict eval - *BREAKING:* partiql-value: `Value` trait's `is_null_or_missing` renamed to `is_absent` @@ -41,7 +47,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add `COUNT(*)` implementation - Add `to_vec` method to `List` and `Bag` to convert to a `Vec` -### Fixes +### Fixed - Fixes parsing of multiple consecutive path wildcards (e.g. `a[*][*][*]`), unpivot (e.g. `a.*.*.*`), and path expressions (e.g. `a[1 + 2][3 + 4][5 + 6]`)—previously these would not parse correctly. - partiql-parser set quantifier for bag operators fixed to `DISTINCT` - partiql-parser set quantifier for bag operators fixed to be `DISTINCT` when unspecified @@ -60,13 +66,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Ability to add and view errors during evaluation with partiql-eval's `EvalContext` - AST sub-trees representing literal values are lowered to `Value`s during planning -### Fixes +### Fixed ## [0.4.1] - 2023-05-25 ### Changed - partiql-extension-ion-functions : Made `IonExtension` `pub` ### Added -### Fixes +### Fixed ## [0.4.0] - 2023-05-24 ### Changed @@ -86,7 +92,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add `partiql-catalog` including an experimental `Catalog` interface and implementation - Implements the `COLL_*` functions -- `COLL_AVG`, `COLL_COUNT`, `COLL_MAX`, `COLL_MIN`, `COLL_SUM` - Adds AST to logical plan lowering for `IN` expressions -### Fixes +### Fixed - Fix parsing of `EXTRACT` datetime parts `YEAR`, `TIMEZONE_HOUR`, and `TIMEZONE_MINUTE` - Fix logical plan to eval plan conversion for `EvalOrderBySortSpec` with arguments `DESC` and `NULLS LAST` - Fix parsing of `EXTRACT` to allow keywords after the `FROM` @@ -122,7 +128,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Implements `ORDER BY` operator in evaluator - Implements SQL aggregation functions (`AVG`, `COUNT`, `MAX`, `MIN`, `SUM`) in evaluator -### Fixes +### Fixed - 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 @@ -196,7 +202,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - PartiQL Playground proof of concept (POC) - PartiQL CLI with REPL and query visualization features -[Unreleased]: https://github.com/partiql/partiql-lang-rust/compare/v0.5.0...HEAD +[Unreleased]: https://github.com/partiql/partiql-lang-rust/compare/v0.6.0...HEAD +[0.6.0]: https://github.com/partiql/partiql-lang-rust/releases/tag/v0.6.0 [0.5.0]: https://github.com/partiql/partiql-lang-rust/releases/tag/v0.5.0 [0.4.1]: https://github.com/partiql/partiql-lang-rust/releases/tag/v0.4.1 [0.4.0]: https://github.com/partiql/partiql-lang-rust/releases/tag/v0.4.0 diff --git a/Cargo.toml b/Cargo.toml index 77d41bf1..29a97dc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ authors = ["PartiQL Team "] homepage = "https://github.com/partiql/partiql-lang-rust" repository = "https://github.com/partiql/partiql-lang-rust" -version = "0.5.0" +version = "0.6.0" edition = "2021" [workspace] diff --git a/extension/partiql-extension-ion-functions/Cargo.toml b/extension/partiql-extension-ion-functions/Cargo.toml index f4b4640a..1c1ea734 100644 --- a/extension/partiql-extension-ion-functions/Cargo.toml +++ b/extension/partiql-extension-ion-functions/Cargo.toml @@ -21,10 +21,10 @@ edition.workspace = true bench = false [dependencies] -partiql-extension-ion = {path = "../partiql-extension-ion", version = "0.5.*" } -partiql-value = { path = "../../partiql-value", version = "0.5.*" } -partiql-catalog = { path = "../../partiql-catalog", version = "0.5.*" } -partiql-logical = { path = "../../partiql-logical", version = "0.5.*" } +partiql-extension-ion = {path = "../partiql-extension-ion", version = "0.6.*" } +partiql-value = { path = "../../partiql-value", version = "0.6.*" } +partiql-catalog = { path = "../../partiql-catalog", version = "0.6.*" } +partiql-logical = { path = "../../partiql-logical", version = "0.6.*" } ordered-float = "3.*" itertools = "0.10.*" @@ -42,10 +42,10 @@ flate2 = "1.0" [dev-dependencies] criterion = "0.4" -partiql-parser = { path = "../../partiql-parser", version = "0.5.*" } -partiql-logical = { path = "../../partiql-logical", version = "0.5.*" } -partiql-logical-planner = { path = "../../partiql-logical-planner", version = "0.5.*" } -partiql-eval = { path = "../../partiql-eval", version = "0.5.*" } +partiql-parser = { path = "../../partiql-parser", version = "0.6.*" } +partiql-logical = { path = "../../partiql-logical", version = "0.6.*" } +partiql-logical-planner = { path = "../../partiql-logical-planner", version = "0.6.*" } +partiql-eval = { path = "../../partiql-eval", version = "0.6.*" } [features] default = [] diff --git a/extension/partiql-extension-ion/Cargo.toml b/extension/partiql-extension-ion/Cargo.toml index cbd731f8..3a0460fa 100644 --- a/extension/partiql-extension-ion/Cargo.toml +++ b/extension/partiql-extension-ion/Cargo.toml @@ -21,7 +21,7 @@ edition.workspace = true bench = false [dependencies] -partiql-value = { path = "../../partiql-value", version = "0.5.*" } +partiql-value = { path = "../../partiql-value", version = "0.6.*" } ordered-float = "3.*" itertools = "0.10.*" unicase = "2.6" diff --git a/partiql-ast-passes/Cargo.toml b/partiql-ast-passes/Cargo.toml index 081b298d..50ce3cea 100644 --- a/partiql-ast-passes/Cargo.toml +++ b/partiql-ast-passes/Cargo.toml @@ -6,7 +6,7 @@ homepage.workspace = true repository.workspace = true license = "Apache-2.0" readme = "../README.md" -keywords = ["sql", "ast", "query", "compilers", "interpreters", "visitors", "passes"] +keywords = ["sql", "ast", "compilers", "visitors", "passes"] categories = ["database", "compilers", "ast-implementations"] exclude = [ "**/.git/**", @@ -20,9 +20,9 @@ path = "src/lib.rs" bench = false [dependencies] -partiql-ast = { path = "../partiql-ast", version = "0.5.*" } -partiql-catalog = { path = "../partiql-catalog", version = "0.5.*" } -partiql-types = { path = "../partiql-types", version = "0.5.*" } +partiql-ast = { path = "../partiql-ast", version = "0.6.*" } +partiql-catalog = { path = "../partiql-catalog", version = "0.6.*" } +partiql-types = { path = "../partiql-types", version = "0.6.*" } assert_matches = "1.5.*" fnv = "1" @@ -30,7 +30,7 @@ indexmap = "1.9" thiserror = "1.0" [dev-dependencies] -partiql-parser = { path = "../partiql-parser", version = "0.5.*" } +partiql-parser = { path = "../partiql-parser", version = "0.6.*" } [features] default = [] diff --git a/partiql-ast/Cargo.toml b/partiql-ast/Cargo.toml index 5ed8ec79..48f0489e 100644 --- a/partiql-ast/Cargo.toml +++ b/partiql-ast/Cargo.toml @@ -37,4 +37,4 @@ serde = [ [dependencies.partiql-ast-macros] path = "partiql-ast-macros" -version = "0.5.*" +version = "0.6.*" diff --git a/partiql-catalog/Cargo.toml b/partiql-catalog/Cargo.toml index 7e513eb3..62ecd79a 100644 --- a/partiql-catalog/Cargo.toml +++ b/partiql-catalog/Cargo.toml @@ -21,10 +21,10 @@ edition.workspace = true bench = false [dependencies] -partiql-value = { path = "../partiql-value", version = "0.5.*" } -partiql-parser = { path = "../partiql-parser", version = "0.5.*" } -partiql-logical = { path = "../partiql-logical", version = "0.5.*" } -partiql-types = { path = "../partiql-types", version = "0.5.*" } +partiql-value = { path = "../partiql-value", version = "0.6.*" } +partiql-parser = { path = "../partiql-parser", version = "0.6.*" } +partiql-logical = { path = "../partiql-logical", version = "0.6.*" } +partiql-types = { path = "../partiql-types", version = "0.6.*" } thiserror = "1.0" ordered-float = "3.*" diff --git a/partiql-conformance-tests/Cargo.toml b/partiql-conformance-tests/Cargo.toml index 1d579ece..b695ce5c 100644 --- a/partiql-conformance-tests/Cargo.toml +++ b/partiql-conformance-tests/Cargo.toml @@ -29,18 +29,18 @@ bench = false [build-dependencies] miette = { version ="5.*", features = ["fancy"] } -partiql-conformance-test-generator = { path = "../partiql-conformance-test-generator", version = "0.5.*" } +partiql-conformance-test-generator = { path = "../partiql-conformance-test-generator", version = "0.6.*" } [dependencies] -partiql-parser = { path = "../partiql-parser", version = "0.5.*" } -partiql-catalog = { path = "../partiql-catalog", version = "0.5.*" } -partiql-ast = { path = "../partiql-ast", version = "0.5.*" } -partiql-ast-passes = { path = "../partiql-ast-passes", version = "0.5.*" } -partiql-logical-planner = { path = "../partiql-logical-planner", version = "0.5.*" } -partiql-logical = { path = "../partiql-logical", version = "0.5.*" } -partiql-value = { path = "../partiql-value", version = "0.5.*" } -partiql-eval = { path = "../partiql-eval", version = "0.5.*" } -partiql-extension-ion = {path = "../extension/partiql-extension-ion", version = "0.5.*" } +partiql-parser = { path = "../partiql-parser", version = "0.6.*" } +partiql-catalog = { path = "../partiql-catalog", version = "0.6.*" } +partiql-ast = { path = "../partiql-ast", version = "0.6.*" } +partiql-ast-passes = { path = "../partiql-ast-passes", version = "0.6.*" } +partiql-logical-planner = { path = "../partiql-logical-planner", version = "0.6.*" } +partiql-logical = { path = "../partiql-logical", version = "0.6.*" } +partiql-value = { path = "../partiql-value", version = "0.6.*" } +partiql-eval = { path = "../partiql-eval", version = "0.6.*" } +partiql-extension-ion = {path = "../extension/partiql-extension-ion", version = "0.6.*" } ion-rs = "0.18" diff --git a/partiql-eval/Cargo.toml b/partiql-eval/Cargo.toml index b919f62f..c9ce4c0e 100644 --- a/partiql-eval/Cargo.toml +++ b/partiql-eval/Cargo.toml @@ -21,10 +21,10 @@ edition.workspace = true bench = false [dependencies] -partiql-logical = { path = "../partiql-logical", version = "0.5.*" } -partiql-value = { path = "../partiql-value", version = "0.5.*" } -partiql-catalog = { path = "../partiql-catalog", version = "0.5.*" } -partiql-types = { path = "../partiql-types", version = "0.5.*" } +partiql-logical = { path = "../partiql-logical", version = "0.6.*" } +partiql-value = { path = "../partiql-value", version = "0.6.*" } +partiql-catalog = { path = "../partiql-catalog", version = "0.6.*" } +partiql-types = { path = "../partiql-types", version = "0.6.*" } petgraph = "0.6.*" ordered-float = "3.*" itertools = "0.10.*" diff --git a/partiql-logical-planner/Cargo.toml b/partiql-logical-planner/Cargo.toml index 272aae38..63542a5c 100644 --- a/partiql-logical-planner/Cargo.toml +++ b/partiql-logical-planner/Cargo.toml @@ -21,14 +21,14 @@ edition.workspace = true bench = false [dependencies] -partiql-value = { path = "../partiql-value", version = "0.5.*" } -partiql-extension-ion = {path = "../extension/partiql-extension-ion", version = "0.5.*" } -partiql-logical = { path = "../partiql-logical", version = "0.5.*" } -partiql-ast = { path = "../partiql-ast", version = "0.5.*" } -partiql-parser = { path = "../partiql-parser", version = "0.5.*" } -partiql-catalog = { path = "../partiql-catalog", version = "0.5.*" } -partiql-ast-passes = { path = "../partiql-ast-passes", version = "0.5.*" } -partiql-types = { path = "../partiql-types", version = "0.5.*" } +partiql-value = { path = "../partiql-value", version = "0.6.*" } +partiql-extension-ion = {path = "../extension/partiql-extension-ion", version = "0.6.*" } +partiql-logical = { path = "../partiql-logical", version = "0.6.*" } +partiql-ast = { path = "../partiql-ast", version = "0.6.*" } +partiql-parser = { path = "../partiql-parser", version = "0.6.*" } +partiql-catalog = { path = "../partiql-catalog", version = "0.6.*" } +partiql-ast-passes = { path = "../partiql-ast-passes", version = "0.6.*" } +partiql-types = { path = "../partiql-types", version = "0.6.*" } ion-rs = "0.18" ordered-float = "3.*" @@ -43,5 +43,5 @@ once_cell = "1" thiserror = "1.0" [dev-dependencies] -partiql-eval = { path = "../partiql-eval", version = "0.5.*" } -partiql-types = { path = "../partiql-types", version = "0.5.*" } +partiql-eval = { path = "../partiql-eval", version = "0.6.*" } +partiql-types = { path = "../partiql-types", version = "0.6.*" } diff --git a/partiql-logical/Cargo.toml b/partiql-logical/Cargo.toml index 64916822..4c6e52ff 100644 --- a/partiql-logical/Cargo.toml +++ b/partiql-logical/Cargo.toml @@ -21,7 +21,7 @@ edition.workspace = true bench = false [dependencies] -partiql-value = { path = "../partiql-value", version = "0.5.*" } +partiql-value = { path = "../partiql-value", version = "0.6.*" } ordered-float = "3.*" itertools = "0.10.*" unicase = "2.6" diff --git a/partiql-parser/Cargo.toml b/partiql-parser/Cargo.toml index 612d70a3..d0edfc74 100644 --- a/partiql-parser/Cargo.toml +++ b/partiql-parser/Cargo.toml @@ -25,8 +25,8 @@ bench = false lalrpop = "0.20" [dependencies] -partiql-ast = { path = "../partiql-ast", version = "0.5.*" } -partiql-source-map = { path = "../partiql-source-map", version = "0.5.*" } +partiql-ast = { path = "../partiql-ast", version = "0.6.*" } +partiql-source-map = { path = "../partiql-source-map", version = "0.6.*" } thiserror = "1.0" diff --git a/partiql-source-map/Cargo.toml b/partiql-source-map/Cargo.toml index 303abfe7..e768cb21 100644 --- a/partiql-source-map/Cargo.toml +++ b/partiql-source-map/Cargo.toml @@ -19,7 +19,7 @@ edition.workspace = true bench = false [dependencies] -partiql-ast = { path = "../partiql-ast", version = "0.5.*" } +partiql-ast = { path = "../partiql-ast", version = "0.6.*" } smallvec = { version = "1.*" } serde = { version = "1.*", features = ["derive"], optional = true }