Hi Jeff,
I'm still having a few problems. I tried 1.11, but the key lookups are still doing full file reads. Moving on to 1.12, I was happy to see the key lookups worked great, but I got unexpected results from queries.
Thanks for your help. -Jim
Here's the test code: ---------------------------------- #!perl -w $|=1; use strict; use DBI; my $dbh = DBI->connect('dbi:DBM:type=GDBM_File;mldbm=Storable'); $dbh->do(q{ DROP TABLE IF EXISTS dbm_test }); $dbh->do(q{ CREATE table dbm_test (c1 INT, c2 TEXT, c3 TEXT) }); my $insert = $dbh->prepare(q{ INSERT INTO dbm_test VALUES(?,?,?) }); $insert->execute(1,'a','foo'); $insert->execute(2,'b','bar'); $insert->execute(3,'c','baz'); my $select = $dbh->prepare(q{ SELECT * FROM dbm_test }); $select->execute; $select->dump_results; $select = $dbh->prepare(q{ SELECT c1,c3 FROM dbm_test WHERE c1=? }); $select->execute(5); # should return nada. $select->dump_results; $select->execute(1); # should to columns $select->dump_results; print $dbh->dbm_versions;
--------------------------------------------------------- SQL-Statement-1.11 output Correct results but optimized key lookups isn't working (full file reads) --------------------------------------------------------- $ perl tdbm.pl '2', 'b', 'bar' '3', 'c', 'baz' '1', 'a', 'foo' 3 rows
0 rows '1', 'foo' 1 rows DBD::DBM 0.02 using GDBM_File + MLDBM + Storable DBD::File 0.33 DBI::SQL::Nano 0.03 SQL::Statement 1.11 DBI 1.48 OS linux (2.4.22-1.2115.nptlsmp) Perl 5.008003 (i686-linux-thread-multi)
--------------------------------------------------------- SQL-Statement-1.12 output Incorrect results but optimized key lookups works great --------------------------------------------------------- $ perl tdbm.pl '2', 'b', 'bar' '3', 'c', 'baz' '1', 'a', 'foo' 3 rows
0 rows '1', 'foo' 1 rows DBD::DBM 0.02 using GDBM_File + MLDBM + Storable DBD::File 0.33 DBI::SQL::Nano 0.03 SQL::Statement 1.11 DBI 1.48 OS linux (2.4.22-1.2115.nptlsmp) Perl 5.008003 (i686-linux-thread-multi)