diff --git a/Cargo.lock b/Cargo.lock index f457e75..c621010 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -921,7 +921,7 @@ dependencies = [ [[package]] name = "sql-insight" -version = "0.3.0" +version = "0.4.0" dependencies = [ "serde", "sqlparser", @@ -931,7 +931,7 @@ dependencies = [ [[package]] name = "sql-insight-cli" -version = "0.2.1" +version = "0.3.0" dependencies = [ "assert_cmd", "clap", diff --git a/README.md b/README.md index 61b74c6..1d3814a 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ across every SQL dialect sqlparser-rs supports. ```toml [dependencies] -sql-insight = "0.3" +sql-insight = "0.4" ``` ## Usage @@ -180,7 +180,7 @@ serde format: ```toml [dependencies] -sql-insight = { version = "0.3", features = ["serde"] } +sql-insight = { version = "0.4", features = ["serde"] } ``` ```rust,ignore diff --git a/sql-insight-cli/CHANGELOG.md b/sql-insight-cli/CHANGELOG.md index e1528f3..0936cc3 100644 --- a/sql-insight-cli/CHANGELOG.md +++ b/sql-insight-cli/CHANGELOG.md @@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.0](https://github.com/takaebato/sql-insight/compare/sql-insight-cli-v0.2.1...sql-insight-cli-v0.3.0) - 2026-07-05 + +### ⚠️ Breaking Changes + +#### analysis results change with sql-insight 0.4 + +The same input SQL can produce different results — see the +[sql-insight 0.4.0 changelog](https://github.com/takaebato/sql-insight/blob/master/sql-insight/CHANGELOG.md#040---2026-07-05) +for what changed. + +### Added + +- *(cli)* prebuilt binary distribution — cargo binstall, completions, man, and provenance ([#53](https://github.com/takaebato/sql-insight/pull/53)) by @takaebato + +### Fixed + +- *(deps)* update rust crate clap_mangen to 0.3 ([#54](https://github.com/takaebato/sql-insight/pull/54)) by @renovate[bot] + +### Other Changes + +- changelog breaking-change workflow, version-bump docs, and keywords ([#51](https://github.com/takaebato/sql-insight/pull/51)) by @takaebato +- tidy keywords, README versions, and add a version-sync check ([#46](https://github.com/takaebato/sql-insight/pull/46)) by @takaebato + ## [0.2.1](https://github.com/takaebato/sql-insight/compare/sql-insight-cli-v0.2.0...sql-insight-cli-v0.2.1) - 2026-06-28 ### Added diff --git a/sql-insight-cli/Cargo.toml b/sql-insight-cli/Cargo.toml index acb1d2e..a58f70a 100644 --- a/sql-insight-cli/Cargo.toml +++ b/sql-insight-cli/Cargo.toml @@ -13,7 +13,7 @@ readme = "README.md" # Bump the MINOR by hand (pre-1.0 breaking) when the CLI's output *format* changes # — stdout shape or `--format json` structure — vs a value-only change (patch). # Manual: tooling sees the API surface, not output/behaviour. -version = "0.2.1" +version = "0.3.0" edition = { workspace = true } homepage = { workspace = true } repository = { workspace = true } @@ -43,7 +43,7 @@ doc = false # A breaking sql-insight bump (one the current caret requirement won't accept) # means: update the requirement + bump the CLI minor by hand. Compatible bumps # the caret already accepts flow automatically — no CLI release. -sql-insight = { path = "../sql-insight", version = "0.3.0", features = ["serde"] } +sql-insight = { path = "../sql-insight", version = "0.4.0", features = ["serde"] } clap = { version = "4.5", features = ["derive"] } clap_complete = "4.5" clap_mangen = "0.3" diff --git a/sql-insight/CHANGELOG.md b/sql-insight/CHANGELOG.md index 592c164..dfbda7e 100644 --- a/sql-insight/CHANGELOG.md +++ b/sql-insight/CHANGELOG.md @@ -7,6 +7,45 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.0](https://github.com/takaebato/sql-insight/compare/sql-insight-v0.3.0...sql-insight-v0.4.0) - 2026-07-05 + +### ⚠️ Breaking Changes + +#### attribute unqualified SET targets with the read-side rules ([#59](https://github.com/takaebato/sql-insight/pull/59)) by @takaebato + +Previously, `UPDATE t1 JOIN t2 SET a = 1` always attributed the write to the +first table (`t1.a`) — even when `a` actually belongs to `t2`. The unqualified +SET column now resolves like a column read: if exactly one joined relation can +own it (e.g. per the catalog), that relation gets the write; when the owner +can't be determined, the write surfaces unattributed (`table: None`, +`Ambiguous` / `Unresolved`) and emits no table-level write, instead of a +possibly-wrong `t1.a` — mirroring the engines, which reject the ambiguous +form. To keep attributed writes, qualify the column (`SET t2.a = 1`) or supply +a catalog. + +#### upgrade sqlparser to 0.62 ([#55](https://github.com/takaebato/sql-insight/pull/55)) by @takaebato + +The re-exported `sql_insight::sqlparser` moves 0.61 → 0.62; code matching on its +AST must adapt (notably `Insert::columns` is now `Vec`, `VALUES` rows +carry `Parens`, visitors see `ValueWithSpan`, and there are new variants such as +`SelectItem::ExprWithAliases` / `TableObject::TableQuery`). See the +[sqlparser 0.62.0 changelog](https://github.com/apache/datafusion-sqlparser-rs/blob/main/changelog/0.62.0.md). + +### Added + +- resolve Oracle join-view INSERT targets by column attribution ([#61](https://github.com/takaebato/sql-insight/pull/61)) by @takaebato +- fan out multi-column-alias lineage to every alias ([#60](https://github.com/takaebato/sql-insight/pull/60)) by @takaebato +- resolve Oracle inline-view INSERT targets to their base table ([#58](https://github.com/takaebato/sql-insight/pull/58)) by @takaebato + +### Fixed + +- don't surface a ClickHouse ARRAY JOIN operand as a table read ([#57](https://github.com/takaebato/sql-insight/pull/57)) by @takaebato + +### Other Changes + +- changelog breaking-change workflow, version-bump docs, and keywords ([#51](https://github.com/takaebato/sql-insight/pull/51)) by @takaebato +- tidy keywords, README versions, and add a version-sync check ([#46](https://github.com/takaebato/sql-insight/pull/46)) by @takaebato + ## [0.3.0](https://github.com/takaebato/sql-insight/compare/v0.2.0...v0.3.0) - 2026-06-28 ### Added diff --git a/sql-insight/Cargo.toml b/sql-insight/Cargo.toml index 814f758..7f61869 100644 --- a/sql-insight/Cargo.toml +++ b/sql-insight/Cargo.toml @@ -10,7 +10,7 @@ include = [ "LICENSE.txt", ] readme = "README.md" -version = "0.3.0" +version = "0.4.0" edition = { workspace = true } rust-version = "1.89.0" homepage = { workspace = true }