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

Quote SQLite table identifiers in DBI column_info PRAGMA

Fermée Adaptée aux débutants
#1,605 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
84/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
java, perl, sqlite
Domaine
databases

Piste de recherche

Commencez dans src/main/java/org/perlonjava/runtime/perlmodule/DBI.java, au niveau de columnInfoViaPragma, puis reproduisez l’échec avec les tests SQLite t/13-init.t, t/14-smart-accessors.t et t/15-sql-row.t. C’est terminé lorsque column_info renvoie les métadonnées d’une table nommée order sans erreur de syntaxe SQLite ; le défaut distinct concernant active-flag est suivi dans #1604.

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

Description

area:cpan-port area:database bug

Summary

PerlOnJava's SQLite-specific DBI.column_info constructs PRAGMA table_info($table) without quoting the table identifier. A table named order therefore produces PRAGMA table_info(order), which SQLite rejects because order is a reserved word.

ActiveRecord::Simple 1.11 creates and introspects an order table in its SQLite tests. The metadata call fails, and its caller then attempts fetchall_arrayref on the undefined result, aborting t/13-init.t, t/14-smart-accessors.t, and t/15-sql-row.t before those tests emit TAP.

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: the SQLite metadata error reproduces on both JVM and interpreter backends.
  • Diagnostic: DBI column_info failed: near "order": syntax error, followed by an attempt to call fetchall_arrayref on an undefined value.

Suspected cause

columnInfoViaPragma in src/main/java/org/perlonjava/runtime/perlmodule/DBI.java concatenates the table name directly into PRAGMA table_info(...). It should use SQLite-safe identifier quoting (or another metadata approach that safely handles reserved names).

Expected result

column_info should return metadata for valid SQLite table names, including reserved words such as order, without SQL syntax errors.

A separate missing-active-flag defect in the synthetic column_info statement handle breaks accessor discovery and is tracked in #1604.

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.