drh
3df79a9a1f
Fix the "now" option for date-time functions for cases when STAT4 is disabled.
...
FossilOrigin-Name: 3ac1f6a3cf1a8fd3ab1ca96b2564c13c4b8d2234
2015-03-12 23:48:27 +00:00
drh
96f4ad20fd
Always disallow functions as the DEFAULT of a column. Add assert()s and
...
FossilOrigin-Name: a991bb1a9eb54bdbd45bd623e8b304bdfeb481a3
2015-03-12 21:02:36 +00:00
drh
a9e03b1b82
The valueFromFunction() routine is better able to handle OOM errors.
...
Omit unreachable branches.
FossilOrigin-Name: 8fb6bd9be59d6b04e922d7b246aaefd4851539b6
2015-03-12 06:46:52 +00:00
dan
18bf807689
Allow the query planner to evaluate deterministic scalar SQL functions used in WHERE constraints if all arguments are SQL literals in order to compare the results with sqlite_stat4 sample data.
...
FossilOrigin-Name: b7f1fc26d24012e1e7c7f6b3cc0b84ad2b02b8ad
2015-03-11 20:06:40 +00:00
drh
22ec13466c
Add a couple of requirements marks.
...
FossilOrigin-Name: d70b0fd4c94f2b70cf31c2ab9ef7a2fb2e71c182
2015-02-27 00:33:15 +00:00
drh
983b5ee73d
Make sure the prepared statement auto-resets on extended error codes
...
of SQLITE_BUSY and SQLITE_LOCKED even when compiled using
SQLITE_OMIT_AUTORESET.
FossilOrigin-Name: 3c6ca414879feb1f5d31d5fd95a1737530aca624
2015-02-13 12:05:56 +00:00
drh
ef15c6e9e6
Add new tests to the threadtest4.c program. Fix a long-standing data race
...
in WAL mode for shared-cache.
FossilOrigin-Name: d8d3e6d04cbb9e3033ad8613e3dbd4ad0b01765a
2014-12-12 01:27:17 +00:00
dan
857536623a
Fix a race condition to do with very large index keys in shared-cache mode.
...
FossilOrigin-Name: fc157dd7f18c94b7ae5f155e1b4a5d7714b7da8c
2014-12-11 16:38:18 +00:00
drh
c6652b1efe
Add the SQLITE_SCANSTAT_SELECTID metric. Use it to improve the
...
".stmtscan on" output in the shell.
FossilOrigin-Name: 64ad5761a841f71530d41565b9fbe9d19c2d6aff
2014-11-06 04:42:20 +00:00
drh
518140ed04
Change the SQLITE_SCANSTAT_EST parameter so that it returns a double for
...
the estimated number of output rows per loop, rather than a 64-bit integer.
Revise the output format for the ".scanstats on" in the shell to make use
of this new capability.
FossilOrigin-Name: f9684000665ae7ef6f89c3773612b8286b8f545a
2014-11-06 03:55:10 +00:00
dan
d72219da43
Fix a typo preventing this from building with SQLITE_ENABLE_STMT_SCANSTATUS defined.
...
FossilOrigin-Name: 4c5714ab3dba19513374c7b1478221a0b90b450c
2014-11-03 16:39:37 +00:00
drh
d1a1c23423
Refactor the interface to make it more easily extensible.
...
FossilOrigin-Name: 7955342da4a35b57e4ae26690b8d40f7bba20e8f
2014-11-03 16:35:55 +00:00
dan
037b5324bd
Remove unused variable from struct WhereInfo. Add some explanatory comments to new code.
...
FossilOrigin-Name: f5313e0c680d9baebefb1cf50ddadedd4418a334
2014-11-03 11:25:32 +00:00
dan
6f9702ed4d
If SQLITE_ENABLE_STMT_SCANSTATUS is defined, record the number of times each VDBE opcode is executed. Derive the values returned by sqlite3_stmt_scanstatus() from these records on demand.
...
FossilOrigin-Name: 9ea37422a8cc2fce51bb10508e5e90f40fd4b511
2014-11-01 20:38:06 +00:00
dan
04489b6dce
Add the experimental sqlite3_stmt_scanstatus() API.
...
FossilOrigin-Name: 6a9bab34aeb6a01b612211a28c140de60a3e883c
2014-10-31 20:11:32 +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
79f7af9a9e
Add requirements marks on the sqlite3_db_status() interface implementation.
...
Fix a typo in the documentation. Fix the new sqlite3_result_text64() routine
so that it works correctly with an encoding parameter of SQLITE_UTF16.
FossilOrigin-Name: d2fc322728331ae2d147c8496129df5e3c655eb5
2014-10-03 16:00:51 +00:00
drh
322f2852f2
Add the sqlite3VdbeMemClearAndResize() interface to be used in place of
...
sqlite3VdbeMemGrow().
FossilOrigin-Name: 5b9b8987797abf7c68d2c3154f6657be9b8b1c8f
2014-09-19 00:43:39 +00:00
drh
17bcb10299
Add the Mem.szMalloc element to the Mem object and use it to keep track of
...
the size of the Mem.zMalloc allocation.
FossilOrigin-Name: 9c09ac353df6041808cace41880f4729ee73f5e1
2014-09-18 21:25:33 +00:00
drh
74eaba4de2
Merge the Mem.r value into the MemValue union as Mem.u.r. Hence, a Mem can
...
now store an integer or a real but not both at the same time. Strings are
still stored in a separate element Mem.z, for now.
FossilOrigin-Name: 4c8c89d7e62aecfe2eb735f7bb114aed6b452847
2014-09-18 17:52:15 +00:00
drh
3329a63ac5
Fix compiler warnings and change the nullMem structure initializer into a
...
format that MSVC can understand.
FossilOrigin-Name: 163bfae8583b2d3002a3a43d6bf8a66fefd73acb
2014-09-18 01:21:43 +00:00
drh
0725cabe3a
Improved interface to the Mem object handling. Small size reduction and
...
performance increase.
FossilOrigin-Name: 4e437844322cc20eef92928b53fa6b37eded586e
2014-09-17 14:52:46 +00:00
drh
035e563bf6
Reorder the elements of the Mem object for a small size reduction and
...
performance improvement.
FossilOrigin-Name: 0be3019ed794c10de67dfd645ceea7d45815bc4b
2014-09-16 14:16:31 +00:00
drh
fc59a954cb
Fix an issue with sqlite3_bind_text64() with the SQLITE_UTF16 encoding
...
parameter. Remove some unreachable code from the text64() and blob64()
implementation.
FossilOrigin-Name: 34292b084ef48cd6e9ca5704f6b072a29733b4c2
2014-09-11 23:34:55 +00:00
drh
bbf483f855
Change the name of the _texte64() interfaces to just _test64(), without the "e".
...
FossilOrigin-Name: 6ab76c5fedfe568b0f0f34a600f9135bf6558148
2014-09-09 20:30:24 +00:00
drh
da4ca9d19c
Add new APIs that take 64-bit length parameters:
...
sqlite3_malloc64(),
sqlite3_realloc64(),
sqlite3_bind_blob64(),
sqlite3_bind_texte64(),
sqlite3_result_blob64(),
and sqlite3_result_texte64().
Internal memory allocation routines also now use 64-bit unsigned length
parameters for safety.
Also add the sqlite3_msize() interface.
Fix the sqlite3_get_table() to use sqlite3_realloc64() to avoid a
integer overflow problem.
FossilOrigin-Name: 94954850cf2e1ec0b7f590c7f46cdc54c72558ce
2014-09-09 17:27:35 +00:00
peter.d.reid
60ec914c74
Fix typos in comments. No code changes.
...
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
drh
9bd038f12e
In the sqlite3_context object, keep a pointer to the result value rather
...
than storing the result value in the sqlite3_context object and using
memcpy() to move the value back into its register
after the function returns. This runs faster and saves over 500 bytes
of code space.
FossilOrigin-Name: 6c1ee3e388eb110de815270467b1e50592c0ba6c
2014-08-27 14:14:06 +00:00
drh
9de4a17185
Make the implementation of the sqlite3_aggregate_context() interface faster
...
for second an subsequent invocations. This helps all aggregate functions to
perform better.
FossilOrigin-Name: 802148f3110462eac939d53ce08eb9a2f6aac739
2014-08-23 18:17:19 +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
drh
5f58ae75c9
A better fix for the sqlite3_trace() problem.
...
Ticket [11d5aa455e0d98f3c1e6a]
FossilOrigin-Name: 44d5bd4cc3f76e9a151ba0abae1092bd184af264
2014-08-19 20:41:36 +00:00
drh
2c7946a485
Make sure the sqlite3_trace() callback is invoked, even if the prepared
...
statement was marked "expired" before it ever entered sqlite3_step().
Ticket [11d5aa455e0d98f3c1e6a08].
FossilOrigin-Name: 0d4d3df4bc5e75ce1543b5539a1e9e279d2a062f
2014-08-19 20:27:40 +00:00
dan
857745c089
Update the sqlite3_stmt_busy() function so that it correctly returns true for "ROLLBACK" statements that have been stepped but not yet reset.
...
FossilOrigin-Name: 61cee3c0678f5abd9131a29ab946a5e71f55643e
2014-07-19 17:57:10 +00:00
drh
817492630a
When converting a result type from TEXT to BLOB using the
...
sqlite3_value_blob() interface, continue to report SQLITE_TEXT as
the true type from sqlite3_value_text() as long as that text is still
valid. The maintains legacy behavior from before the noMemType change.
FossilOrigin-Name: 1d134ba2edbdb8c0cf9e99590a69cd17e0b874a9
2014-03-05 14:40:22 +00:00
drh
b1a1c29a07
Separate the column NULL value constant into a separate routine for greater
...
commonality with the sessions branch.
FossilOrigin-Name: 12cbebb997705e37769460e00a4aaa52c12f305e
2014-03-05 12:47:55 +00:00
mistachkin
afc14f72ef
Experimental simplification of memory flags/type handling.
...
FossilOrigin-Name: bac2820e13a79d91d0f8938c643134a9d6900327
2014-03-05 01:29:18 +00:00
drh
1b27b8c0a0
Faster and smaller implementation of sqlite3_value_type().
...
FossilOrigin-Name: 5708bc24b8cab623b833121183042b43e5a7021b
2014-02-10 03:21:57 +00:00
drh
a3cc007df4
Simplication and optimization of error message handling.
...
FossilOrigin-Name: 9d347f547e7ba9590b0c68edf50a14ad94a2bb92
2013-12-13 16:23:55 +00:00
drh
95a7b3e36d
The date and time functions use the exact same notion of "now" for every
...
invocation within the same call to sqlite3_step().
FossilOrigin-Name: daf6ba413cb3cb6065774ba07495eab4a28b49b0
2013-09-16 12:57:19 +00:00
drh
9b47ee3f09
Performance optimizations in the VDBE and especially to the OP_Next and
...
related opcodes and in the sqlite3BtreeNext() and sqlite3BtreePrevious()
routines. This is a cherrypick of [6f99b54aedeb], [d2efea1682a7], and
[d78c5d89de4b].
FossilOrigin-Name: 7f72fc4f47445a2c01910b268335873de9f75059
2013-08-20 03:13:51 +00:00
dan
0c5477997b
Ensure that all auxiliary data registered by calls to sqlite3_set_auxdata() is destroyed when the VM is halted. Partial fix for [406d3b2ef9].
...
FossilOrigin-Name: 71effa59c98d167e6e4b269e59ad5f468e664ac1
2013-07-18 17:12:08 +00:00
drh
648e264342
Add the "defer_foreign_keys" pragma and the SQLITE_DBSTATUS_DEFERRED_FKS
...
value for sqlite3_db_status(). This is a cherry-pick of a sequence of five
checkins in the sessions branch between [1d44e5d3c2] and [d39e65fe70].
FossilOrigin-Name: 527121ac3cdc96ac33ad975c227a6685a2f7e999
2013-07-11 15:03:32 +00:00
drh
1713afb025
Refactor the Vdbe.noIO field as Vdbe.bIsReader. The meaning is inverted.
...
FossilOrigin-Name: 59f98c5c241e5a61cd5b6d0e69b55a6b44c5cafc
2013-06-28 01:24:57 +00:00
drh
4f7d3a5f06
Refactor names of fields in the sqlite3 object: "activeVdbeCnt" becomes
...
"nVdbeActive". Related fields becomes "nVdbeRead", "nVdbeWrite", and
"nVdbeExec".
FossilOrigin-Name: 14f796963474350e7aee8d3757acd3315fe78e4f
2013-06-27 23:54:02 +00:00
drh
9e92a47bdf
Make sure that sqlite3_stmt_readonly reports false for
...
PRAGMA journal_mode and PRAGMA wal_checkpoint. Ticket [a589ec069e3].
Also keep track of whether a prepared statement does no reading or
writing.
FossilOrigin-Name: 1937fd8eec2c1da95a782d9dc63926d846b06bdc
2013-06-27 17:40:30 +00:00
drh
f7b5496e8e
Many small harmless comment changes. Removal of obsolete comments and
...
fixing misspelled words. No changes to code.
FossilOrigin-Name: a0d5cc9315dc6e9ef7dee4c3dfabf4e562d64376
2013-05-28 12:11:54 +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
mistachkin
48864df97d
Many spelling fixes in comments. No changes to code.
...
FossilOrigin-Name: 6f6e2d50941e444ebc83604daddcc034137a05b7
2013-03-21 21:20:32 +00:00
drh
503a686e09
Always use strncmp() rather than memcmp() when comparing strings where one
...
or other string might be less than the length parameter, since optimized
versions of memcmp() might read past the first difference and in so doing
generate an access violation.
FossilOrigin-Name: d73435587ba7459e2e2c32980d0e17abdeceb4bc
2013-03-01 01:07:17 +00:00
drh
37f58e9902
Avoid repeating calls to the sqlite3_trace() callback when the same statement
...
is evaluted multiple times by sqlite3_step() due to an SQLITE_SCHEMA
reprepare.
FossilOrigin-Name: 39f763bfc04174ee0fe2cdf6a92b7c12f726bd1b
2012-09-04 21:34:26 +00:00