Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -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"},
Expand All @@ -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]
Expand Down
Loading