<!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">&nbsp;&nbsp;&nbsp; - Added support for commit/rollback/update hooks (DAMI)</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; - Added support for set_authorizer (DAMI)</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; - Added support for collation_needed(), and reorganised driver API</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for user-defined collations (DAMI)</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; - Exported constants from sqlite3.h into DBD::SQLite namespace (DAMI)</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; - Added support in t/lib/Test.pm for checking both versions of</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; driver-private methods (&quot;func&quot; / &quot;sqlite_*&quot;) (DAMI)</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; - Removed unused and obsolete &quot;list_tables&quot; from SQLite.xs (DAMI)</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; - 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&nbsp; t/*_func.t tests.</FONT></P>
<BR>
<BR>

<P><FONT SIZE=2 FACE="Arial">Cheers, </FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Arial">Laurent Dami</FONT>
</P>

</BODY>
</HTML>