Commit Graph

134 Commits

Author SHA1 Message Date
drh a371ace426 Change boolean fields in the Column object from unsigned characters into
bits in a single bit mask variable.

FossilOrigin-Name: 4163f5f194741bc2bdf141973912661c6aac70f1
2012-09-13 14:22:47 +00:00
drh 04f2e3403f Fix an incorrect assert in the virtual table logic - it could fire following
an I/O error after sqlite3_close_v2() was added.

FossilOrigin-Name: 4ccc18e999c51f7f6637ee48ccca35c7706bfe6d
2012-08-27 14:39:47 +00:00
dan ca8b9bac3b Return SQLITE_MISUSE if an application attempts to register a virtual table module with the same name as an existing module.
FossilOrigin-Name: ea2cd55e098b21cd8997fd6c1978131d3ef2fab4
2012-05-16 14:29:11 +00:00
drh 81028a455d The former sqlite3ResetInternalSchema() routine was really two different
routines, selected by parameter, each with a confused mission.  So split
this routine up into three separate smaller routines, calling each
separately as needed.  Hopefully this will make further refactoring and
schema reset collateral damage containment easier.

FossilOrigin-Name: aa0c3493d3647d7efe527067e9fcccefda8e3008
2012-05-15 18:28:27 +00:00
dan bba02a95d9 When a connection disconnects from a shared-cache database, only delete the in-memory schema if there are no other connections.
FossilOrigin-Name: 46f4eb5430d7bc9a339cdf7124ff4bd518eaa39b
2012-05-15 17:15:34 +00:00
drh 9250581af4 All virtual table constructors to be invoked recursively. A test case for
this has been added to TH3.

FossilOrigin-Name: 696a5a40bb28c4a54c9951f877b67015dc00bf55
2012-04-26 22:47:20 +00:00
drh b421b894e0 Add support for IF NOT EXISTS on CREATE VIRTUAL TABLE.
FossilOrigin-Name: 230983e86a897caa91a487ef2d4c1c7fb7c79f10
2012-01-28 19:41:53 +00:00
dan 341cadee54 Avoid attempting to call savepoint related methods on deleted sqlite3_vtab objects. Fix for [48f299634a].
FossilOrigin-Name: 3565fcf898960d7a23d23a2f363b039b2e29447b
2011-10-29 11:43:04 +00:00
drh 5d9c9da6e8 Create and use a function especially for adding the ParseSchema opcode.
This gives a small reduction in code and a small performance increase.

FossilOrigin-Name: 957b2ab67c6185f0e1062593d237de5c434a38bf
2011-06-03 20:11:17 +00:00
dan 2cac2078f6 Fix a case where a malloc() error could lead to mismatched virtual-table xBegin/xCommit/xRollback callbacks.
FossilOrigin-Name: d807304a695fc85402b86e1cd32a6e3bbb2823c8
2011-05-25 18:46:22 +00:00
drh 346506f97b Changes to savepoint in virtual tables for simpler and more consistent
operation.

FossilOrigin-Name: 92f26a8b8f18832cb1f8ba7dd8e5b020e71a5883
2011-05-25 01:16:42 +00:00
drh e485522462 Do not invoke the xRollbackTo or xRelease methods of a virtual table without
having first invoked an appropriate xSavepoint method.  Add assert() statements
to FTS3/4 to verify that this is happening in all cases.

FossilOrigin-Name: 651ef24249d8c22c4f13e4c0bb98a60099cfd23a
2011-05-24 15:36:01 +00:00
drh e578b5967c Increase the iVersion for sqlite3_module needed for the xSavepoint,
xRelease, and xRollbackTo methods from 1 to 2.  This is so that it will
conform to published documentation.

FossilOrigin-Name: 0f4954e9793332573d4ffa0c1e199180f4cb990a
2011-05-06 00:19:57 +00:00
drh 367e84d089 Fix an incorrect assert() in sqlite3_value_config(). Updates to the
sqlite3_value_config() documentation.

FossilOrigin-Name: 22cbc01a2600c6100112315d9afb5f2d8f80b3df
2011-05-05 23:07:43 +00:00
drh 87f67bf143 Fix sqlite3_vtab_on_conflict() to return the correct values for
ABORT, FAIL, and IGNORE.

FossilOrigin-Name: f0617d619dc6654f6d27543999c0aad724a0d967
2011-05-05 17:41:58 +00:00
drh ef45bb75b3 Bump the version number to 3.7.7 on account of the new sqlite3_vtab_config()
and sqlite3_vtab_on_conflict() interfaces.  Updates to the documentation on
those interfaces.

FossilOrigin-Name: 930be6a1bdec8c150caafd790973f7a401fc1970
2011-05-05 15:39:50 +00:00
drh 7af72cf963 Change sqlite3_create_module() so that it avoids resetting the schema as
long as preexisting modules are unchanged.

FossilOrigin-Name: 8485855afc71fb8078d53719c3da75021890ce9e
2011-05-05 13:54:28 +00:00
dan d9495cd0c6 Fix problems related to savepoint rollback and fts3.
FossilOrigin-Name: ff69f823f23e6fb6e8b2857c4576d9c0732d9572
2011-04-27 12:08:04 +00:00
dan a311b80392 Extra tests for fts3. And fixes for conflict-handling related problems in fts3.
FossilOrigin-Name: fb4a355871d9482ccb28b6ba03b842b3cc87b696
2011-04-26 19:21:34 +00:00
dan b061d058cb Add support for on conflict clauses to fts3/fts4.
FossilOrigin-Name: 6d2633a6d0a9bb88fb1a6adac0827dc51df2d4d2
2011-04-25 18:49:57 +00:00
drh 9bbc2e283e Minor comment typo corrections. Simplify an assert. No functional changes.
FossilOrigin-Name: 82c2316240345167a571507d9392dfb6445ef523
2011-04-04 20:40:22 +00:00
drh 2120608e0f Add a description of access rules for the Schema object and lots of asserts
to verify that the access rules are followed.

FossilOrigin-Name: ae8374af057b6e6546e9265148cfffe32fcb0849
2011-04-04 18:22:02 +00:00
drh c7792fa052 Begin a series of changes designed to reduce the scope and frequency of
invalidating schemas.  Design goals are that the internal schema should
never be deleted out from under a prepared statement that is running and
that all prepared statements should be expired if the schema is invalidated.
At the same time, minimize the number of schema invalidations.  This change
merely revises the sqlite3ResetInternalSchema() function to use -1 as the
wildcard for "all" rather than 0, so that we can reset the main schema
independently of all the others.

FossilOrigin-Name: 6a8ad6e31e0d2b8a5ace38faf0efd805155ee5f3
2011-04-02 16:28:52 +00:00
drh 22645842a4 The changes to fix [f7b4edece25c9948] mean that the schema is always loaded
whenever a prepared statement is running.  This means that a couple of
branches can be eliminated and one operand of OP_ParseSchema can be removed.

FossilOrigin-Name: b6e268fce12829f058f1dfa223731ec8479493f8
2011-03-24 01:34:03 +00:00
dan 06b5db0e39 Fix some segfaults that could occur in obscure circumstances where error messages contained characters that could be mistaken for printf format specifiers.
FossilOrigin-Name: f91471e7234db490f97298b1ccb8d6c7fc45b089
2010-10-21 15:12:44 +00:00
dan 39f1bcb1df Fix some problems that can occur if a trigger has the same name as another database object.
FossilOrigin-Name: 655991ec8a781d67d69fc353853403b9a811acf2
2010-09-29 07:16:46 +00:00
dan 78f9b73189 Use sqlite3DbFree() instead of sqlite3_free() to free any error message reported by the parser layer while attempting to parse a CREATE TABLE statement passed to sqlite3_declare_vtab().
FossilOrigin-Name: 7c674aaba52b00a78babc1e1ece7e5b652b65039
2010-08-11 11:59:37 +00:00
drh 174b9a166d Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree()
and all memory from sqlite3_malloc() is freed by sqlite3_free().

FossilOrigin-Name: 629e38a8c9e31111e351fe4625a5835576d23584
2010-07-26 11:07:20 +00:00
drh b975598ea0 Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and
all memory from sqlite3_malloc() is freed by sqlite3_free().

FossilOrigin-Name: ac1f37a647e9ed1c00a901d26d9956a86c40117a
2010-07-24 16:34:37 +00:00
dan d46def77db Experimental code to measure memory consumed by database schemas and prepared statements.
FossilOrigin-Name: 9aa30342f4de4eff630520ea8e07ad253d3f0877
2010-07-24 11:28:28 +00:00
dan 1feeaed291 Remove the Table.dbMem variable, as it is no longer being used for its original purpose.
FossilOrigin-Name: 6eddc6e601cf8f585c6c2cf79f36fcbfe98a307e
2010-07-23 15:41:47 +00:00
dan 1dcb9df43f Remove the unused Schema.db variable.
FossilOrigin-Name: 430be657be68687c998f2f5f8dcd112bf26106be
2010-07-23 08:31:35 +00:00
drh 8b307fbfa0 Automatically generate transient indices for tables in joins that would
otherwise have to use a full table scan.

FossilOrigin-Name: 1b2a04125f964e14f3fb90171c5ab86a0641d1c9
2010-04-06 15:57:05 +00:00
drh 413c3d36a2 Continuing improvements to error reporting and the sqlite3_log() routine.
FossilOrigin-Name: edea3bb740ddd096a46e00678b59d465bb1e2903
2010-02-23 20:11:56 +00:00
drh 9978c97ec5 Remove the obsolete sqlite3SafetyOn() mechanism. Add additional logging
output for CORRUPT, and CANTOPEN errors.

FossilOrigin-Name: 7c4cca6d1a23a6d1591b62f58c3716a944969947
2010-02-23 17:36:32 +00:00
drh 0e3c512bff Change to order of two branches in vtab.c in order to a restore 100% test
coverage.

FossilOrigin-Name: fdfdc777c59a108496c7381c8b267b38485e2c13
2009-12-08 22:16:15 +00:00
dan 84db21ec6a Add tests to improve coverage of fts3. Associated bugfixes.
FossilOrigin-Name: f0eac4175aee6c50ee68acc253f76fbe44574250
2009-12-08 19:05:53 +00:00
drh c81c11f62c Remove the obsolete "$Id:$" RCS identifier strings from the source code.
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
dan 65a7cd1631 More fixes and comment updates.
FossilOrigin-Name: 38a9327bad1a01e3d7a47fad44ece2f6c7e88643
2009-09-01 12:16:01 +00:00
dan 165921a742 Changes to support recursive triggers.
FossilOrigin-Name: 9b9c19211593d5ff7b39254a29c284560a8bcedb
2009-08-28 18:53:45 +00:00
drh eeb844a7f1 Suppress various compiler warnings. (CVS 6963)
FossilOrigin-Name: 257e9b575029f63277ed602d1402f87cfa15d22e
2009-08-08 18:01:07 +00:00
danielk1977 595a523a10 Allow virtual tables to be used in shared-cache mode. (CVS 6928)
FossilOrigin-Name: 5d9e767a05e381235e064061043e30cc03a11a07
2009-07-24 17:58:53 +00:00
danielk1977 e25a50b6c3 Fix a 1-byte buffer overwrite that can occur when a virtual table overloads an SQL function. (CVS 6833)
FossilOrigin-Name: bfe336a8993e06e70d3c32a929202fb015dcbb89
2009-07-01 18:04:20 +00:00
shane 8509570763 Fix compiler warnings with MSVC build. (CVS 6761)
FossilOrigin-Name: e1e6430752449a34671b6c89326b03ac36ea6d9a
2009-06-15 16:27:08 +00:00
drh e98c9049a0 Further reductions in the amount of stack space required. (CVS 6707)
FossilOrigin-Name: 04bad9eb6dd8bf7cafc9f3918b676e95d5b1c984
2009-06-02 21:31:38 +00:00
drh 748ce21115 Fix a memory leak that occurs when an out-of-memory error occurs while
preparing a statement that has multiple virtual table updates within
triggers.  Other virtual table changes to support full-coverage testing. (CVS 6661)

FossilOrigin-Name: 02b77a582c65e0eb45eb1a9abbdeef11f52d7ce6
2009-05-20 20:10:47 +00:00
drh 9e27890ed9 Remove unused, undocumented, and untested error reporting logic from the
xFindFunction interface in virtual tables. (CVS 6660)

FossilOrigin-Name: 55d6ced262f5281076e4a68097ed21e150a9c225
2009-05-20 16:22:02 +00:00
drh 55f04f281b If a virtual table constructor returns SQLITE_NOMEM, set the mallocFailed
flag in the corresponding database connection to insure that the error
is propagated back to the top layer. (CVS 6627)

FossilOrigin-Name: 5635666f20358e854a76d244768198734afd4299
2009-05-11 23:37:59 +00:00
drh a83ccca794 Do not store the zero string terminator as part of the name when holding
symbols in the symbol table. (CVS 6557)

FossilOrigin-Name: 23d67af39227aeade2ea0292e1b8844eea580993
2009-04-28 13:01:09 +00:00
drh 63842415bd Add a comments and an assert() to the virtual table implementation.
No functional changes. (CVS 6497)

FossilOrigin-Name: ac5d0c0aa1de687bde972fbf0db8f04508825205
2009-04-11 16:27:19 +00:00