Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add test cases to make sure virtual tables cannot be used in shared-cache mode. (CVS 3847) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
66e468adfcf0132e558a666b847ce7c1 |
User & Date: | danielk1977 2007-04-16 15:49:41.000 |
Context
2007-04-16
| ||
17:07 | Fix a memory leak introduced by (3842) associated with ticket #2296. (CVS 3848) (check-in: cdc7608b8d user: drh tags: trunk) | |
15:49 | Add test cases to make sure virtual tables cannot be used in shared-cache mode. (CVS 3847) (check-in: 66e468adfc user: danielk1977 tags: trunk) | |
15:35 | Make it clear in the docs that virtual tables and shared cache do not play well together. (CVS 3846) (check-in: 62ef2b1127 user: drh tags: trunk) | |
Changes
Changes to src/vtab.c.
1 2 3 4 5 6 7 8 9 10 11 12 13 | /* ** 2006 June 10 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains code used to help implement virtual tables. ** | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /* ** 2006 June 10 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains code used to help implement virtual tables. ** ** $Id: vtab.c,v 1.41 2007/04/16 15:49:41 danielk1977 Exp $ */ #ifndef SQLITE_OMIT_VIRTUALTABLE #include "sqliteInt.h" /* ** External API function used to create a new virtual-table module. */ |
︙ | ︙ | |||
127 128 129 130 131 132 133 134 135 136 137 138 139 140 | Parse *pParse, /* Parsing context */ Token *pName1, /* Name of new table, or database name */ Token *pName2, /* Name of new table or NULL */ Token *pModuleName /* Name of the module for the virtual table */ ){ int iDb; /* The database the table is being created in */ Table *pTable; /* The new virtual table */ sqlite3StartTable(pParse, pName1, pName2, 0, 0, 1, 0); pTable = pParse->pNewTable; if( pTable==0 || pParse->nErr ) return; assert( 0==pTable->pIndex ); iDb = sqlite3SchemaToIndex(pParse->db, pTable->pSchema); | > > > > > | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | Parse *pParse, /* Parsing context */ Token *pName1, /* Name of new table, or database name */ Token *pName2, /* Name of new table or NULL */ Token *pModuleName /* Name of the module for the virtual table */ ){ int iDb; /* The database the table is being created in */ Table *pTable; /* The new virtual table */ if( sqlite3ThreadDataReadOnly()->useSharedData ){ sqlite3ErrorMsg(pParse, "Cannot use virtual tables in shared-cache mode"); return; } sqlite3StartTable(pParse, pName1, pName2, 0, 0, 1, 0); pTable = pParse->pNewTable; if( pTable==0 || pParse->nErr ) return; assert( 0==pTable->pIndex ); iDb = sqlite3SchemaToIndex(pParse->db, pTable->pSchema); |
︙ | ︙ |
Added test/vtab_shared.test.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | # 2007 April 16 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file tests interactions between the virtual table and # shared-schema functionality. # # $Id: vtab_shared.test,v 1.1 2007/04/16 15:49:42 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl ifcapable !vtab||!shared_cache { finish_test return } db close sqlite3_enable_shared_cache 1 sqlite3 db test.db do_test vtab_shared-1.0 { register_echo_module [sqlite3_connection_pointer db] catchsql { CREATE TABLE t0(a, b, c); CREATE VIRTUAL TABLE t1 USING echo(t0); } } {1 {Cannot use virtual tables in shared-cache mode}} db close sqlite3_enable_shared_cache 0 sqlite3 db test.db do_test vtab_shared-1.1 { register_echo_module [sqlite3_connection_pointer db] catchsql { CREATE VIRTUAL TABLE t1 USING echo(t0); } } {0 {}} db close sqlite3_enable_shared_cache 1 sqlite3 db test.db do_test vtab_shared-1.2 { register_echo_module [sqlite3_connection_pointer db] catchsql { SELECT * FROM t1; } } [list 1 \ {malformed database schema - Cannot use virtual tables in shared-cache mode}] db close sqlite3_enable_shared_cache 0 finish_test |