<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>Added functionalities (hooks)</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P><FONT SIZE=2 FACE="Arial">Hi folks,</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">I just committed a number of functionality improvements to DBD::Sqlite; I hope it's OK to commit into the trunk (so far I didn't see any policy of using branches). The changes are</FONT></P>
<P><FONT SIZE=2 FACE="Arial"> - Added support for commit/rollback/update hooks (DAMI)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> - Added support for set_authorizer (DAMI)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> - Added support for collation_needed(), and reorganised driver API</FONT>
<BR><FONT SIZE=2 FACE="Arial"> for user-defined collations (DAMI)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> - Exported constants from sqlite3.h into DBD::SQLite namespace (DAMI)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> - Added support in t/lib/Test.pm for checking both versions of</FONT>
<BR><FONT SIZE=2 FACE="Arial"> driver-private methods ("func" / "sqlite_*") (DAMI)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> - Removed unused and obsolete "list_tables" from SQLite.xs (DAMI)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> - Added a default implementation for the REGEXP infix operator (DAMI)</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Most of these are just to make some sqlite hooks available to Perl programmers.</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">The following design decisions are perhaps subject to discussions :</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">a) builtin perl collations now are coderefs in a global hash %DBD::SQLite::COLLATION. This way, clients can add their own collations into the hash, and these will be loaded on demand (no need to call create_collation every time you open a $dbh).</FONT></P>
<P><FONT SIZE=2 FACE="Arial">b) the SQLite REGEXP operator is bound by default to a perl regexp matching function.</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">c) I added a mechanism in t/lib/Test.pm so that test programs can test both versions of driver-private methods, from the same source code. So far this was only applied to 13_create_collation.t, 36_hooks.t and 37_regexp.t; but if everybody is happy with that, we could get rid of the other t/*_func.t tests.</FONT></P>
<BR>
<BR>
<P><FONT SIZE=2 FACE="Arial">Cheers, </FONT>
</P>
<P> <FONT SIZE=2 FACE="Arial">Laurent Dami</FONT>
</P>
</BODY>
</HTML>