--- Liam Healy <[EMAIL PROTECTED]> wrote:
> Can you explain why you would want it to not compile as a
> loadable module? (i.e. under what circumstances you would not define
> COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE).
When you don't want the overhead/hassle of using shared libraries
and you just want the external functions every time.
diff -u -3 -p -r1.174 func.c
--- src/func.c 3 Sep 2007 11:04:22 -0000 1.174
+++ src/func.c 28 Sep 2007 18:43:52 -0000
@@ -1426,6 +1426,7 @@ void sqlite3RegisterBuiltinFunctions(sql
}
}
sqlite3RegisterDateTimeFunctions(db);
+ RegisterExtensionFunctions(db);
if( !db->mallocFailed ){
int rc = sqlite3_overload_function(db, "MATCH", 2);
assert( rc==SQLITE_NOMEM || rc==SQLITE_OK );
>
> On 9/28/07, Joe Wilson <[EMAIL PROTECTED]> wrote:
> > --- Liam Healy <[EMAIL PROTECTED]> wrote:
> > > Thanks. I have included your changes in extension-functions.c so now
> > > sqlite3_load_extension is usable. I had been using
> > > sqlite3RegisterExtraFunctions which is not the official interface, and
> > > that is why I never encountered this problem. Also, I have improved
> > > the Mac OSX instructions for those that use Macs.
> > >
> > > The new version has been uploaded to sqlite.org/contrib.
> >
> > The following patch allows extension-functions.c to be compiled as
> > either as a standalone shared library extension module, or statically
> > (against the sqlite3.h/sqlite3.c amalgamation) depending on whether
> > COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE is #defined.
> >
> > I tested it against
> >
> > http://www.sqlite.org/contrib/download/extension-functions.c?get=22
> >
> > from 2007-09-28 16:25:46 and it seems to work.
> >
> >
> > --- extension-functions.c-orig 2007-09-28 12:52:13.000000000 -0400
> > +++ extension-functions.c 2007-09-28 12:52:13.000000000 -0400
> > @@ -87,8 +87,12 @@
> >
> > //#if SQLITE_WITH_EXTRA_FUNCTIONS
> >
> > +#ifdef COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE
> > #include "sqlite3ext.h"
> > SQLITE_EXTENSION_INIT1
> > +#else
> > +#include "sqlite3.h"
> > +#endif
> >
> > #include <ctype.h>
> > /* relicoder */
> > @@ -1618,8 +1622,7 @@
> > ** functions. This should be the only routine in this file with
> > ** external linkage.
> > */
> > -int sqlite3_extension_init(sqlite3 *db, char **pzErrMsg, const
> > sqlite3_api_routines *pApi){
> > - SQLITE_EXTENSION_INIT2(pApi);
> > +int RegisterExtensionFunctions(sqlite3 *db){
> > static const struct FuncDef {
> > char *zName;
> > signed char nArg;
> > @@ -1748,6 +1751,15 @@
> > return 0;
> > }
> >
> > +#ifdef COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE
> > +int sqlite3_extension_init(
> > + sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi){
> > + SQLITE_EXTENSION_INIT2(pApi);
> > + RegisterExtensionFunctions(db);
> > + return 0;
> > +}
> > +#endif /* COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE */
> > +
> > //#endif
> >
> > map map_make(cmp_func cmp){
> >
____________________________________________________________________________________
Building a website is a piece of cake. Yahoo! Small Business gives you all the
tools to get online.
http://smallbusiness.yahoo.com/webhosting
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------