Re: [DBD-SQLite] test DBD::SQLite 1.26_05 - foreign keys!

2009-10-15 Thread Darren Duncan

I'll try to remember that policy when I next make an announcement.

Meanwhile, that line was from MST in his DBD::SQLite announcement back in 
Spring, and it seemed reasonable to continue.


And Adam, thank you for being so prompt with the release.

-- Darren Duncan

Adam Kennedy wrote:

Please note the following correction to the announcement.

Whining is also welcome. :)

Adam K

2009/10/15 Darren Duncan dar...@darrenduncan.net:

Patches welcome.  Ideas welcome.  Testing welcome.  Whining to /dev/null.


___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


[DBD-SQLite] [Fwd: Re: test DBD::SQLite 1.26_05 - foreign keys!]

2009-10-15 Thread Darren Duncan



 Original Message 
Subject: Re: test DBD::SQLite 1.26_05 - foreign keys!
Date: Thu, 15 Oct 2009 10:06:51 -0400
From: John Siracusa sirac...@gmail.com
Reply-To: rose-db-obj...@googlegroups.com
To: rose-db-obj...@googlegroups.com
References: 4ad6c3a7.5080...@darrenduncan.net


On Thu, Oct 15, 2009 at 2:39 AM, Darren Duncan dar...@darrenduncan.net wrote:

TESTING NEEDED!

Please bash the hell out of the latest DBD::SQLite and report any outstanding
bugs on RT.  Test your dependent or compatible projects with it, which includes
any DBMS-wrapping or object persistence modules, and applications.


All RDBO tests pass, and it appears to have fixed this bug:

http://rt.cpan.org/Public/Bug/Display.html?id=48393

-John

___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


[DBD-SQLite] Re: [sqlite] test DBD::SQLite 1.26_05 - foreign keys!

2009-10-15 Thread Darren Duncan

P Kishor wrote [on sqlite-us...@sqlite.org]:

On Thu, Oct 15, 2009 at 1:39 AM, Darren Duncan dar...@darrenduncan.net wrote:

All,

I am pleased to announce that DBD::SQLite (Self Contained RDBMS in a Perl DBI
Driver) version 1.26_05 has been released on CPAN (by Adam Kennedy).


..

P.S.  DBD::SQLite has at least 1 known bug, also in version 1.25, with regard to
full-text search (FTS3); there is an included new failing test, which currently
is set to skip so the CPAN testers don't issue fails,


I tried to create a db with FTS3 and got the following

perl(12546) malloc: *** error for object 0x1eb160: Non-aligned pointer
being freed (2)
*** set a breakpoint in malloc_error_break to debug
perl(12546) malloc: *** error for object 0x870200: double free
*** set a breakpoint in malloc_error_break to debug
perl(12546) malloc: *** error for object 0x1ea668: Non-aligned pointer
being freed
*** set a breakpoint in malloc_error_break to debug
Segmentation fault

Is the above the FTS3 related error?


Looks similar.  This is the official bug report that we already have, which was 
reported on Oct 14, and on which the failing/skipping test is based:


  http://rt.cpan.org/Public/Bug/Display.html?id=50503

  Subject: Segfault with fts3

A copy of the ticket text is displayed below the dashed line in this email also.

The bug report was against DBD::SQLite versions that bundled SQLite 3.6.13 and 
3.6.18 respectively, for both of which the bug manifests.


As of yet the bug is unfixed.

If you have any new information, it would be useful for you to add it to the 
above RT ticket.


-- Darren Duncan



[text/plain 790b]
The attached script fails on 1.25 and 1.26_04. It does one of three things:

- segfaults
- gives a double free error
- hangs without any cpu activity

Which of the above three it does depends on the exact script (adding or
removing a print line can change its behavior), but it always fails.

Here are a couple sample error messages:
*** glibc detected *** double free or corruption (!prev):
0x0083c480 ***
Abort (core dumped)

Segmentation fault (core dumped)

The database doesn't appear to be corrupted after the failure -- running
an integrity check with the sqlite3 command line binary says the db is okay.

The equivalent code without the fts3 module works fine.

I did a quick test with the DBD::SQLite packaged with the latest Ubuntu
(1.14), and that version seems to work.

___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


[DBD-SQLite] ANN - DBD::SQLite 1.27 - test it!

2009-11-23 Thread Darren Duncan

All,

I am pleased to announce that DBD::SQLite (Self Contained RDBMS in a Perl DBI
Driver) version 1.27 has been released on CPAN (by Adam Kennedy).

  http://search.cpan.org/~adamk/DBD-SQLite-1.27/

This release is the newest one intended for production use and has no known 
serious bugs.  The previous version for production was 1.25, which was released 
on 2009 April 23.


There were many improvements and changes between these 2 versions, and many bugs 
fixed; see http://cpansearch.perl.org/src/ADAMK/DBD-SQLite-1.27/Changes for a 
complete list.


Just a small number of these are, since 1.25:

- The bundled SQLite is version is now 3.6.20, up from 3.6.13 (both were 
the Amalgamation).


- Foreign key constraints are now supported and enforceable by SQLite. 
However, to aid backwards compatibility and give you a transition period to 
ensure your applications work with them, this feature is not enabled by default. 
 You enable (or disable) foreign key enforcement by issuing a pragma.


- Read the Changes file linked above, especially the sections that say 
changes which may possibly break your old applications.


As usual, testing of this release is appreciated and recommended.

If you use referential stuff in your schema (which SQLite ignores by default 
now) should do extensive testing to ensure that they will work when you issue 
PRAGMA foreign_keys = ON.  It is anticipated that foreign keys will be enabled 
by default within 1 or 2 production releases, and you will have to cope with it.


If you want in to DBD::SQLite development, then join the following email/IRC
forums which MST created (the mailing list, I am administrating):

  http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite

  #dbd-sqlite on irc.perl.org

And the canonical version control is at:

  http://svn.ali.as/cpan/trunk/DBD-SQLite/

Patches welcome.  Ideas welcome.  Testing welcome.  Whining is also welcome!

If you feel that a bug you find is in SQLite itself rather than the Perl DBI
driver for it, the main users email forum for SQLite in general is at:

  http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

... where you can report it as an appropriate list post (the SQLite issue
tracking system is no longer updateable by the public; posting in the list can
cause an update there by a registered SQLite developer).

Please do not reply to me directly with your responses.  Instead send them to
the forums or file with RT as is appropriate.

Thank you. -- Darren Duncan


___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


Re: [DBD-SQLite] problems using sqlite with mod_perl in apache

2009-12-01 Thread Darren Duncan
Mike, off-hand it looks like you're trying to use SQLite 2.x and SQLite 3.x on 
the same database.  You can't do this as these 2 SQLite major versions are 
incompatible with each other, with different file formats, and SQLite 3 won't 
work with SQLite 2 files.  Make sure you are using just DBD::SQLite2 (SQLite 2) 
or DBD::SQLite (SQLite 3) with the same database on both the command-line and in 
your web app.  Note that the reason the DBD::SQLite which does SQLite v2 and v3 
have different Perl package names is so that you can use both in the same 
program at once, if you wanted to such as to do a conversion, though for 
conversion using the SQLite command-line utility for dump and then load works 
well, perhaps best, also. -- Darren Duncan


Mike Campbell wrote:
I've developed a small app that uses a webpage to insert/delete data 
into a sqlite database. The script work find when I run them from the 
command line but not when run from the webpage.


For example,  using the following code:

$db = DBI-connect(dbi:SQLite2:dbname=/home/oracle/bugpush/bugpush.db, 
, , { RaiseError = 1, AutoCommit = 1 }) || die( $DBI::errstr . 
\n );


$sth = $db-prepare(select api_key, bugno, last_update_date, analyst 
from tracked_bugs order by bugno);

if(! defined($sth) || ! ($sth)) {
  print Failed to prepare SQL statement:\n;
  print $DBI::errstr\n;
  goto END;
}

In the apache error_log I see the following:

[Tue Dec 01 06:49:21 2009] [error] DBD::SQLite::db prepare failed: not 
an error

at /home/oracle/bugpush/tracking.cgi

Oddly enough if I use the DBD::SQLite2 module this works just fine 
(although the underlying db that is created is sqlite v2.x).


I have verified that this is not a permission problem as I have copied 
the database file to /tmp/bugpush.db and set the permissions as 777 but 
still get the same result.


Any ideas as to why this is failing to run with DBD-SQLite-1.27 but 
works fine with DBD-SQLite2-0.33?



___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


Re: [DBD-SQLite] problems using sqlite with mod_perl in apache

2009-12-01 Thread Darren Duncan

Mike Campbell wrote:

Ok here is what I get.

Test using DBD::SQLite (same output when used command-line and via webpage)
=
the SQLite v3 is 1.27

Test using DBD::SQLite2 (same output when used command-line and via webpage)
the SQLite v2 is 0.33

snip

At first glance you seem to be doing things adequately in your code samples.

However, your code looks very old-fashioned, maybe because you based it on old 
code you saw somewhere, and making it into more modern Perl can probably help.


For starters, when you are using DBI, *always* configure it to throw exceptions 
on errors rather than just return nothing.


Instead of this:

$db = DBI-connect(dbi:SQLite:dbname=/tmp/bugpush.db, , )
  || die( $DBI::errstr . \n );

... do this:

$db = DBI-connect(dbi:SQLite:dbname=/tmp/bugpush.db, , ,
{ RaiseError = 1 });

That alone should go further towards you getting useful error messages when you 
should be.


Also you can remove all your tests like if(! defined($sth) || ! ($sth)) or if 
(! defined( $rc ) ).


When DBI is set to throw exceptions, you can just code as if each step will work 
and you don't need to test, since the program should die by itself if something 
goes wrong.


Instead, you just do tests when you want the program to not die but rather be 
more graceful when something goes wrong, and then you do it by setting up an 
exception handler (an eval block), but we don't need to get into that now.


So try making those changes and see what effect is has.

I'm not immediately in the position to run your code myself, not having mod_perl 
installed.


It would be helpful if you could provide more information on your setup.

What versions of Perl and DBI are you using, to start with.

To find out, you can use code like this:

  my $perlvers = $[;

  use DBI;
  my $dbivers = $DBI::VERSION;

Run that on both command-line and mod-perl as usual.

Also your versions of Apache and mod_perl are useful to know.

Also try running your code under FastCGI, or CGI, rather than mod_perl and see 
if that has any effect on the result.  Include the tests for what 
DBD::SQLite/etc version is running if necessary.


Maybe someone else on this list has ideas?

-- Darren Duncan


___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


[DBD-SQLite] [Fwd: Re: [sqlite] SQLite bug ticket - build fails on sun4-solaris-64int 2.10]

2010-01-02 Thread Darren Duncan



 Original Message 
Subject: Re: [sqlite] SQLite bug ticket - build fails on sun4-solaris-64int 2.10
Date: Sat, 02 Jan 2010 20:55:53 +
From: Dr. David Kirkby david.kir...@onetel.net
Reply-To: General Discussion of SQLite Database sqlite-us...@sqlite.org
To: General Discussion of SQLite Database sqlite-us...@sqlite.org
References: 4b3efa2a.3090...@darrenduncan.net

Darren Duncan wrote:
I would like to bring an apparent SQLite bug to the attention of the SQLite core 
developers as a ticket, where build fails on sun4-solaris-64int 2.10.


This problem was reported to the DBD::SQLite (Perl binding) developers as an 
automatically generated smoke tester ticket which can be seen here for all the 
details, but I have copied the most central portion into this email below the 
dashed line:


http://www.nntp.perl.org/group/perl.cpan.testers/2009/12/msg6529201.html

Note that the DBD::SQLite version that was tested bundles SQLite 3.6.20, so 
there is a chance that the latest 3.6.21 fixes it; if you think it necessary I 
can try asking the tester to try with the newer version.


Thank you.

-- Darren Duncan


I get the same warnings as Darren with Sun Studio - the Sun compiler tends to be
more fussy than gcc. But my build does succeed. This is version 3.6.19 I assume.
  The output below is from a Sun Ultra 27 (Xeon processor), but I've built
sqlite on Solaris 10 SPARC, from both the first version (02/2005) and the latest
Solaris 10 update 7 (late 2009).

  /opt/sunstudio12.1/bin/cc -DPACKAGE_NAME=\sqlite\
-DPACKAGE_TARNAME=\sqlite\ -DPACKAGE_VERSION=\3.6.19\
-DPACKAGE_STRING=\sqlite 3.6.19\
-DPACKAGE_BUGREPORT=\http://www.sqlite.org\; -DPACKAGE=\sqlite\
-DVERSION=\3.6.19\ -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1
-DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1
-DHAVE_READLINE=1 -I. -I. -I /export/home/drkirkby/sage-4.3/local/include
-DSQLITE_THREADSAFE=1 -m64 -g -O2 -c sqlite3.c  -KPIC -DPIC -o .libs/sqlite3.o
sqlite3.c, line 19207: warning: integer overflow detected: op 
sqlite3.c, line 19224: warning: integer overflow detected: op 
sqlite3.c, line 33277: warning: statement not reached
sqlite3.c, line 70955: warning: integer overflow detected: op 
  /opt/sunstudio12.1/bin/cc -DPACKAGE_NAME=\sqlite\
-DPACKAGE_TARNAME=\sqlite\ -DPACKAGE_VERSION=\3.6.19\
-DPACKAGE_STRING=\sqlite 3.6.19\
-DPACKAGE_BUGREPORT=\http://www.sqlite.org\; -DPACKAGE=\sqlite\
-DVERSION=\3.6.19\ -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1
-DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1
-DHAVE_READLINE=1 -I. -I. -I /export/home/drkirkby/sage-4.3/local/include
-DSQLITE_THREADSAFE=1 -m64 -g -O2 -c sqlite3.c -o sqlite3.o /dev/null 21

I do not know how much access sqlite developers have to Solaris machines, but if
they need access to a SPARC, I can get a serious developer access to a T5240 via
the University of Washington. Just drop me an email, with your preferred user
name and state your role in sqlite development.


Dave


___
sqlite-users mailing list
sqlite-us...@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


[DBD-SQLite] [Fwd: Re: [sqlite] SQLite version 3.7.0]

2010-07-22 Thread Darren Duncan



 Original Message 
Subject: Re: [sqlite] SQLite version 3.7.0
Date: Thu, 22 Jul 2010 18:31:42 +0700
From: Dan Kennedy danielk1...@gmail.com
To: General Discussion of SQLite Database sqlite-us...@sqlite.org


On Jul 22, 2010, at 1:08 PM, Darren Duncan wrote:
snip

On that note, I got this report from someone on Windows:

Latest SVN trunk tested on win32 Strawberry perl v1.12.1 : all  
tests pass,

no problem.

... and I was using a Unixen.


Is there any way your tests could be deleting a database
file while there is still an open sqlite connection to it?

With 3.7.0, if the underlying database file is unlinked
while you are connected to it, then you try to write to
the database, you get SQLITE_IOERR_FSTAT. Earlier versions
would continue writing without causing an error.

You cannot delete a file while it is open on windows, so
this doesn't come up on win32.

This happened with a couple of Tcl tests too.


___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


Re: [DBD-SQLite] SQLite 3.7.x problem fixed, please dev-release

2010-08-25 Thread Darren Duncan

Kenichi Ishigaki wrote:

Hi. Sorry that I had little time recently and didn't fix
the issue on sqlite numbers for 64 bit environments.
I tentatively disabled it as it is rather a big change
and might break other distributions' tests that expected
every bind param was a quoted text for sqlite. I'll look
into it again after we ship the next non-dev release.

Best,

Kenichi


Thank you for the timeliness of these corrections, which got in prior to Adam 
making the developer release.


Under the circumstances, I recommend releasing what we have now as version 1.31 
production within a week if there are no showstopper problems discovered with 
1.30_04 in the meantime.


In preparation for that, I'll send out a few emails now asking for people to 
test 1.30_04, which has some large changes from 1.29.


-- Darren Duncan

___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


Re: [DBD-SQLite] policy for FTS5 integration ?

2015-10-26 Thread Darren Duncan
I believe the best option is d) to support both FTS4 and FTS5 at the same time, 
as if they were different data types.  Failing that, I like b) the best.  I also 
think a) is the worst option; this is not something worth forking over. -- 
Darren Duncan


On 2015-10-25 11:46 PM, Dami Laurent (PJ) wrote:

Hi there,

I noticed that the 3.9.0 amalgamation now contains FTS5. So it’s time to think
about the evolution of FTS support in DBD::Sqlite.

At the moment, FTS5 is still experimental, but at some point it will stabilize
and become mainstream.

FTS5 contains incompatible changes from FTS3/4 (see
http://www.sqlite.org/fts5.html#appendix_a).

Some of those incompatibilities can be handled in the DBD::Sqlite driver and
therefore will be invisible to users ; but some other points change the SQL API
to FTS and therefore **will** be visible.

So what should be the future evolution of DBD::Sqlite with respect to FTS ? Here
are some options :

a)Stick with FTS4 forever to preserve backwards compatibility, and fork a new
distrib DBD::SQLite::FTS5 (but then how to keep both distribs in sync ?)

b)Target for a backwards-incompatible move to FTS5 at some point in the future,
and advertise it long in advance

c)Support 2 variants, with an option in Makefile.PL to choose the FTS version at
compilation time (but this could be a nightmare for automatic toolchains).

d)Try to simultaneously activate FTS3 and FTS5 in the same compilation (I don’t
know if this is possible), and let users choose through runtime options.

e)Any other idea ?

DBD::Sqlite never encountered this issue before, because the first FTS support
was for FTS3, and then when sqlite.org introduced FTS4 it was fully compatible
with FTS3. The only somewhat similar situation was in2010 when the FTS syntax
changed from « Standard Query Syntax » to « Extended Query Syntax » ;  at that
time I published the DBD::Sqlite::FTS3Transitional module to help with the
migration, but this time it will not be that simple.

So what do you think ? My personal preference would be for option b). It’s not
very nice to break backwards compatibility, but sometimes it must happen.
Besides, I never saw any public discussions, comments or bug reports about FTS
support in DBD ::Sqlite, so the user community is probably quite small, and
therefore the impact of such a change would be limited. Of course this should
only be activated when FTS5 has becomes stable, which should still take a couple
of months.

Once the policy issue is settled, I’m interested to volunteer for working on the
technical aspects – but I have very little free time to do so, so I will not
progress very fast. If anybody else has more time, they are welcome to take the 
job.

Cheers, Laurent Dami




___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite