SQLite column_info statement is inactive, breaking ActiveRecord auto_load
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 85/100
調査の方向性
src/main/java/org/perlonjava/runtime/perlmodule/DBI.java と columnInfoViaPragma エントリポイントから始め、次に src/main/perl/lib/DBI.pm fetchall_arrayref とその Active チェックを調べます。t/07-auto_load.t を実行します。完了とは、SQLite column_info 行が返され、first_name と id のアクセサーがパスすることを意味します。
索引モデルが issue の本文から書いたものです。
説明
Summary
ActiveRecord::Simple 1.11 fails to discover SQLite columns on PerlOnJava because the synthetic statement handle returned by SQLite DBI.column_info is not marked active. The bundled DBI.pm implementation of fetchall_arrayref returns undef immediately for an inactive statement handle, so auto_load receives no columns and does not generate column accessors.
This causes t/07-auto_load.t to fail its first_name and id accessor assertions.
Evidence
- CPAN random tester run:
20261002-084902-54310 - Distribution/version:
ActiveRecord-Simple1.11 - System Perl 5.42.2 on macOS 26.6.2 arm64: all 16 test files passed (206 tests).
- PerlOnJava 5.44.1, build
f25d551c1, Java 24.0.2 on macOS 26.6.2 arm64:t/07-auto_load.treproducibly fails tests 2 and 3 on both JVM and interpreter backends. - A focused metadata check returned
COLUMN_NAMErows throughcolumn_info, butfetchall_arrayref({})yielded no rows; afterauto_load,Customer->can('first_name')andCustomer->can('id')were false.
Suspected cause
columnInfoViaPragma in src/main/java/org/perlonjava/runtime/perlmodule/DBI.java stores the rows in _pragma_rows, but unlike the ordinary metadata result handle it does not set the statement handle's Active flag. src/main/perl/lib/DBI.pm checks $sth->{Active} at the start of fetchall_arrayref and returns undef when false.
Expected result
The synthetic SQLite metadata statement should behave as an active DBI statement handle, and fetchall_arrayref({}) should return the column rows so auto_load can generate accessors.
The same CPAN run also found a separate SQLite identifier quoting failure for a table named order; that behavior is tracked separately.
- 主要言語
- Perl
- スター
- 64
- フォーク
- 7
- 平均マージ
- 4時間 27分
- マージ済み PR(30日)
- 178
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
fglock/PerlOnJava のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
fglock/PerlOnJava#1651 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
fglock/PerlOnJava#1579 ·
メンテナーはふだん 1 日以内に返信
-
area:cpan-port area:unicode bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
fglock/PerlOnJava#1341 ·
メンテナーはふだん 1 日以内に返信
-
area:backend area:cpan-port area:parser bug
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
fglock/PerlOnJava#1659 ·
メンテナーはふだん 1 日以内に返信
-
Alien::Build archive extraction fails for Ninja and Meson対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
fglock/PerlOnJava#1657 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
fglock/PerlOnJava の issue をすべて見る
似ている issue
-
Add IO::Pipe classオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
yuki-kimoto/SPVM-IO#30 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
convos-chat/convos#977 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
inverse-inc/packetfence#9387 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
linux-test-project/lcov#552 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
szTheory/exifcleaner#383 ·
メンテナーはふだん 1 日以内に返信