Repository navigation
Releases: itda-work/django-sqlalchemy-bridge
Releases · itda-work/django-sqlalchemy-bridge
Release list
v0.3.0
What's Changed
- feat: add execute_in and join_across for chunked IN lookups and cross-database joins (#79) by @allieus in #83
- fix: compare JSON members of a tuple member by member on MySQL and Oracle (#76) by @allieus in #85
- test: run join_across between every pair of SQLite, PostgreSQL, MySQL and Oracle by @allieus in #88
- fix: convert tuple_() values by the left columns and spell Oracle JSON IN lists out (#86) by @allieus in #89
- fix: spell MySQL's empty JSON IN list out and refuse an empty expanding JSON bindparam (#90) by @allieus in #91
- chore: release 0.3.0rc1 by @allieus in #92
- test: close worker threads' in-memory SQLite connections and fail the suite on warnings (#94) by @allieus in #96
- feat: take params in execute_in and join_across (#95) by @allieus in #97
- chore: release 0.3.0rc2 by @allieus in #98
- docs: document empty bulk rows, join_across with no outer rows, and None outer keys (#99) by @allieus in #100
- chore: release 0.3.0 (#93) by @allieus in #101
Full Changelog: v0.2.0...v0.3.0
v0.3.0rc2
v0.3.0rc1
What's Changed
- feat: add execute_in and join_across for chunked IN lookups and cross-database joins (#79) by @allieus in #83
- fix: compare JSON members of a tuple member by member on MySQL and Oracle (#76) by @allieus in #85
- test: run join_across between every pair of SQLite, PostgreSQL, MySQL and Oracle by @allieus in #88
- fix: convert tuple_() values by the left columns and spell Oracle JSON IN lists out (#86) by @allieus in #89
- fix: spell MySQL's empty JSON IN list out and refuse an empty expanding JSON bindparam (#90) by @allieus in #91
- chore: release 0.3.0rc1 by @allieus in #92
Full Changelog: v0.2.0...v0.3.0rc1
v0.2.0
What's Changed
- feat: cache compiled statements per statement object (#28) by @allieus in #29
- feat: add tested examples of queries the ORM makes hard, and an llms.txt for AI agents (#30) by @allieus in #31
- docs: write llms.txt and the agent snippet in English by @allieus in #33
- docs: explain why INSERT … SELECT values need the target column type by @allieus in #40
- feat: batch_size for bulk_update and bulk_insert (#35) by @allieus in #42
- feat: compare column types with the live database in compare_table (#36) by @allieus in #43
- feat: MySQL support (#37) by @allieus in #46
- docs: add DRF and class-based view recipes (#44) by @allieus in #45
- feat: support Oracle by @allieus in #48
- docs: explain why SQLAlchemy Connection and Session stay out, even on a cursor shim by @allieus in #49
- fix: convert compared values as ORM lookups and written values as ORM saves (#47) by @allieus in #52
- feat: add execute_pipeline for PostgreSQL pipeline mode by @allieus in #53
- docs: compare ORM and bridge implementations of the same requests (#51) by @allieus in #55
- feat: bulk_insert(method="copy") for PostgreSQL COPY FROM STDIN (#54) by @allieus in #56
- feat: add raw() to read bridge statements as a Django RawQuerySet (#57) by @allieus in #58
- perf: cache result converters per connection object (#60) by @allieus in #61
- feat: add copy_to() for PostgreSQL COPY TO STDOUT exports (#62) by @allieus in #63
- ci: run the PostgreSQL suite again with server-side binding by @allieus in #65
- fix: cast DecimalField expressions to NUMERIC on SQLite as the ORM does by @allieus in #66
- feat!: drop table_for(using=) and document multi-database use by @allieus in #69
- chore: release 0.2.0rc1 by @allieus in #70
- fix: convert each member of a tuple IN through its column's Django field (#73) by @allieus in #75
- fix: read expression results as the ORM reads expressions, not columns (#68) by @allieus in #77
- fix: cast a DecimalField aggregate on SQLite wherever it appears outside its FILTER or window (#72) by @allieus in #78
- fix: insert rows that leave every column to the database as bulk_create does (#74) by @allieus in #80
- docs: correct the bulk_*, raw().using(), pipeline and tuple comparison notes (#71) by @allieus in #81
- chore: release 0.2.0rc2 by @allieus in #82
- chore: release 0.2.0 by @allieus in #84
Full Changelog: v0.1.0...v0.2.0
v0.2.0rc2
What's Changed
- fix: convert each member of a tuple IN through its column's Django field (#73) by @allieus in #75
- fix: read expression results as the ORM reads expressions, not columns (#68) by @allieus in #77
- fix: cast a DecimalField aggregate on SQLite wherever it appears outside its FILTER or window (#72) by @allieus in #78
- fix: insert rows that leave every column to the database as bulk_create does (#74) by @allieus in #80
- docs: correct the bulk_*, raw().using(), pipeline and tuple comparison notes (#71) by @allieus in #81
- chore: release 0.2.0rc2 by @allieus in #82
Full Changelog: v0.2.0rc1...v0.2.0rc2
v0.2.0rc1
What's Changed
- feat: cache compiled statements per statement object (#28) by @allieus in #29
- feat: add tested examples of queries the ORM makes hard, and an llms.txt for AI agents (#30) by @allieus in #31
- docs: write llms.txt and the agent snippet in English by @allieus in #33
- docs: explain why INSERT … SELECT values need the target column type by @allieus in #40
- feat: batch_size for bulk_update and bulk_insert (#35) by @allieus in #42
- feat: compare column types with the live database in compare_table (#36) by @allieus in #43
- feat: MySQL support (#37) by @allieus in #46
- docs: add DRF and class-based view recipes (#44) by @allieus in #45
- feat: support Oracle by @allieus in #48
- docs: explain why SQLAlchemy Connection and Session stay out, even on a cursor shim by @allieus in #49
- fix: convert compared values as ORM lookups and written values as ORM saves (#47) by @allieus in #52
- feat: add execute_pipeline for PostgreSQL pipeline mode by @allieus in #53
- docs: compare ORM and bridge implementations of the same requests (#51) by @allieus in #55
- feat: bulk_insert(method="copy") for PostgreSQL COPY FROM STDIN (#54) by @allieus in #56
- feat: add raw() to read bridge statements as a Django RawQuerySet (#57) by @allieus in #58
- perf: cache result converters per connection object (#60) by @allieus in #61
- feat: add copy_to() for PostgreSQL COPY TO STDOUT exports (#62) by @allieus in #63
- ci: run the PostgreSQL suite again with server-side binding by @allieus in #65
- fix: cast DecimalField expressions to NUMERIC on SQLite as the ORM does by @allieus in #66
- feat!: drop table_for(using=) and document multi-database use by @allieus in #69
- chore: release 0.2.0rc1 by @allieus in #70
Full Changelog: v0.1.0...v0.2.0rc1
v0.1.0
What's Changed
- Test harness, CI matrix and async README correction by @allieus in #9
- feat: build sa.Table from Django models and check them for drift by @allieus in #10
- feat: execute SQLAlchemy statements on Django's cursor (#5) by @allieus in #11
- feat: stream rows in chunks through Django's chunked cursor (#6) by @allieus in #13
- feat: bulk UPDATE and INSERT through unnest arrays on PostgreSQL by @allieus in #14
- feat: arun — run a sync unit of work from async code in one thread hop by @allieus in #15
- docs: record the spike pitfalls and the orchestration workflow in CLAUDE.md by @allieus in #16
- feat: refuse RETURNING where the database lacks it and open jsonb operators on JSONField by @allieus in #18
- fix: refuse statements that leave SQLAlchemy Python-side defaults unfilled (#19) by @allieus in #20
- fix: read RETURNING columns from the compiler, not the memoized exported_columns by @allieus in #22
- feat: add benchmarks and the README performance section (#2) by @allieus in #23
- ci: add a manual benchmark workflow and read the newest result files by @allieus in #25
- docs: replace the benchmark numbers with a GitHub Actions run by @allieus in #26
- chore: release 0.1.0 by @allieus in #27
New Contributors
Full Changelog: v0.0.1...v0.1.0