Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

SQLite column_info statement is inactive, breaking ActiveRecord auto_load

Fermée Adaptée aux débutants
#1,604 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
85/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
java, perl, sqlite
Domaine
backend, databases

Piste de recherche

Commencez par src/main/java/org/perlonjava/runtime/perlmodule/DBI.java et le point d’entrée columnInfoViaPragma, puis examinez src/main/perl/lib/DBI.pm fetchall_arrayref et sa vérification de Active. Exécutez t/07-auto_load.t ; cela signifie que les lignes SQLite column_info sont renvoyées et que les accesseurs first_name et id passent.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

area:cpan-port area:database bug

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-Simple 1.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.t reproducibly fails tests 2 and 3 on both JVM and interpreter backends.
  • A focused metadata check returned COLUMN_NAME rows through column_info, but fetchall_arrayref({}) yielded no rows; after auto_load, Customer->can('first_name') and Customer->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.

Langage dominant
Perl
Étoiles
64
Forks
8
Merge moyen
5 h 39 min
PR mergées (30 j)
213

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de fglock/PerlOnJava

Toutes les issues de fglock/PerlOnJava

Issues similaires

Plus d'issues Perl

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.