drh
2c2f392dca
Add interfaces sqlite3_prepare_v3() and sqlite3_prepare16_v3() with the
...
extra prepFlags argument. Add the SQLITE_PREPARE_PERSISTENT option as one
bit in that argument.
FossilOrigin-Name: 4a25c5883380fe5990d8180adb58c3bdc7a3d081bc4c69cd4de3cd57074fb251
2017-06-01 00:54:35 +00:00
drh
b8a1290a28
Very small performance increase in sqlite3VdbeSetNumCols().
...
FossilOrigin-Name: 8885b4461044ae8ecdfe1b9aa47f4aad65efabc98e3fcd9e307a06504fab34c6
2017-05-31 11:24:13 +00:00
drh
e70d01f143
More efficient error handling and reset in the binding mechanism.
...
FossilOrigin-Name: 9a3e3b34ba6eafce2f560c13225a3673e18d696b29295b59d958e938fa593baf
2017-05-29 22:44:18 +00:00
dan
21766c0c16
Fix a case where NULL was being passed to memcmp() following an OOM. This is
...
probably not a real problem, as the number-of-bytes parameter was passed 0 in
this case, but it was causing a santizer complaint.
FossilOrigin-Name: 3ea2bad27e516d5dbfa4a9cb0c767d6a8387280a7e4bbf2ae80cd318da670d66
2017-05-22 08:04:09 +00:00
drh
f7fa4e71f4
Negative N values in sqlite3_get_auxdata() and sqlite3_set_auxdata() can be
...
used to access an auxiliary data cache over all functions in a single prepared
statement.
FossilOrigin-Name: ff5306752e83e760255a10f20168c0f090929a4fee2a5f720dfab36f0ee72fae
2017-05-11 15:20:18 +00:00
drh
e694139788
Rename fields of the internal AuxData object to make them unique and easier
...
to search for.
FossilOrigin-Name: 2be9850cef6492e168243807c34af72119ffbe414027a12c4eda6c421b5b950d
2017-05-10 19:42:52 +00:00
drh
33543c237b
Minor bug fixes and performance enhancement.
...
FossilOrigin-Name: b2aae559581d05e4e8caaddfbd137cb275d582e82d58872c6f42e462dc859b1c
2017-05-01 16:37:20 +00:00
drh
e08e8d6b61
Initial implementation of an optimization that attempts to reuse the same
...
materialization of a view on a self-join of the view.
FossilOrigin-Name: 478c34b9a8b5127d13024e10307aa832f160b89720c46424dd17555bd36f590d
2017-05-01 15:15:41 +00:00
drh
0415d826c0
Smaller and faster vdbeFreeOpArray()
...
FossilOrigin-Name: e052436d9f54b785facd661adc648512356b831c0547aa8f347ebf4bd8ef1254
2017-04-10 20:51:21 +00:00
drh
dbd6a7dc06
Split off sqlite3DbFreeNN() from sqlite3DbFree() and use it in cases where
...
we know that the argument to be freed is never NULL.
FossilOrigin-Name: ad90e8bb5e47945607c8fb47b6ade8cfc52a9b684805cc40132629be0ecc14cc
2017-04-05 12:39:49 +00:00
drh
96a7e28df6
Remove an unnecessary clearing of the Vdbe.iCurrentTime value.
...
FossilOrigin-Name: fcd2acdd6075aa9a7a66ce254eba77485f7b2804127e109c0309173488cd4b87
2017-04-01 19:45:20 +00:00
drh
1cb0266dcb
Begin enforcing the SQLITE_LIMIT_VDBE_OP. The documentation warned that this
...
day might come.
FossilOrigin-Name: ef5914617088cbf89bfae88f63ea959a07f02dff387ddc2b43948ad99c6a97b8
2017-03-17 22:50:16 +00:00
drh
2996796dcf
If a reprepare is needed after binding to a variable with a number larger
...
than 32, set only the high-order bit of the Vdbe.expmask rather than setting
all bits. This could potentially result in fewer false-positive reprepares.
FossilOrigin-Name: 45797feefe90cb7da53256b0c42fdaa1221d0a27
2017-03-03 21:51:40 +00:00
drh
76adb23980
Make sure the Vdbe.expmask value is set correctly in sqlite3VdbeSwap().
...
This fixes a problem introduced by [a8fd7052].
FossilOrigin-Name: 29f54b899e5cf22ece98ab41c39c41d75a4b228d
2017-03-02 13:13:30 +00:00
dan
bda4cb876c
Save a few bytes and a few cycles by setting Vdbe.expmask to zero for
...
statements prepared using legacy interface sqlite3_prepare().
FossilOrigin-Name: a8fd705258643863493476f8b42ee981608a339f
2017-02-23 16:30:16 +00:00
dan
1325adf5e9
In sqlite3VdbeHalt(), return as soon as possible if
...
Vdbe.magic!=VDBE_MAGIC_RUN. This makes sqlite3_reset() slightly faster in some
cases.
FossilOrigin-Name: 80adc0cb4ed7bacc54b15ac8b5b205403939c8c4
2017-02-21 21:24:05 +00:00
drh
d879e3eb8d
Change all legacy instances of "#if SQLITE_DEBUG" to "#ifdef SQLITE_DEBUG" for
...
consistency.
FossilOrigin-Name: 670f10b24230863688270d12ac519609ade2302b
2017-02-13 13:35:55 +00:00
dan
cb9a364390
Experimental change to invoke the preupdate hook when WITHOUT ROWID tables are
...
written.
FossilOrigin-Name: 856f8604c59c8fdd9bfb7d86fc0e212f091ab49a
2017-01-30 19:44:53 +00:00
drh
d08406477a
Performance optimization in sqlite3VdbeCloseStatement().
...
FossilOrigin-Name: 1e96e5ec1ee617cb5b5cbdc5a2ee79c8cc35821d
2017-01-26 17:11:18 +00:00
dan
2a86c1962c
Fix a problem with the pre-update hook on this branch.
...
FossilOrigin-Name: 6fc4fbfa29cfa795edf32e4a1f2d0eceb3007f68
2017-01-25 17:44:13 +00:00
drh
585ce1923c
Experimental enhancement to automatically trim NULL values from the end of
...
records, for a reduced disk footprint. This change also involves increasing
the P5 operand from 8 to 16 bits.
FossilOrigin-Name: 118ded403b95050b74ae2b03919c43d614094a32
2017-01-25 14:58:27 +00:00
dan
9e1ab1a8a4
Ensure that sqlite3_column_count() returns 0 for the "set" mode of "get/set"
...
PRAGMA statements that do not return a value in that case (e.g. page_size,
cache_size, auto_vacuum).
FossilOrigin-Name: 5c05d8ec5e895661dae2de30c73dfdeaff93511e
2017-01-05 19:32:48 +00:00
drh
f326d66d61
Fix the VList object so that it actually works.
...
FossilOrigin-Name: 9dcd85698af46fd5ba34004ca690d368c4ae3078
2016-12-23 13:30:53 +00:00
drh
9bf755cc44
Use the VList object to replace Parse.azVar for tracking the mapping between
...
SQL parameter names and parameter numbers. There is a performance
improvement, though there are still a few hiccups in the current code.
FossilOrigin-Name: 68ecafa1425a41358c88f41efea3262f1b4490f2
2016-12-23 03:59:31 +00:00
drh
a582b01698
Simplifications to the way UnpackedRecord objects are allocated. Smaller
...
and faster code that also fixes a subtle (currently unreachable) bug.
FossilOrigin-Name: f7ab01f254cd9d7006b8dec29adb234a671b8e6f
2016-12-21 19:45:54 +00:00
drh
fbd8cbdcf5
Reorder the fields in the VdbeCursor object so that those that need to be
...
bulk zeroed on allocation are grouped at the beginning, and the memset()
only runs over those fields that really need it.
FossilOrigin-Name: 8165f88bb1d40693d67005a8d5dc499085f64b91
2016-12-10 12:58:15 +00:00
drh
f14b7fb73b
Add the sqlite3VdbeAppendP4() method for adding P4 content to the most recently
...
coded instruction.
FossilOrigin-Name: 28883e8f3e92a8015fb5f6c8ae8580833931543d
2016-12-07 21:35:55 +00:00
drh
861b1307cb
The use P4_DYNAMIC in place of the P4_MPRINTF operand type.
...
FossilOrigin-Name: 3954f83798ed78527280c9db6360c62a5134b9ec
2016-12-07 20:22:31 +00:00
drh
bdaa1ee2ee
Performance optimization for sqlite3VdbeAddOp4().
...
FossilOrigin-Name: 04716c907bf9fc9b827e18fdc7b4e1069e201536
2016-12-07 20:09:51 +00:00
drh
cb3cabd01b
Refactor the sqlite3BtreeKey() and sqlite3BtreeData() internal interfaces
...
into sqlite3BtreePayload() and sqlite3BtreePayloadChecked(), respectively.
This is a continuation of the optimization started by check-in
[2d831074cf]. The result is a slightly smaller and faster binary.
FossilOrigin-Name: 49ebc219faea30eaa61def4a3fba2817b9c58a86
2016-11-25 19:18:28 +00:00
drh
30642cf4d2
Correctly display the names of SQL functions in the VDBE_PROFILE output.
...
FossilOrigin-Name: 161192f17273f32f1b3b82d41135aaca047e9a83
2016-11-23 14:19:11 +00:00
dan
e43635aaa7
In the sessions module, avoid recording a change if an UPDATE statement
...
overwrites a column with REAL affinity containing an integer value with the same value.
FossilOrigin-Name: b861328ab9ceec6926d97658c3606e6ae9ad39bf
2016-10-21 21:21:45 +00:00
drh
230368c30d
Remove an unnecessary memset() call.
...
FossilOrigin-Name: a76bff74ce47c9c98106566bde5d781992657e22
2016-10-01 19:32:54 +00:00
drh
d8e4b13256
Use sqlite3DbMallocRawNN() where appropriate, instead of
...
sqlite3DbMallocRaw().
FossilOrigin-Name: 54a449a41d8d32da2f8b73689227ced866974a18
2016-10-01 19:21:56 +00:00
drh
8dfef1175e
Make sure deleting an unused prepared statement does not reference
...
uninitialized fields in the structure.
FossilOrigin-Name: 7983eef0422439bfc85950554b000d46a9767ee3
2016-10-01 16:53:45 +00:00
drh
ab3182f7c4
Avoid unnecessary zeroing of fields in the Vdbe object when it is allocated.
...
FossilOrigin-Name: 1e21bbe836539e64d24857f4faa3d12cd607dc7e
2016-10-01 00:37:50 +00:00
drh
9b40d13f43
Fix the Parse.aColCache column cache so that all of the valid entries are
...
in the first Parse.nColCache slots.
FossilOrigin-Name: 6028502059ccbd3699637b7a70a6d8ce1b7c3dad
2016-09-30 20:22:27 +00:00
drh
2a1df937ab
Avoid unnecessary Mem initializations when generating a new sqlite3_stmt
...
object.
FossilOrigin-Name: 47ae1cda8dc255d100aeb8cb90ea4c9e449509be
2016-09-30 17:46:44 +00:00
drh
dd3bfe8648
Small size and performance optimization to sqlite3VdbeChangeP5().
...
FossilOrigin-Name: 3c93c8f5bbf54ed2a331079b28fdd94eb0e59e69
2016-09-29 20:28:34 +00:00
drh
2831c4d123
Remove the peep-hole optimization of removing OP_Close opcodes that come
...
before OP_Halt, as the extra work of removing those opcodes uses more cycles
than just running them.
FossilOrigin-Name: 984a96d79656c1b095aba1f88aca4bb787ba0bd8
2016-09-29 19:50:02 +00:00
drh
8aaf7bcc8d
Avoid unnecessary calls to ExpandBlob() for smaller and faster code.
...
FossilOrigin-Name: 5e196fd18169e84806cd45dd1a8190339323e772
2016-09-20 01:19:18 +00:00
drh
9e5eb9c8cc
Revise the implementation of OP_Once so that it is smaller, faster, and uses
...
less memory. This also fixes an obscure bug introduced 3 days ago by check-in
[5990a1bdb4a073].
FossilOrigin-Name: 6bf5ba10d28f1b0a32aa9a560ae3143a1235eadb
2016-09-18 16:08:10 +00:00
drh
72ceae01e5
Slight size reduction and performance increase in sqlite3VdbeHalt().
...
FossilOrigin-Name: 5990a1bdb4a0734ff23015ada71cf02d0cb1381f
2016-09-15 00:32:42 +00:00
drh
5f6eb1a0dc
Optimization to vdbeRecordCompareInt() makes it slightly smaller and faster.
...
FossilOrigin-Name: 5a2a7712cb8e0b686942dfab4e9e67b5ea7b2be3
2016-09-15 00:04:46 +00:00
drh
64caee4086
Performance improvements to the comparison operators in the bytecode engine.
...
FossilOrigin-Name: 37803b19d219f4107f29b240d5d314600e4bd236
2016-09-09 19:33:00 +00:00
drh
1ad78c5791
Fix the extra comments (added with -DSQLITE_ENABLE_EXPLAIN_COMMENTS) so that
...
the sense of <, <=, >, and >= tests is correct and so that the
SQLITE_STOREP2 version is shown correctly. These changes are already in the
rowvalue branch but are added here since they are technically unrelated to
rowvalue.
FossilOrigin-Name: 4d43c4698eef4e3db7556813f0274b4018c7c2b9
2016-08-27 14:05:12 +00:00
drh
557341e8fa
Add requirements marks to the sqlite3_trace_v2() interface documentation.
...
FossilOrigin-Name: ebd388e94da4a2b29c2a546f832d359619803ec5
2016-07-23 02:07:26 +00:00
drh
cf1e395acb
Fix sqlite3VdbeExpandSql() so that it handles OOMs by always returning NULL.
...
FossilOrigin-Name: 5a027fe4127d498e0dc0d9439131c6a29085cf0a
2016-07-23 00:43:14 +00:00
drh
9a8b9ec51c
Be sure to hold the database connection mutex while calling sqlite3VdbeExpand()
...
from within sqlite3_expanded_sql().
FossilOrigin-Name: 527b5ba68c0b0185958b945b197f9022951d9379
2016-07-22 20:45:03 +00:00
drh
8d85364261
The sqlite3_expanded_sql() function compiles, but always returns NULL, when
...
the SQLITE_OMIT_TRACE compile-time option is used.
FossilOrigin-Name: 53c25ebe34e6776a12260078852973b1d581d20f
2016-07-15 10:01:06 +00:00