Skip Menu |

This queue is for tickets about the Class-DBI-SQLite CPAN distribution.

Report information
The Basics
Id: 7794
Status: resolved
Priority: 0/
Queue: Class-DBI-SQLite

People
Owner: Nobody in particular
Requestors: sethg [...] ropine.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Date: Tue, 28 Sep 2004 10:45:13 -0400
From: Seth Gordon <sethg [...] ropine.com>
To: bug-DBD-SQLite [...] rt.cpan.org, bug-Class-DBI-SQLite [...] rt.cpan.org
Subject: Class::DBI::SQLite fails "make test" when DBD::SQLite prepares "PRAGMA table_info(?)"
When I run "make test" on Class::DBI::SQLite, I get this error message while running 02_table.t: DBD::SQLite::db prepare failed: near "?": syntax error(1) at dbdimp.c line 263 [for Statement "PRAGMA table_info(?) "] at /usr/local/libdata/perl5/site_perl/Class/DBI/SQLite.pm line 20. The dbdimp.c file is part of DBD::SQLite, but DBD::SQLite passes its own test suite, so I'm not sure which module has the bug. If I install the module anyway and then try to use another module that depends on Class::DBI::SQLite, I get the same error message. I'm running OpenBSD 3.5 on a G4. These are the versions of the relevant modules that I have installed: Class::DBI::SQLite 0.04 Class::DBI 0.96 DBD::SQLite 1.06 Ima::DBI 0.33 SQL::Dialects::AnyData undef SQL::Parser 1.09 Test::More 0.47 DBI 1.43 This is the complete output of "make test": PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00_compile....ok t/01_sqlite.....Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 4/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 8/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 12/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 16/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 20/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 24/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 28/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 32/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok 36/42Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. Use of uninitialized value in subroutine entry at /usr/local/libdata/perl5/site_perl/DBIx/ContextualFetch.pm line 51. t/01_sqlite.....ok t/02_table......DBD::SQLite::db prepare failed: near "?": syntax error(1) at dbdimp.c line 263 [for Statement "PRAGMA table_info(?) "] at /var/perl/cpanplus/5.8.2/build/Class-DBI-SQLite-0.04/blib/lib/Class/DBI/SQLite.pm line 20. # Looks like your test died before it could output anything. t/02_table......dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 1-5 Failed 5/5 tests, 0.00% okay Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/02_table.t 2 512 5 10 200.00% 1-5 Failed 1/3 test scripts, 66.67% okay. 5/48 subtests failed, 89.58% okay. *** Error code 2
[sethg@ropine.com - Tue Sep 28 10:53:22 2004]: Show quoted text
> When I run "make test" on Class::DBI::SQLite, I get this error message > while running 02_table.t: > > DBD::SQLite::db prepare failed: near "?": syntax error(1) at dbdimp.c > line 263 [for Statement "PRAGMA table_info(?) > "] at /usr/local/libdata/perl5/site_perl/Class/DBI/SQLite.pm line 20.
The problem here is that PRAGMA table_info is not prepared correctly (parameter binding seems to fail). Which might be a bug in DBD::SQLite or SQLite itself. The small patch attached below should at least get you up and running again. Regards, Sebastian diff .old/lib/Class/DBI/SQLite.pm .fixed/lib/Class/DBI/SQLite.pm 20,23c20,22 < my $sth = $class->db_Main->prepare(<<'SQL'); < PRAGMA table_info(?) < SQL < $sth->execute($table); --- Show quoted text
> my $sth = $class->db_Main->prepare > ("PRAGMA table_info('$table')"); > $sth->execute();