diff --git a/CHANGELOG.md b/CHANGELOG.md index 862ebe40..a292c3e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,20 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Changed + +### Added + +### Fixed + +## [0.7.0] - 2024-03-12 +### Changed - Adds quotes to the attributes of PartiQL tuple's debug output so it can be read and transformed using Kotlin `partiql-cli` -- Adds u8, u16, u32, u64, and u128 support to partiql_value::Value::from(type) -- [breaking] Changes the interface to `EvalPlan` to accept an `EvalContext` -- [breaking] Changes `EvaluationError` to not implement `Clone` -- [breaking] Changes the structure of `EvalPlan` +- *BREAKING:* partiql-eval: Changes the interface to `EvalPlan` to accept an `EvalContext` +- *BREAKING:* partiql-eval: Changes `EvaluationError` to not implement `Clone` +- *BREAKING:* partiql-eval: Changes the structure of `EvalPlan` ### Added -- Add `partiql-extension-visualize` for visualizing AST and logical plan -- Add a `SessionContext` containing both a system-level and a user-level context object usable by expression evaluation +- partiql-extension-visualize: Add `partiql-extension-visualize` for visualizing AST and logical plan +- partiql-eval: Add a `SessionContext` containing both a system-level and a user-level context object usable by expression evaluation ### Fixed -- Fixed `ORDER BY`'s ability to see into projection aliases -- Fixed errors in `BaseTableExpr`s get added to the evaluation context -- Fixed certain errors surfacing in Permissive evaluation mode, when they should only be present in Strict mode +- partiql-logical-planner: Fixed `ORDER BY`'s ability to see into projection aliases +- partiql-eval: Fixed errors in `BaseTableExpr`s get added to the evaluation context +- partiql-eval: Fixed certain errors surfacing in Permissive evaluation mode, when they should only be present in Strict mode ## [0.6.0] - 2023-10-31 ### Changed @@ -40,7 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Affects the AST and visitor - *BREAKING:* partiql-parser: `Parsed` struct's `ast` field is now an `ast::AstNode` - *BREAKING:* partiql-eval: `Evaluable` trait's `update_input` fn now also takes in an `EvalContext` -- *BREAKING:* partiql-logical: changed modeling of `Project` `exprs` to be a `Vec<(String, ValueExpr)>` rather than a `HashMap` to support multiple project items with the same alias +- *BREAKING:* partiql-eval: changed modeling of `Project` `exprs` to be a `Vec<(String, ValueExpr)>` rather than a `HashMap` to support multiple project items with the same alias - *BREAKING:* partiql-logical: changed modeling of `VarRef` to include a `VarRefType` to indicate whether to do a local vs global binding lookup ### Added @@ -212,7 +218,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.6.0...HEAD +[Unreleased]: https://github.com/partiql/partiql-lang-rust/compare/v0.7.0...HEAD +[0.7.0]: https://github.com/partiql/partiql-lang-rust/releases/tag/v0.7.0 [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 diff --git a/Cargo.toml b/Cargo.toml index 93f94f14..48fbdc86 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.6.0" +version = "0.7.0" edition = "2021" [workspace] diff --git a/extension/partiql-extension-ion-functions/Cargo.toml b/extension/partiql-extension-ion-functions/Cargo.toml index 1c1ea734..d3b722d3 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.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.*" } +partiql-extension-ion = {path = "../partiql-extension-ion", version = "0.7.*" } +partiql-value = { path = "../../partiql-value", version = "0.7.*" } +partiql-catalog = { path = "../../partiql-catalog", version = "0.7.*" } +partiql-logical = { path = "../../partiql-logical", version = "0.7.*" } 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.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.*" } +partiql-parser = { path = "../../partiql-parser", version = "0.7.*" } +partiql-logical = { path = "../../partiql-logical", version = "0.7.*" } +partiql-logical-planner = { path = "../../partiql-logical-planner", version = "0.7.*" } +partiql-eval = { path = "../../partiql-eval", version = "0.7.*" } [features] default = [] diff --git a/extension/partiql-extension-ion/Cargo.toml b/extension/partiql-extension-ion/Cargo.toml index 3a0460fa..05178eeb 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.6.*" } +partiql-value = { path = "../../partiql-value", version = "0.7.*" } ordered-float = "3.*" itertools = "0.10.*" unicase = "2.6" diff --git a/extension/partiql-extension-visualize/Cargo.toml b/extension/partiql-extension-visualize/Cargo.toml index 5e755af0..4d162838 100644 --- a/extension/partiql-extension-visualize/Cargo.toml +++ b/extension/partiql-extension-visualize/Cargo.toml @@ -21,8 +21,8 @@ edition.workspace = true bench = false [dependencies] -partiql-ast = { path = "../../partiql-ast", version = "0.6.*" } -partiql-logical = { path = "../../partiql-logical", version = "0.6.*" } +partiql-ast = { path = "../../partiql-ast", version = "0.7.*" } +partiql-logical = { path = "../../partiql-logical", version = "0.7.*" } dot-writer = { version = "0.1.*", optional = true } itertools = { version = "0.10.*", optional = true } diff --git a/partiql-ast-passes/Cargo.toml b/partiql-ast-passes/Cargo.toml index 50ce3cea..05081523 100644 --- a/partiql-ast-passes/Cargo.toml +++ b/partiql-ast-passes/Cargo.toml @@ -20,9 +20,9 @@ path = "src/lib.rs" bench = false [dependencies] -partiql-ast = { path = "../partiql-ast", version = "0.6.*" } -partiql-catalog = { path = "../partiql-catalog", version = "0.6.*" } -partiql-types = { path = "../partiql-types", version = "0.6.*" } +partiql-ast = { path = "../partiql-ast", version = "0.7.*" } +partiql-catalog = { path = "../partiql-catalog", version = "0.7.*" } +partiql-types = { path = "../partiql-types", version = "0.7.*" } 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.6.*" } +partiql-parser = { path = "../partiql-parser", version = "0.7.*" } [features] default = [] diff --git a/partiql-ast/Cargo.toml b/partiql-ast/Cargo.toml index 48f0489e..feb06036 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.6.*" +version = "0.7.*" diff --git a/partiql-catalog/Cargo.toml b/partiql-catalog/Cargo.toml index 62ecd79a..a9c8b353 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.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.*" } +partiql-value = { path = "../partiql-value", version = "0.7.*" } +partiql-parser = { path = "../partiql-parser", version = "0.7.*" } +partiql-logical = { path = "../partiql-logical", version = "0.7.*" } +partiql-types = { path = "../partiql-types", version = "0.7.*" } thiserror = "1.0" ordered-float = "3.*" diff --git a/partiql-conformance-tests/Cargo.toml b/partiql-conformance-tests/Cargo.toml index b695ce5c..ab38a68f 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.6.*" } +partiql-conformance-test-generator = { path = "../partiql-conformance-test-generator", version = "0.7.*" } [dependencies] -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.*" } +partiql-parser = { path = "../partiql-parser", version = "0.7.*" } +partiql-catalog = { path = "../partiql-catalog", version = "0.7.*" } +partiql-ast = { path = "../partiql-ast", version = "0.7.*" } +partiql-ast-passes = { path = "../partiql-ast-passes", version = "0.7.*" } +partiql-logical-planner = { path = "../partiql-logical-planner", version = "0.7.*" } +partiql-logical = { path = "../partiql-logical", version = "0.7.*" } +partiql-value = { path = "../partiql-value", version = "0.7.*" } +partiql-eval = { path = "../partiql-eval", version = "0.7.*" } +partiql-extension-ion = {path = "../extension/partiql-extension-ion", version = "0.7.*" } ion-rs = "0.18" diff --git a/partiql-eval/Cargo.toml b/partiql-eval/Cargo.toml index 46135f5c..75d1e171 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.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.*" } +partiql-logical = { path = "../partiql-logical", version = "0.7.*" } +partiql-value = { path = "../partiql-value", version = "0.7.*" } +partiql-catalog = { path = "../partiql-catalog", version = "0.7.*" } +partiql-types = { path = "../partiql-types", version = "0.7.*" } petgraph = "0.6.*" ordered-float = "3.*" itertools = "0.10.*" diff --git a/partiql-logical-planner/Cargo.toml b/partiql-logical-planner/Cargo.toml index 63542a5c..6006cc54 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.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.*" } +partiql-value = { path = "../partiql-value", version = "0.7.*" } +partiql-extension-ion = {path = "../extension/partiql-extension-ion", version = "0.7.*" } +partiql-logical = { path = "../partiql-logical", version = "0.7.*" } +partiql-ast = { path = "../partiql-ast", version = "0.7.*" } +partiql-parser = { path = "../partiql-parser", version = "0.7.*" } +partiql-catalog = { path = "../partiql-catalog", version = "0.7.*" } +partiql-ast-passes = { path = "../partiql-ast-passes", version = "0.7.*" } +partiql-types = { path = "../partiql-types", version = "0.7.*" } 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.6.*" } -partiql-types = { path = "../partiql-types", version = "0.6.*" } +partiql-eval = { path = "../partiql-eval", version = "0.7.*" } +partiql-types = { path = "../partiql-types", version = "0.7.*" } diff --git a/partiql-logical/Cargo.toml b/partiql-logical/Cargo.toml index 4c6e52ff..5947fa04 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.6.*" } +partiql-value = { path = "../partiql-value", version = "0.7.*" } ordered-float = "3.*" itertools = "0.10.*" unicase = "2.6" diff --git a/partiql-parser/Cargo.toml b/partiql-parser/Cargo.toml index d0edfc74..43c11cd1 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.6.*" } -partiql-source-map = { path = "../partiql-source-map", version = "0.6.*" } +partiql-ast = { path = "../partiql-ast", version = "0.7.*" } +partiql-source-map = { path = "../partiql-source-map", version = "0.7.*" } thiserror = "1.0" diff --git a/partiql-source-map/Cargo.toml b/partiql-source-map/Cargo.toml index e768cb21..053e5771 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.6.*" } +partiql-ast = { path = "../partiql-ast", version = "0.7.*" } smallvec = { version = "1.*" } serde = { version = "1.*", features = ["derive"], optional = true }