fix: DBIx::Simple jcpan stabilization (JDBC hashes + method chain)#751
Merged
Conversation
Captured pre-existing jcpan/PERL5LIB + DBIx/DBI/runtime edits before structured fix. Co-authored-by: Cursor <[email protected]>
- Hold blessed method invocants across dispatchPerlMethodAfterSelfInjected / callCachedInner refcount boundaries (scalar $db->query->arrays). - JDBC fetchrow_hashref honors second arg and NAME fallback like DBI.pm. - Add dev/tools/dbix_simple_chain_repro.pl and dev/modules/dbix_simple.md. - Unit regression: dbi_fetchrow_hashref_name_lc.t. Generated with [Cursor](https://cursor.com/docs) Co-Authored-By: Cursor <[email protected]>
Launcher no longer prepends checkout-only src/main/perl/lib — bundled .pm remain jar:PERL5LIB unless ~/.perlonjava/lib shadows. Refresh dbix_simple.md and chain repro banner. Generated with [Cursor](https://cursor.com/docs) Co-Authored-By: Cursor <[email protected]>
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.
Summary
./jcpan -t DBIx::Simpleand JDBC-backed DBIx workflows: bundledDBIx/Simple(JARjar:PERL5LIB, built fromsrc/main/perl/lib) with JDBC-aware statement handling (keep_statements = 0when appropriate). Launcherjcpandoes not prepend a checkout-only filesystem tree toPERL5LIB— seedev/modules/dbix_simple.mdfor@INCorder and stale~/.perlonjava/libshadowing.scalar $db->query(...)->arrays) retain the invocant across dispatch via refcount hold +dispatchPerlMethodAfterSelfInjected(RuntimeCode.java).DBI.fetchrow_hashrefhonors$sth->fetchrow_hashref('NAME_lc')(andFetchHashKeyName) likeDBI.pm, fixing upstreamt/sqlite.texpectations underJCPAN_RUN_BUNDLED_TESTS=1.dev/modules/dbix_simple.md,dev/tools/dbix_simple_chain_repro.pl, and unit testunit/dbi_fetchrow_hashref_name_lc.t(post-merge checklist lives in the module doc).Test plan
maketimeout 120 ./jperl dev/tools/dbix_simple_chain_repro.pl(with JAR bundle; clear~/.perlonjava/lib/DBIx/Simple.pmifkeep_statementsis not0)JCPAN_RUN_BUNDLED_TESTS=1 timeout 600 ./jcpan -t DBIx::Simple(allt/PASS)