Repository navigation
Bump Lightweight to 17c4e70d and retire the workarounds it made obsolete - #873
Merged
Merged
Conversation
… blind
Lightweight 17c4e70d binds binary values in Where() and rolls back a
transaction left open on a pooled connection before handing it on. The
second makes PoolTransactionAudit unable to see what it checks for --
Pool::Return now rolls back before it fires OnConnectionIdle -- so the
audit, its self-test, bank's record of why it was not installed there, and
every rung's install call go.
Two adaptations the new revision needs:
- HasMany accessors return RelationResult (std::expected); bank unwraps
them through db::requireLoaded, which turns an unloaded relation into
a BankError.
- MigrationManager now keeps a DataMapper open in a static, which is
destroyed after Lightweight's default logger and aborts every process
that applied migrations ("pure virtual method called" at exit). Each
migration site closes it once migrations are applied.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141t3QdB4FkiHqiCX2M2eF2
…cker docs/LIGHTWEIGHT-CONSTRAINTS.md recorded limits of a pinned revision; the ones still open are now filed upstream, which is where examples/IMPLEMENTATION.md sends a reader instead. docs/todo.md tracked two programs that have both shipped. Its "Considered and refused" table is a current decision, not history, so it moves into docs/ARCHITECTURE.md as Non-goals; every reference to either file is updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141t3QdB4FkiHqiCX2M2eF2
…st the clear, not the report At 17c4e70d SqlSchema::ReadAllTables reads a schema holding a foreign key to a missing table instead of throwing map::at out of it, so DbFixture simply drops the dangling table. The two testkit cases that expected the fixture's report for that state could no longer reach it: the wording case goes, and the usability case now checks that the dangling table is gone and the database takes a write. The report path stays as the guard for any other failure to read the schema, with its text no longer naming map::at as the cause. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141t3QdB4FkiHqiCX2M2eF2
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141t3QdB4FkiHqiCX2M2eF2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the examples from Lightweight
bbb972a7to17c4e70d, which is 239 commits newer. Two limitations the examples worked around are fixed upstream at this revision:Where()can bind a binary value (Lightweight#618).DataMapperPool::Returnrolls back a transaction left open on a returned connection (Lightweight#583).The remaining limitations are now filed upstream instead of being recorded in this repository, and the two docs that held that kind of record go.
Changes
17c4e70dinexamples/commonandexamples/bank. The ODBC include note incmake/morph_demote_interface_includes.cmakestill holds at the new revision and now names it.Pool::Returnnow rolls back before it firesOnConnectionIdle, so the audit could never again see what it checks for. Removed with it:DbFixtureinstall,test_pool_scope, whose only purpose was to record why the audit wasn't installed there.HasMany::All()/Count()now returnRelationResult(std::expected).db::requireLoadedturns an unloaded relation into aBankError, andtest_relationschecks theexpectedexplicitly.MigrationManagernow keeps aDataMapperopen in a static, and that static is destroyed after Lightweight's default logger. So every process that applied migrations aborted at exit withpure virtual method called; before the workaround, 734 of 2960 ctest cases failed this way. Each migration site now callsCloseDataMapper()once migrations are applied.DbFixture: a dangling foreign key no longer needs reporting. At this revisionReadAllTablesreads such a schema instead of throwingmap::at, so the fixture just clears it. The testkit case now checks that the dangling table is gone and the database accepts a write. The report path stays for any other failure to read the schema.docs/LIGHTWEIGHT-CONSTRAINTS.mdis deleted;examples/IMPLEMENTATION.mdnow sends readers to Lightweight's issue tracker.docs/todo.md, which tracked two programs that have both shipped, is deleted.docs/ARCHITECTURE.mdas Non-goals.Filed upstream:
busy_timeout/journal_mode.Query<Record>().Update()was not filed:dm.Update(entity)is the intended API.🤖 Generated with Claude Code
https://claude.ai/code/session_0141t3QdB4FkiHqiCX2M2eF2