-C Write\sdatabase\spages\sin\ssorted\sorder\sto\sreduce\sfile\sfragmentation.\nThis\sis\san\sexperimental\schange.\s\sIt\sis\snot\sclear\sif\sit\swill\shelp\sany.\nIt\smay\swell\sbe\sremoved\sin\sthe\sfuture.\s(CVS\s3255)
-D 2006-06-15T14:31:07
+C Add\scolumn_value,\sdeclare_vtab\sand\screate_module\sto\sthe\sfunction\stable\sused\sby\sdynamic\sextensions.\s(CVS\s3256)
+D 2006-06-15T15:38:42
F Makefile.in 200f6dc376ecfd9b01e5359c4e0c10c02f649b34
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F src/hash.h 1b3f7e2609141fd571f62199fc38687d262e9564
F src/insert.c eba160c6d7f2c44232ff0f168f7b047e20d6f473
F src/legacy.c fa15d505dd4e45044177ee4d1c6aeaf8c836d390
-F src/loadext.c d8c7bd14e6ebc4e9f1ff269475bf63e131919449
+F src/loadext.c 676257ae268457e7f03261d8ca0d1e72968a26c8
F src/main.c 7875e8835539d4f16e8b62fad1dee9bda2091272
F src/md5.c c5fdfa5c2593eaee2e32a5ce6c6927c986eaf217
F src/os.c 59f05de8c5777c34876607114a2fbe55ae578235
F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
F src/shell.c ad73192b30a338a58fe81183d4a5d5a1d4e51d36
F src/sqlite.h.in 1dc44da025da28a011d11ad1608c11a951047fab
-F src/sqlite3ext.h 127bd394c8eea481f2ac9b754bf399dbfc818b75
+F src/sqlite3ext.h fc8647211af0caa9d8e49ab31624b357c1332380
F src/sqliteInt.h 5eb64f1dd9a8b237d147962bc57637d87e044ff4
F src/table.c f64ec4fbfe333f8df925bc6ba494f55e05b0e75e
F src/tclsqlite.c 4ad22f354b6e4e137889000e9f585a0590ca39c5
F src/test5.c 7162f8526affb771c4ed256826eee7bb9eca265f
F src/test6.c 60a02961ceb7b3edc25f5dc5c1ac2556622a76de
F src/test7.c 03fa8d787f6aebc6d1f72504d52f33013ad2c8e3
-F src/test8.c f3082601d4eae6284b33a36fcfe00c8d8d17ee47
+F src/test8.c 9579de4645c9b8be3f8de217224bcf9280da9b6a
F src/test_async.c e3deaedd4d86a56391b81808fde9e44fbd92f1d3
F src/test_loadext.c 22065d601a18878e5542191001f0eaa5d77c0ed8
F src/test_md5.c 6c42bc0a3c0b54be34623ff77a0eec32b2fa96e3
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P d145dc1c4bce403ec967bfd0024002d4de57f833
-R 2239e05327023592b50f3f9abbe32c42
-U drh
-Z 91f8e7798ae68e6bd7062239e69b6453
+P fe3e70a7275d68acb6fb8ea5d62bed3e9d8d2766
+R 47a8b2f6537c22850ce9af0f2e0f04a2
+U danielk1977
+Z ec60b2bf5c12236743a6bbfcf541f438
-fe3e70a7275d68acb6fb8ea5d62bed3e9d8d2766
\ No newline at end of file
+25c475087892fea83bce9d140b46651793b85a86
\ No newline at end of file
sqlite3_column_text,
sqlite3_column_text16,
sqlite3_column_type,
+ sqlite3_column_value,
sqlite3_commit_hook,
sqlite3_complete,
sqlite3_complete16,
sqlite3_create_collation16,
sqlite3_create_function,
sqlite3_create_function16,
+ sqlite3_create_module,
sqlite3_data_count,
sqlite3_db_handle,
+ sqlite3_declare_vtab,
sqlite3_enable_shared_cache,
sqlite3_errcode,
sqlite3_errmsg,
** as extensions by SQLite should #include this file instead of
** sqlite3.h.
**
-** @(#) $Id: sqlite3ext.h,v 1.1 2006/06/08 15:28:44 drh Exp $
+** @(#) $Id: sqlite3ext.h,v 1.2 2006/06/15 15:38:42 danielk1977 Exp $
*/
#ifndef _SQLITE3EXT_H_
#define _SQLITE3EXT_H_
const unsigned char * (*column_text)(sqlite3_stmt*,int iCol);
const void * (*column_text16)(sqlite3_stmt*,int iCol);
int (*column_type)(sqlite3_stmt*,int iCol);
+ sqlite3_value* (*column_value)(sqlite3_stmt*,int iCol);
void * (*commit_hook)(sqlite3*,int(*)(void*),void*);
int (*complete)(const char*sql);
int (*complete16)(const void*sql);
int (*create_collation16)(sqlite3*,const char*,int,void*,int(*)(void*,int,const void*,int,const void*));
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*,sqlite3_module*,void*);
int (*data_count)(sqlite3_stmt*pStmt);
sqlite3 * (*db_handle)(sqlite3_stmt*);
+ int (*declare_vtab)(sqlite3*,const char*);
int (*enable_shared_cache)(int);
int (*errcode)(sqlite3*db);
const char * (*errmsg)(sqlite3*);
#define sqlite3_column_text sqlite3_api->column_text
#define sqlite3_column_text16 sqlite3_api->column_text16
#define sqlite3_column_type sqlite3_api->column_type
+#define sqlite3_column_value sqlite3_api->column_value
#define sqlite3_commit_hook sqlite3_api->commit_hook
#define sqlite3_complete sqlite3_api->complete
#define sqlite3_complete16 sqlite3_api->complete16
#define sqlite3_create_collation16 sqlite3_api->create_collation16
#define sqlite3_create_function sqlite3_api->create_function
#define sqlite3_create_function16 sqlite3_api->create_function16
+#define sqlite3_create_module sqlite3_api->create_module
#define sqlite3_data_count sqlite3_api->data_count
#define sqlite3_db_handle sqlite3_api->db_handle
+#define sqlite3_declare_vtab sqlite3_api->declare_vtab
#define sqlite3_enable_shared_cache sqlite3_api->enable_shared_cache
#define sqlite3_errcode sqlite3_api->errcode
#define sqlite3_errmsg sqlite3_api->errmsg
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
-** $Id: test8.c,v 1.22 2006/06/15 10:41:16 danielk1977 Exp $
+** $Id: test8.c,v 1.23 2006/06/15 15:38:42 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "tcl.h"
typedef struct echo_cursor echo_cursor;
/*
-** An echo virtual-table object
+** An echo virtual-table object.
**
-** If it is not NULL, the aHasIndex array is allocated so that it has
-** the same number of entries as there are columns in the underlying
-** real table.
+** echo.vtab.aIndex is an array of booleans. The nth entry is true if
+** the nth column of the real table is the left-most column of an index
+** (implicit or otherwise). In other words, if SQLite can optimize
+** a query like "SELECT * FROM real_table WHERE col = ?".
+**
+** Member variable contains copies of the column names of the real table.
*/
struct echo_vtab {
sqlite3_vtab base;