drh
2ce1865dd8
Improvements to the way sqlite3VdbeAddOpList() works, resulting in a slightly
...
smaller and faster binary.
FossilOrigin-Name: 88ceb588bcdb3ca86d0c58cfdeb61b5fe070872f
2016-01-16 20:50:21 +00:00
drh
c960dcbace
Refactor the VdbeCursor object. It is now slightly smaller and faster and is
...
easier to understand.
FossilOrigin-Name: 9b1d174d862500a627840008ffac4c8419dc97e2
2015-11-20 19:22:01 +00:00
drh
4b92f98ccc
Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2)
...
magic numbers in Index.aiColumn[]. Add asserts to help verify that
Index.aiColumn[] is always used correctly. Fix one place in FK processing
where Index.aiColumn[] was not being used correctly.
FossilOrigin-Name: 7d272aa62cd4cbbf4b5d04e3b918de27671e8301
2015-09-29 17:20:14 +00:00
drh
1f9ca2c84c
Add code to maintain indexes with expression arguments across DELETE, INSERT,
...
and UPDATE statements. Legacy tests pass, but the new code paths are still
largely untested. The query planner currently makes no effort to use
expression indexes.
FossilOrigin-Name: efaabdb71626bdc03768e87e186c72f6f3da75b2
2015-08-25 16:57:52 +00:00
drh
d10d18da5f
Fix potential 32-bit integer overflow problems on the offset and length
...
parameters to sqlite3_blob_read() and sqlite3_blob_write(). For
sqlite3_blob_open(), make sure the *ppBlob return parameter is zeroed if
the interface fails with SQLITE_MISUSE.
FossilOrigin-Name: 5df02f50f8348dfde4fc15126abc7b7ef7803e69
2015-02-07 15:16:35 +00:00
dan
923c4b35be
Add test file e_blobwrite.test, containing tests for the sqlite3_blob_write() interface.
...
FossilOrigin-Name: 1df77e5f1bd82de4dc92fe28359c3e56ab3f9ed4
2014-11-10 17:53:03 +00:00
drh
9ca95730e3
Add the SQLITE_ENABLE_API_ARMOR compile-time option. This is a work in
...
progress and is not yet completely functional.
FossilOrigin-Name: c297a84bc678f81ffc0aa9139ab73f0ca87c1971
2014-10-24 00:35:58 +00:00
drh
13f40da31d
Split the sqlite3Error() routine into sqlite3Error() and
...
sqlite3ErrorWithMsg(), for a slight size reduction and performance increase.
FossilOrigin-Name: cf561d1f0bb60b3d638632d20bd686dda4fa4a04
2014-08-22 18:00:11 +00:00
dan
5a500afd57
Enable the b-tree cursor objects overflow page-number cache, which is normally enabled only for incr-blob cursors, for all cursors.
...
FossilOrigin-Name: da59198505990a4fe832be7932117c7e014955b7
2014-03-11 20:33:04 +00:00
drh
b06a4ec1f0
Attempt to work around MSVC's treatment of __LINE__ as a non-constant value
...
in "Edit and Continue" mode by avoiding the use of __LINE__ when
SQLITE_VDBE_COVERAGE is not defined.
FossilOrigin-Name: 0a5318bc272b844e937cb1df3a07224034bc3450
2014-03-10 18:03:09 +00:00
drh
688852ab15
Add logic to do test coverage measurements on the VDBE code.
...
FossilOrigin-Name: ce184c7bb16988641d37c908d9b3042456d4be3d
2014-02-17 22:40:43 +00:00
drh
b22f7c831f
Delete the OP_VerifySchema opcode. Enhance OP_Transaction to do the schema
...
version checks that OP_VerifySchema used to do.
FossilOrigin-Name: 2f3376ebf13df44e6acf27cb1f07172cd8b34033
2014-02-06 23:56:27 +00:00
drh
9ac7962ace
Show changes to the column cache when PRAGMA vdbe_addoptrace=ON is set.
...
FossilOrigin-Name: 4c6a659c432e4f7c0285f58675a67f967b07bb0d
2013-12-18 15:11:47 +00:00
drh
14da87f8c5
Reduce the size of the VdbeCursor object from 144 to 120 bytes.
...
FossilOrigin-Name: 5f9d50688508affd0bc8e4d52e21dacfacdbb5ce
2013-11-20 21:51:33 +00:00
drh
f30a969b80
Rework the logic that factors constant expressions out of inner loops, making
...
it both simpler and faster.
FossilOrigin-Name: 8dc5c76c766828d7c28090bec30ff48227e7b140
2013-11-15 01:10:18 +00:00
drh
63f0eedf10
Many new test cases added, that mostly work. Currently 18 errors in
...
without_rowid3.test. Also there is a hack marked by a /*FIXME*/ comment
on at fkey.c:547 that needs fixing.
FossilOrigin-Name: 39e32187b66405e00dbd44685f6cdd269c90f5e5
2013-11-02 22:09:48 +00:00
drh
bbbdc83b52
The Index object now has nKeyCol and nColumn. nColumn is the total number
...
of columns and nKeyCol is the number of key columns. Currently these always
differ by one. Refactor aiColumn[] to be of type i16 instead of int.
FossilOrigin-Name: a106ce86cd4afd1f81603826de77df1fb25e9ab5
2013-10-22 18:01:40 +00:00
drh
60625313b0
Increase the default SQLITE_MAX_SCHEMA_RETRY to 50. Make sure that macro
...
covers every case where a prepared statement might need to be reprepared due
to a schema change. The sqlite3_exec() interface now uses
sqlite3_prepare_v2().
FossilOrigin-Name: c1d7304c80c4a6244c8a9f6fad1eebd0f339c724
2013-04-06 18:06:51 +00:00
drh
48f2d3b10a
Add the new OP_Once opcode. Use it to clean up and simplify various
...
one-time initialization sections in the code, including the fix for
ticket [002caede898ae].
FossilOrigin-Name: 7f00552b739fad79517b042a6ed61abe743a917b
2011-09-16 01:34:43 +00:00
drh
124c0b49a1
Refactor the SQL parameter processing so that parameter names for values
...
that are optimized out of the prepare statement are not forgotten.
FossilOrigin-Name: b3aaf715b60b8a338cc6c92dad1ead4a3f7146a3
2011-06-01 18:15:55 +00:00
drh
c2a75551ef
Add a generation counter to the Schema object and enhance OP_VerifySchema
...
to also check the Schema generation. Fix for
ticket [f7b4edece25c99].
FossilOrigin-Name: 36c04dd1695f0899b53ce58738181b146fc005ed
2011-03-18 21:55:46 +00:00
dan
eefab7512b
Have sqlite3_blob_bytes() return 0 following a failed call to sqlite3_reopen_blob().
...
FossilOrigin-Name: 476a8b492124d31e0656e61a6183ab55684c0bdf
2010-12-06 17:11:05 +00:00
dan
61c7f59c10
Structural coverage tests for vdbeblob.c. Including experimental new API sqlite3_blob_reopen().
...
FossilOrigin-Name: 97c6b2616ddcce2337778c6ee88a973cc4fe999d
2010-10-26 18:42:52 +00:00
dan
e3d82a8723
Add missing header comments for changes related to the experimental sqlite3_blob_reopen() API.
...
FossilOrigin-Name: d1cc5c93f09c9092ec478c04e8d9a8b1f9c0cb04
2010-10-26 11:56:57 +00:00
dan
ca3b8f9c86
Merge trunk changes into experimental branch.
...
FossilOrigin-Name: fd1e5cade04961c2f5438a1dfcc2e15eafb4503f
2010-10-21 15:49:47 +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
4e76cc3650
Updates to FTS4 to improve performance and make more accurate cost estimates for prefix terms.
...
FossilOrigin-Name: d0a450ce78e99f55c862f26f9332786660007a0a
2010-10-20 18:56:04 +00:00
dan
c548b78310
Fix an assert() failure that could occur if compiling with OMIT_SHARED_CACHE.
...
FossilOrigin-Name: 3e76a9f2c041a6d36614f540bb89588703d85925
2010-06-19 19:06:33 +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
c81c11f62c
Remove the obsolete "$Id:$" RCS identifier strings from the source code.
...
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
dan
1316700e54
Add a test to check that the incrblob API cannot be used to write to an IPK column. Also a comment to explain why the incrblob code does not need to check if a column is part of a parent key before writing to it.
...
FossilOrigin-Name: dca2a7f608d9237039541707846c76cd460f5805
2009-10-02 06:35:06 +00:00
dan
1da40a381f
Check in implementation of foreign key constraints.
...
FossilOrigin-Name: d5d399811876391642937edeb9e8434dd9e356f5
2009-09-19 17:00:31 +00:00
dan
e0af83aca6
Combine the OP_Statement and OP_Transaction opcodes.
...
FossilOrigin-Name: aec9dbd8d21c55c3945287a3dfa55d3ed168f977
2009-09-08 19:15:01 +00:00
dan
165921a742
Changes to support recursive triggers.
...
FossilOrigin-Name: 9b9c19211593d5ff7b39254a29c284560a8bcedb
2009-08-28 18:53:45 +00:00
danielk1977
602b466e99
Cause opening a transaction on a sharable b-tree module automatically obtain a read-lock on page 1. This means there is no way for sqlite3BtreeGetMeta() to fail. (CVS 6836)
...
FossilOrigin-Name: e3c055f167f895ae45858de9d9d8a264df2f36b6
2009-07-02 07:47:33 +00:00
danielk1977
96d48e963a
Cause incremental-blob read/write operations lock shared-cache tables in the same way as normal SQL read/writes. Add complex assert statements to make sure tehe correct shared-cache locks are held when accessing the database. Eliminate some redundant checks from btree.c. (CVS 6830)
...
FossilOrigin-Name: f17ef37897da9bcaf20b5acdce6840522c0a0b16
2009-06-29 06:00:37 +00:00
drh
6ee700c32c
Avoid allocating large objects on the stack in the incremental BLOB I/O
...
interface. (CVS 6703)
FossilOrigin-Name: ea7dfde700fb57ed0ecb5000a55abbf45aa1e09d
2009-06-01 19:53:30 +00:00
drh
28414ee952
Change sqlite_blob_open() so that it zeros the output pBlob pointer when
...
it fails. The other sqlite3_blob interfaces accept a NULL pointer as
input. (CVS 6622)
FossilOrigin-Name: 999d507b4432b518cfc7e02e5b0a2473cf1980f6
2009-05-09 15:17:47 +00:00
drh
d9da78a2c8
Changes to insure that lookaside memory allocations are never used to hold
...
schema content.
Ticket #3743 . (CVS 6377)
FossilOrigin-Name: ea74d8dc62f5784089aa8ef098e97c505a79b176
2009-03-24 15:08:09 +00:00
danielk1977
238746a650
Fix a couple of fairly obscure cases where an assert() could fail following a malloc failure. (CVS 6360)
...
FossilOrigin-Name: cc0d925669ddeb55048e88aa5b4f658be60b0962
2009-03-19 18:51:06 +00:00
shane
c0688ea172
Removed compiler warnings from MSVC builds. Ticket #3701 . (CVS 6335)
...
FossilOrigin-Name: 5477833ec7f707ea9937d3fd6a6d8ab49f2016f1
2009-03-05 03:48:06 +00:00
danielk1977
d336e222f4
Instead of using SetNumColumns, specify the number of columns in a table or index using the P4 argument. (CVS 6310)
...
FossilOrigin-Name: e43ed649630cbc49a6f2a25a26a4a6b5fce84c48
2009-02-20 10:58:41 +00:00
drh
08de14908d
Add a count parameter to the OP_Variable opcode and use it to simplify
...
prepared statements that copy consecutive unnamed parameters into
consecutive registers (a common case). (CVS 6309)
FossilOrigin-Name: 48b77b04935d8942eb22f0c061f3bc5e99bbd7db
2009-02-20 03:55:05 +00:00
danielk1977
a8b3018da4
Fix for sqlite3_blob_write(): If either 3rd or 4th argument is less than zero, return SQLITE_ERROR. H17879. (CVS 5762)
...
FossilOrigin-Name: f6074c0b9b5ba51d131509dba2aec80d0fcf3b7e
2008-10-02 14:49:01 +00:00
drh
633e6d57d9
Implement the "lookaside" memory allocation cache. Use of this cache makes
...
the speed1.test script run about 15% faster. Added new interfaces to
control the cache. (CVS 5488)
FossilOrigin-Name: e48f9697e9fea339e150ddc32940760027dd07d9
2008-07-28 19:34:53 +00:00
drh
93a960a0a8
Remove unused code. Test coverage enhancements. Modify the algorithm used
...
to select column names for VIEWs of joins so that the constructed column
names omits the underlying table names. (CVS 5386)
FossilOrigin-Name: 636cd723296a8b1709011fdd99b236ffddf3f1b0
2008-07-10 00:32:42 +00:00
danielk1977
99e925da51
Fix a problem with the incremental blob API. sqlite3_blob_open() was always reading the data for the leftmost column of the row that the opened blob was stored in. If this column happened to contain a (the) large blob, sqlite would make a large memory allocation to read the data into. Which defeats the purpose of using incremental blobs. (CVS 5222)
...
FossilOrigin-Name: 1b9478da2f421c1270e76297324fff8037d2f231
2008-06-16 14:19:57 +00:00
danielk1977
36961ed23f
Ensure that it is not possible to open either virtual table or view columns using the blob API. Ticket #3078 . (CVS 5041)
...
FossilOrigin-Name: 6039328fe05aaf9380d545e84dfabccb32a4d8ea
2008-04-24 09:49:55 +00:00
danielk1977
cd3e8f7ce9
Use a vdbe memory cell to allocate the space required for vdbe cursors. (CVS 4912)
...
FossilOrigin-Name: 047153648155654b0cd70b811935209d2e21776c
2008-03-25 09:47:35 +00:00