Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

SQLite column_info statement is inactive, breaking ActiveRecord auto_load

Fechada Para iniciantes
#1,604 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
85/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
java, perl, sqlite
Domínio
backend, databases

Direção de pesquisa

Comece por src/main/java/org/perlonjava/runtime/perlmodule/DBI.java e pelo ponto de entrada columnInfoViaPragma, depois inspecione src/main/perl/lib/DBI.pm fetchall_arrayref e sua verificação de Active. Execute t/07-auto_load.t; concluído significa que as linhas SQLite column_info são retornadas e que os acessors first_name e id passam.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Perl
Estrelas
64
Forks
8
Merge médio
5h 39min
PRs com merge (30d)
213

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de fglock/PerlOnJava

Todas as issues de fglock/PerlOnJava

Issues semelhantes

Mais issues de Perl

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.