diff --git a/CHANGELOG.md b/CHANGELOG.md index 761a203..4dae250 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ## [Unreleased] +## [0.2.2] - 2026-10-04 + ### Changed +* Requires `sqlalchemy-cloudflare-d1` 0.4.1 or newer. It was 0.3.11. * Reworked the README layout, with badges, a compatibility table and a contributing section. The content is unchanged. +* "Known limits" in the README no longer lists the two limits fixed below. + +### Fixed + +* Columns with the same name each get their own value. They all got the value of the last one before. Fixed in `sqlalchemy-cloudflare-d1` 0.4.1 ([#34](https://github.com/CollierKing/sqlalchemy-cloudflare-d1/pull/34)). +* Statements that start with a comment, `EXPLAIN` or `VALUES` come back with column names, so SQLAlchemy returns their rows. Fixed in `sqlalchemy-cloudflare-d1` 0.4.1 ([#33](https://github.com/CollierKing/sqlalchemy-cloudflare-d1/pull/33)). ## [0.2.1] - 2026-09-29 diff --git a/README.md b/README.md index a07a348..6bc9583 100644 --- a/README.md +++ b/README.md @@ -99,8 +99,6 @@ Everything else comes from `sqlalchemy-cloudflare-d1` unchanged. That includes t These come from the upstream driver and dialect, so this package has them too. -* **Columns with the same name** all get the value of the last one, without an error. `SELECT a.id, b.id FROM a JOIN b ...` returns `b.id` twice, and so does `SELECT *` over a join where both tables have an `id`. Give the columns different names with `AS`. Reported as [#31](https://github.com/CollierKing/sqlalchemy-cloudflare-d1/issues/31). -* **Statements that do not start with `SELECT`, `PRAGMA` or `WITH`**, and have no `RETURNING`, come back without column names, so SQLAlchemy raises `This result object does not return rows`. That includes a query that starts with a comment, `EXPLAIN QUERY PLAN` and `VALUES`. Put a leading comment at the end of the query instead, with no semicolon after it. Reported as [#32](https://github.com/CollierKing/sqlalchemy-cloudflare-d1/issues/32). * **Date and time values are written with a `T`**, such as `2026-09-21T09:00:00`. Data from other tools often has a space instead, and Superset writes its time filters with a space. SQLite compares both forms as text and a `T` sorts after a space, so comparing one form with the other can give the wrong rows. Keep dates in one form. SQLite's `datetime()` turns either form into the one with a space. ## Development diff --git a/poetry.lock b/poetry.lock index 44718b0..3f6625c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -512,14 +512,14 @@ sqlcipher = ["sqlcipher3_binary"] [[package]] name = "sqlalchemy-cloudflare-d1" -version = "0.4.0" +version = "0.4.1" description = "A SQLAlchemy dialect for Cloudflare's D1 Serverless SQLite Database" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "sqlalchemy_cloudflare_d1-0.4.0-py3-none-any.whl", hash = "sha256:c6d0808aea73ed32f295c656bf57036fdba8d5ca1ef3ca7730a05d836ea8f0fa"}, - {file = "sqlalchemy_cloudflare_d1-0.4.0.tar.gz", hash = "sha256:530591c3833d775e7ac0fb5fcd5732d7579d9fcc133d8861af436e341a54e53d"}, + {file = "sqlalchemy_cloudflare_d1-0.4.1-py3-none-any.whl", hash = "sha256:a7c3fb0414e41136459c3e18a9a2565a8003c9a9726875128f7756b012b0594f"}, + {file = "sqlalchemy_cloudflare_d1-0.4.1.tar.gz", hash = "sha256:3a2cd1b8c0ac126b4853802a9d254dd02a476fd574b99a4e5b1e4a6552f8e217"}, ] [package.dependencies] @@ -551,4 +551,4 @@ dev = ["mypy", "pytest", "pytest-socket", "ruff"] [metadata] lock-version = "2.1" python-versions = ">=3.11" -content-hash = "f4a4164792ade23b597bbbcf0b750bca2dce994f03f41938fae87af4fce8ac3b" +content-hash = "e5342dca435f135fbb0773516feb8b73d15a68416dee3a419c7f2a4f4194dc2d" diff --git a/pyproject.toml b/pyproject.toml index f0b3528..1a0f0ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "sqlalchemy-d1" -version = "0.2.1" +version = "0.2.2" description = "SQLAlchemy dialect for Cloudflare D1" authors = [ {name = "Chad Rossouw",email = "chadrossouw7247@gmail.com"}, @@ -26,7 +26,7 @@ classifiers = [ ] dependencies = [ "sqlalchemy>=2.0,<2.1", - "sqlalchemy-cloudflare-d1>=0.3.11,<0.5", + "sqlalchemy-cloudflare-d1>=0.4.1,<0.5", ] [project.optional-dependencies]