drh
d797a9b5cb
Changes to avoid obscure, theoretical undefined behavior. This is preventative
...
measures only - no actual problems observed on tested compilers.
FossilOrigin-Name: a9e819082ba19e72db03bba37edfb7702ff489a5
2015-12-07 16:43:44 +00:00
drh
3d4143a38a
Do not try to eliminate No-ops at the end of VDBE program as this can cause
...
problems for some DISTINCT handling algorithms, and does not improve
performance. This also fixes an assertion fault found by libFuzzer.
FossilOrigin-Name: 19d9f9ce691963310fa73ac5ff728ea8dea9d2b2
2015-11-24 00:49:44 +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
d797035ac7
Avoid unnecessary function prologues in the sqlite3VdbeAddOp3() routine.
...
FossilOrigin-Name: 7c6a19ba9b0bdb1cc0b9a9796b7c1c114944d927
2015-11-09 12:33:39 +00:00
drh
3adf8783b0
Avoid an unnecessary key comparison when doing an indexed lookup against an
...
equality constraint.
FossilOrigin-Name: d741e1ccdce96e6142e294fbdd20a0282296dcea
2015-11-06 20:22:25 +00:00
drh
f83075201f
Work around a sign-extension bug in the optimizer on the HP C compiler that
...
comes with HP/UX.
FossilOrigin-Name: 46c36b1543d7a8156eaa866c67080526153fb10d
2015-11-06 20:13:48 +00:00
drh
c8bb430dfe
A proposed patch for working around a bug in the optimizer for the HP compiler
...
found on HP/UX Itanium.
FossilOrigin-Name: 8a171548e4f665f03d00af6dcb46669a4a78fad5
2015-11-06 17:28:00 +00:00
drh
2ab410aa1e
A different approach to handling integer/float comparisons. This seems to
...
work better on systems where "long double" and "double" are the same type,
but still needs refinement and testing.
FossilOrigin-Name: a3f7614b2095fbc1eca54801b2da88f85f294ec5
2015-11-06 14:59:07 +00:00
drh
8b8446fc21
Increase the precision of integer vs. floating-point comparisons.
...
Candidate fix for ticket [38a97a87a6e4e8].
FossilOrigin-Name: cfcaa0ff276b1936418abe72c7e0c99d90d37885
2015-11-06 01:04:41 +00:00
drh
70528d7868
The top of an index equality loop normally starts with OP_SeekGE and OP_IdxGT.
...
This check-in adds a flag to OP_SeekGE such that it fails immediately if
the key is not equal, then jumps over the OP_IdxGT, saving a call to the key
comparison functions. Consider this check-in a proof-of-concept. It needs
improvement before going on trunk. Some tests fail, but only because they
new use fewer key comparisons than expected (which is a good thing!).
FossilOrigin-Name: 32e31b9bc8664afcd326a1ff3892d86dc5202474
2015-11-05 20:25:09 +00:00
drh
0030aaad67
Merge recent enhancements from trunk. Version now 3.9.1.
...
FossilOrigin-Name: 26fa091d68e89a0b6af61ba706d23a9f37e8025a
2015-10-16 20:53:57 +00:00
drh
be37c12423
Have the sqlite3VdbeSerialType() function go ahead and compute the serial
...
length as well, since it is always needed. This avoids unnecessary calls
to sqlite3VdbeSerialTypeLen().
FossilOrigin-Name: 2ad72be12477b0e8e33e56a9a17e29abbd283ec1
2015-10-16 14:54:17 +00:00
drh
faf3727904
Use a lookup table to compute the content length for serial types less
...
than 128, for a 1.2% performance improvement.
FossilOrigin-Name: 3395724814099d28829ef6875ca1ba77d6fe7ffa
2015-10-16 14:23:42 +00:00
drh
163c29c5f3
Merge enhancements from trunk.
...
FossilOrigin-Name: 25ee3000e94d60d8c1d7b980f416dcc33eb11105
2015-09-03 14:39:33 +00:00
drh
076e85f59c
Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help
...
with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto()
to just sqlite3VdbeGoto().
FossilOrigin-Name: 847387ec8e6fef283899578fb232b2c23b00ee5b
2015-09-03 13:46:12 +00:00
drh
7cc023c7fa
Factor out and simplify code in pragma.c for pragmas that return a single
...
row with a single column that is an integer or text value.
FossilOrigin-Name: d7f4bdf594e93c848f46901637861c8eed4c34df
2015-09-03 04:28:25 +00:00
drh
0ff287fb01
Add and use the sqlite3VdbeChangeOpcode() routine. Simplify the implementation
...
of the other sqlite3VdbeChange*() routines.
FossilOrigin-Name: 0a5b00e493efae58252f9fc7bde5a469645942d5
2015-09-02 18:40:33 +00:00
drh
2991ba050b
Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for
...
sqlite3VdbeAddOp2(v,OP_Goto,0,i).
FossilOrigin-Name: be78f413df1b0d874b44a866ef6bf17543d7e8a2
2015-09-02 18:19:00 +00:00
drh
ef41dfe5b1
Change sqlite3_sql() so that it always returns the SQL text of the prepared
...
statement, if the text is available, even if the the prepared statement was
generated using sqlite3_prepare() instead of sqlite3_prepare_v2(). Also
include some minor comment fixes and code simplifications.
FossilOrigin-Name: 2f5472cfda6c72e75b9cf7b7481612465c1a5e6a
2015-09-02 17:55:12 +00:00
drh
c1bd84124b
Merge recent enhancements from trunk, including table-valued expressions.
...
FossilOrigin-Name: b9927c876c1d4e146cb6a603d82cd2489594084d
2015-08-20 23:45:59 +00:00
drh
d5a74c8e19
Minor fix to the display of oversized KeyInfo structures in the P4 operand
...
of Open opcodes in EXPLAIN output.
FossilOrigin-Name: f65a9b4ab2c6f0b7028e16e2a0f83fd6d58ae1cd
2015-08-15 16:32:50 +00:00
drh
a67a31624d
Change the display of the P4 operand of CursorHint in EXPLAIN output to
...
function notation.
FossilOrigin-Name: bee73d429cb0e99b43fb191ac15e298d0353b135
2015-08-15 00:51:23 +00:00
drh
2f2b02785a
Fix the cursor hint mechanism so that it does the right thing for indexed
...
lookups.
FossilOrigin-Name: 581e3d4988e98975fea5daaeb9f854c54a4976b7
2015-08-14 18:50:04 +00:00
drh
fe66352d17
Fix the CursorHint so that it includes the scan boundary constraints.
...
On the expression text for the CursorHint opcode, show rowid correctly.
FossilOrigin-Name: f0d428d13a787251c2ca7685fec2a91b550eefba
2015-08-14 01:03:21 +00:00
drh
f7e369070e
Convert the hint expression of the CursorHint opcode into a string for
...
display by EXPLAIN.
FossilOrigin-Name: 206884718782331a7aaacc2c811e4e9d2effae91
2015-08-13 21:32:41 +00:00
drh
bec2476afc
Merge in all the trunk changes from the previous year. This breaks the
...
cursor-hint mechanism, but provides a baseline for trouble-shooting.
FossilOrigin-Name: 82a7a61bc0883b1e7432548e4890791717aa1bb3
2015-08-13 20:07:13 +00:00
drh
4698136594
Early detection of file corruption in a debugging routine, before the invalid
...
data can cause problems.
FossilOrigin-Name: b27a47fef995f0ab2516e6ca779711cab1f50fb9
2015-07-08 12:25:38 +00:00
drh
c5ef7151b0
Avoid unnecessary calls to sqlite3VdbeSerialTypeLen() for integer
...
serial types, for a small size reduction and a speed increase.
FossilOrigin-Name: 9cd30d33b1d02dc8c55c1d74bdbcefab63ebf2a7
2015-06-28 02:58:51 +00:00
drh
e2d9e7cfd0
Further optimization of SQL function dispatch. Improvements to opcode
...
documentation.
FossilOrigin-Name: eaddbf296aee98ffca82adade1b0d2fbefd09d7b
2015-06-26 18:47:53 +00:00
drh
9c7c913cd6
Cache the sqlite3_context structure in the P4 operand of VDBE programs
...
for faster SQL function dispatch.
FossilOrigin-Name: 2abc44eb3b9d489321baa50bc25e17dafbda3687
2015-06-26 18:16:52 +00:00
drh
f1aabd6b78
Optimizations to two VDBE accessory routines for a 0.2% performance increase.
...
FossilOrigin-Name: 66d033b9c9a8c16b9a342be0b325bd85b8487c03
2015-06-17 01:31:28 +00:00
drh
0dd5cdaea5
Ensure that the CREATE TABLE AS statement correctly undoes partial changes
...
to the sqlite_master table if the SELECT on the right-hand side aborts with
an error. Fix for ticket [873cae2b6e25b]
FossilOrigin-Name: 400e025e7c61efab71b891743c07a0862e5bb934
2015-06-16 16:39:01 +00:00
drh
97bae794c2
Add a new opcode to the VDBE that gives the b-tree a hint about the set
...
of columns in a table or index that are actually used by the query.
FossilOrigin-Name: f167bba446b78dd7538d0b2bae3e6678f3b1ba28
2015-06-05 15:59:57 +00:00
dan
b95e1193d5
Avoid a buffer overread when comparing against a corrupt record that spans at least one overflow page.
...
FossilOrigin-Name: 62a5b3633a086694ef0e579a0a82322cb1ae3d60
2015-05-26 20:31:20 +00:00
dan
cc7aa1f6f3
Avoid branching on an uninitalized variable when comparing SQL values with the undefined serial types 10 and 11 (which only appear in corrupt databases).
...
FossilOrigin-Name: b4a45d3b78fede2433ac18f20b1ab7bddee77059
2015-05-26 20:07:32 +00:00
drh
22c17b8bf5
Simplifications to error message processing. Fix a possible problem in error
...
message formatting when vacuuming a database with a corrupt schema.
FossilOrigin-Name: 56ef98a04765c34c1c2f3ed7a6f03a732f3b886e
2015-05-15 04:13:15 +00:00
drh
ab4e7f3337
Make sure all cursors are closed when returning from a VDBE subprogram that
...
implements a foreign-key construct.
FossilOrigin-Name: d04d354d8e423961c3091b6ebcfbbbf10d3ecb04
2015-04-16 18:11:50 +00:00
dan
7004f3f6a3
Improve performance of multi-field sorts where the first field has a low cardinality.
...
FossilOrigin-Name: 601e7b6b8e6bfabda03b70f75094c9014e3a3c49
2015-03-30 12:06:26 +00:00
drh
466fd815fb
Simplify the EXPLAIN output of virtual table P4 parameters to only show the
...
pointer to the sqlite3_vtab object and omit the sqlite3_module object.
FossilOrigin-Name: 85610bbbc60cb4a6ec856123447fdb2ba948e52f
2015-03-24 14:57:02 +00:00
drh
f496a7dc81
More defenses against virtual table being deleted out from under a running
...
statement.
FossilOrigin-Name: 116c99823022c017946b6088878a2d46759deb6e
2015-03-24 14:05:50 +00:00
drh
a68d628291
Prevent a virtual table from being destroyed while it is in use.
...
FossilOrigin-Name: fba674c083286dabb37fed9357b67593b56ed3a5
2015-03-24 13:32:53 +00:00
drh
086723a4a8
Replace the Vdbe.inVtabMethod field with the sqlite3.nVDestroy counter.
...
FossilOrigin-Name: 9faefb96272967e731e83ef516a8c1e1b876391b
2015-03-24 12:51:52 +00:00
drh
75a4d7c3da
When deleting the master journal to commit a multi-database transaction, do
...
not sync the directory if PRAGMA synchronous=OFF for all participating
database files.
FossilOrigin-Name: 018d7671402a0f8103d1306641655b69f9fa235d
2015-03-16 16:44:55 +00:00
mistachkin
1b3ee49225
Fix harmless compiler warning seen with MSVC.
...
FossilOrigin-Name: 78c2e62bb4c529595aaaf2e1f5f26387ad977b1b
2015-01-21 00:51:08 +00:00
drh
1af3c64d03
Fix the assert() of the previous check-in so that it works even when
...
compiled without SQLITE_DEBUG.
FossilOrigin-Name: 38868f845e1ad4d61354ab1ad39dd19e3e07c7fd
2015-01-19 20:57:19 +00:00
drh
e1bb802c54
An alternative way of implementing the assert() that verifies the relative
...
values of KeyInfo.nField+KeyInfo.nXField and the number of columns in a record.
This version of the assert() only fires when the high-speed comparison
routines are used - which is to say it only fires when the constraint
actually matters.
FossilOrigin-Name: bf744b4908b096f301565f6a4ea8d56667c1d76a
2015-01-19 19:48:52 +00:00
dan
0466883300
Experimental opimizations to speed up FK constraint CASCADE and SET NULL action processing.
...
FossilOrigin-Name: 35a20a5f22245c70faa51965951e8cc011defa93
2014-12-16 20:13:30 +00:00
drh
9b5444af6c
Work around overzealous NULL pointer checking in memcpy() and memset() for
...
some systems.
FossilOrigin-Name: 0d04f380e1bd17104b3cf76b64d0cfc79a726606
2014-12-02 13:46:53 +00:00
drh
1b40e63f9b
Fix the encoding of some integers to use the minimum amount of space:
...
-128, -32768, -8388608, -217483648, and -140737488355328.
FossilOrigin-Name: 2d7c8da5f16e64eaa7b0c2d66898682ea3d102a0
2014-11-20 02:58:10 +00:00
drh
654858d7f4
Add some requirements marks to the record formatting logic. Comment changes
...
only - the code is unaltered.
FossilOrigin-Name: 9a9627e178a67bbfc85366aaea900e674d22fb53
2014-11-20 02:18:14 +00:00