-C Add\snew\sAPIs\sto\sthe\send\sof\sthe\ssqlite3_apis\sstructure\sin\sloadext.c,\sin\sorder\nto\spreserve\sbackwards\scompatibility.\s\sFix\san\sincompatibility\sintroduced\nby\s(4108).\s(CVS\s4168)
-D 2007-07-20T10:33:59
+C Keep\ssqlite3ext.h\sbackwards\scompatible.\s\sThis\sreally\sshould\shave\sbeen\spart\nof\sthe\sprevious\scheck-in.\s(CVS\s4169)
+D 2007-07-20T10:48:36
F Makefile.in 0c0e53720f658c7a551046442dd7afba0b72bfbe
F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
F src/shell.c e7534cce78398bc1cac4a643e931fc6221c2897e
F src/sqlite.h.in 8164526b1658a6dad472953ea91239849f913d45
-F src/sqlite3ext.h 95575e0d175a0271fe2c3232c0d11e8720ed6887
+F src/sqlite3ext.h a27bedc222df5e5f0f458ac99726d0483b953a91
F src/sqliteInt.h 81183ae71162818bf60478e738ff68604128bb06
F src/sqliteLimit.h f14609c27636ebc217c9603ade26dbdd7d0f6afa
F src/table.c a8de75bcedf84d4060d804264b067ab3b1a3561d
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P cf227766aca5065fd68e83f145943fe9d15cd7ef
-R a932a01e06beeb386be458c9e10ebc6a
+P 639993490ea829208b5f309bbe6c166c34e89d14
+R 53a63e386d2f1bebd83197639640d532
U drh
-Z 715704104cff79f98a7444c08066924c
+Z 494a6859ff64557ced4e460d6f3cbde1
** as extensions by SQLite should #include this file instead of
** sqlite3.h.
**
-** @(#) $Id: sqlite3ext.h,v 1.11 2007/06/22 15:21:16 danielk1977 Exp $
+** @(#) $Id: sqlite3ext.h,v 1.12 2007/07/20 10:48:36 drh Exp $
*/
#ifndef _SQLITE3EXT_H_
#define _SQLITE3EXT_H_
/*
** The following structure hold pointers to all of the SQLite API
** routines.
+**
+** WARNING: In order to maintain backwards compatibility, add new
+** interfaces to the end of this structure only. If you insert new
+** interfaces in the middle of this structure, then older different
+** versions of SQLite will not be able to load each others shared
+** libraries!
*/
struct sqlite3_api_routines {
void * (*aggregate_context)(sqlite3_context*,int nBytes);
int (*create_function)(sqlite3*,const char*,int,int,void*,void (*xFunc)(sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int,sqlite3_value**),void (*xFinal)(sqlite3_context*));
int (*create_function16)(sqlite3*,const void*,int,int,void*,void (*xFunc)(sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int,sqlite3_value**),void (*xFinal)(sqlite3_context*));
int (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*);
- int (*create_module_v2)(sqlite3*,const char*,const sqlite3_module*,void*,void (*xDestroy)(void *));
int (*data_count)(sqlite3_stmt*pStmt);
sqlite3 * (*db_handle)(sqlite3_stmt*);
int (*declare_vtab)(sqlite3*,const char*);
int (*prepare_v2)(sqlite3*,const char*,int,sqlite3_stmt**,const char**);
int (*prepare16_v2)(sqlite3*,const void*,int,sqlite3_stmt**,const void**);
int (*clear_bindings)(sqlite3_stmt*);
+ int (*create_module_v2)(sqlite3*,const char*,const sqlite3_module*,void*,void (*xDestroy)(void *));
};
/*