Commit Graph

1004 Commits

Author SHA1 Message Date
dan 3200132add Use a separate list of aux-data structures for each trigger program at the VDBE level. Fix for [dc9b1c91].
FossilOrigin-Name: c4295725015d394f01b8563f47236e0890f1cc0d
2016-02-19 18:54:29 +00:00
mistachkin fad3039c51 Enhance ability to debug out-of-memory errors.
FossilOrigin-Name: 6a9c4a3ebfb7cc0738ef6634440ccab44a21ff28
2016-02-13 23:43:46 +00:00
drh 1a606f8246 Merge enhancements and fixes from trunk.
FossilOrigin-Name: f040a5bb62f3473fba6450c97c68f538d1df21ef
2016-02-09 15:44:18 +00:00
drh 2fade2f791 Make sure every co-routines has its own set of temporary registers and does
not share temporaries, since a co-routine might expect the content of a
temporary register to be preserved across an OP_Yield.
Proposed fix for ticket [d06a25c84454a].

FossilOrigin-Name: ca72be8618e5d466d6f35819ca8bbd2b84269959
2016-02-09 02:12:20 +00:00
drh 0ac7cfaf99 Merge enhancements from trunk.
FossilOrigin-Name: a533608cb0de3cbc1e28a794aab99864b8c249f4
2016-02-05 14:15:34 +00:00
drh 575fad6500 Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority
cases where db is guaranteed to be not NULL.

FossilOrigin-Name: 0a802e96ab06e2643834b83671fa8353da1a348d
2016-02-05 13:38:36 +00:00
drh b84e574c89 Further performance improvements that fall out of the mallocFailed changes.
FossilOrigin-Name: d94416ddca8f7ed727dd335d38155ea5945a86b7
2016-02-05 02:42:54 +00:00
drh 4a642b6060 Improvements to the way that OOM errors are processed.
FossilOrigin-Name: c3ef03478a5788c855b3aef385d43ae7f494f440
2016-02-05 01:55:27 +00:00
drh 1b32554b80 Enhance the internal sqlite3VdbeAddOpList() interface to automatically update
jump destinations.  Use this feature to simplify the AUTOINCREMENT code
generator.

FossilOrigin-Name: ae8b9d2edf1b5aef6108e729754911db7682b6a3
2016-02-03 01:55:44 +00:00
drh 33c1eb6477 Merge all recent enhancements from trunk.
FossilOrigin-Name: f3f9200115caf4b356f90ec97c351d1afbcb9bf6
2016-02-02 02:22:30 +00:00
drh ed94af5eb9 Number VDBE opcodes starting with 0 instead of 1, as this obviates the
lower-bound test on "switch(opcode){...}", making the code smaller and faster.

FossilOrigin-Name: 4c9222f75bfac47f5422fff86b2d69a61933b3a2
2016-02-01 17:20:08 +00:00
drh b0c886510f Minor simplification to the OP_AutoCommit opcode. Fix some code comments
related to transaction control.

FossilOrigin-Name: a9b6a0672f84dd205f9333951e4c2a608d027d71
2016-02-01 13:21:13 +00:00
drh 5f4a686f8c Simplification and size reduction to the printf logic. Remove the bFlags
parameter from sqlite3VXPrintf() and sqlite3XPrintf().  Use sqlite3XPrintf()
instead of sqlite3_snprintf() for rendering P4 values in EXPLAIN output.

FossilOrigin-Name: 0bdb41c45aa1cc8e5c136aaa6605d54b401483bd
2016-01-30 12:50:25 +00:00
drh b17020265b Change the P4_INTARRAY so that always begins with a length integer. Print
the content of the INTARRAY on EXPLAIN output.

FossilOrigin-Name: 6c520d5726e80b4251338c43c405270d150ea81e
2016-01-30 00:45:18 +00:00
dan de892d9660 Experimental attempt to make better use of covering indexes within OR queries.
FossilOrigin-Name: a323ac3a9d42bd5cb38d724c7e1180584b91054c
2016-01-29 19:29:45 +00:00
dan d5cafb380e Remove a duplicate "p->magic = VDBE_MAGIC_RUN;" line from vdbeaux.c.
FossilOrigin-Name: 688eb3b400a3f2f8005c341e8259f4c1485cb0ed
2016-01-28 08:58:45 +00:00
drh a7dc4a321d Small simplification to the prepare statement opcode memory reuse logic.
Easier to read, and slightly smaller and faster.

FossilOrigin-Name: 8a1deae497edf3fa43fa96152d140405398c5ed6
2016-01-25 02:15:02 +00:00
drh 20f272c96f Merge recent enhancements from trunk.
FossilOrigin-Name: 327af5f644a49b2f41d5456958f9d61a2b704e1c
2016-01-20 11:33:37 +00:00
dan 5c3aa0517e Improve performance of sqlite3VtabImportErrmsg().
FossilOrigin-Name: 18d61c8e40ed1466b6a3a2f53bf0eeb09687c20e
2016-01-20 08:47:55 +00:00
drh 939e778bc8 Suppress the display of the P4 operand in EXPLAIN output when an opcode
has been converted into a No-op.

FossilOrigin-Name: 9f8297f862a110ded686d091854fae20c6bc393c
2016-01-20 02:36:12 +00:00
drh 4b31bda2c5 Remove an unnecessary memset() for a small size reduction and speed improvement.
FossilOrigin-Name: 730d7efb6fef54ed7c1f4ae27e3b55778ea6ff01
2016-01-20 02:01:02 +00:00
drh 6d664b4bb3 During compilation, transfer the azVar[0..nzVar-1] array from Parse to Vdbe
rather than copying it.  Smaller and faster code.

FossilOrigin-Name: 80dd495f378614e4eca72e71e43061b1b94ee450
2016-01-20 01:48:25 +00:00
drh b8763639bb Fix two harmless compiler warnings about comparisons of dangling pointers.
FossilOrigin-Name: 86944f193f1f06b64471953bb5713ecea7f3d803
2016-01-19 17:54:21 +00:00
drh dad300d8e1 Fix a problem with SQLITE_TEST_REALLOC_STRESS.
FossilOrigin-Name: 0aaf3febb00f622c5ef0853b2491d69f7ca7a21e
2016-01-18 00:20:26 +00:00
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 9b34abee30 Use sqlite3VdbeAddOp4() rather than a separate sqlite3VdbeChangeP4() call, for
a slightly smaller and faster binary.

FossilOrigin-Name: a4258cd4613c55acacb5c7b61faa3de7eb0759d2
2016-01-16 15:12:35 +00:00
drh cb75bff3f7 Merge the latest fixes and enhancements from trunk.
FossilOrigin-Name: 007e5c6df60f9743ac6914332f59925e4a7a861c
2016-01-14 14:48:17 +00:00
drh 00dcecab19 Performance optimization in the sqlite3VdbeChangeP4() routine of the
code generator.

FossilOrigin-Name: 28bd8d5fc541464b69886b7e886939035b42a869
2016-01-11 22:58:50 +00:00
drh 604ce70448 Merge recent enhancements, and especially the WAL overwrite change, from trunk.
FossilOrigin-Name: c4a858b228a164be2f89f5b01833f0b5e0d7735b
2016-01-11 13:10:41 +00:00
dan 20d876fa1c Have the vdbe layer call sqlite3BtreeEnter() on all b-trees in use from within sqlite3VdbeExec() even in SQLITE_THREADSAFE=0 builds. This ensures that BtShared.db is set correctly.
FossilOrigin-Name: d0214602d44d6b84b7463d530720e2560aee6edf
2016-01-07 16:06:22 +00:00
drh f56a2a07ff Merge changes for version 3.10.0.
FossilOrigin-Name: fa4705c91f9650ecd7ec967dbbf0028aabd8a98c
2016-01-06 15:14:53 +00:00
drh 0816905cdd Another attempt to get reuse of excess opcode array space working correctly
on all architectures and platforms.

FossilOrigin-Name: 2f8583748abab1e15029d3a8693ba9a66c978c2b
2016-01-05 03:39:25 +00:00
drh 11e3e538d6 Fix a corner case in the opcode-array reuse logic where the number of bytes of
reusable space might be computed to be a negative number, due to unusual
system alignment restrictions and rounding error.

FossilOrigin-Name: 1aa530144643582658c8c1dd66548662f950efe3
2016-01-04 23:43:47 +00:00
drh 721f26dc9a Merge in last-minute patches for the 3.10.0 beta.
FossilOrigin-Name: c785cd7813e4ef6d6f2cb362a0f822713db6bcea
2016-01-04 19:02:47 +00:00
drh bd57308eef Remember the size of the Vdbe.aOp[] array in bytes, to avoid unnecessary
calls to sqlite3_msize().

FossilOrigin-Name: 3e852804c85a5c9f4c4ffafd55d03af6d19fe5cc
2016-01-01 16:42:09 +00:00
drh 3c19bb60d1 Avoid misaligned memory allocations on Sparc in sqlite3VdbeMakeReady().
FossilOrigin-Name: a304e34675404aee860fcc97fa4ffcc57c014812
2016-01-01 16:26:22 +00:00
drh 8de1d77c60 Merge the latest enhancements from trunk.
FossilOrigin-Name: c0be246a740c8f33a7c07e1414688364dee56ece
2016-01-01 13:25:06 +00:00
drh e5520e2f06 Small size and performance optimization to the VDBE comparison opcodes.
FossilOrigin-Name: 7a0b9413fa94d3f4fa9751ddf9b213a1238954f1
2015-12-31 04:34:26 +00:00
drh 173b60999e Merge recent enhancements from trunk.
FossilOrigin-Name: f6c9273cab877b8b6b327250195f3392393d060a
2015-12-16 19:47:54 +00:00
drh 567a43bbc3 Simplified alignment constraints in the memory reuse logic of
sqlite3VdbeMakeReady().

FossilOrigin-Name: e998513e442ce1206b12dc28bdc996d7b5f9f94d
2015-12-11 13:51:02 +00:00
drh 9b810ae8f3 Fix a memory allocation bug introduced last week by check-in
[a9e819082ba].  The bug only appears on systems where the size of a structure
is not always a multiple of 8 - which in practice means only on 32-bit 
windows systems.

FossilOrigin-Name: 96d3e99ffe59b5280b8b7fc269c94a72e15c345b
2015-12-11 04:11:17 +00:00
drh 5ef09bf918 Further simplifications to the VDBE code generation logic that flow out
of the previous check-in.

FossilOrigin-Name: 6a5dfe85b519b920ce8c842057767a8793d92236
2015-12-09 17:23:12 +00:00
drh 72ea29d7ae Changes to avoid undefined behavior in memset() and memcpy() and in the
comparisons of pointers from different allocations.  All problems are found
by analysis tools - none have been seen in the wild.

FossilOrigin-Name: 901d0b8f3b72e96ffa8e9436993a12980f5ebd51
2015-12-08 16:58:45 +00:00
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 1bb15fc973 Merge recent enhancements from trunk.
FossilOrigin-Name: d1a1278d7f3306536dc9cbd8fb300898f1e373e8
2015-12-02 20:40:26 +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 769dc6e2a2 Merge the latest enhancements from trunk.
FossilOrigin-Name: 7d6cfc79e7e5534ebacd980479917bc528a638f7
2015-11-19 19:40:40 +00:00
drh d797035ac7 Avoid unnecessary function prologues in the sqlite3VdbeAddOp3() routine.
FossilOrigin-Name: 7c6a19ba9b0bdb1cc0b9a9796b7c1c114944d927
2015-11-09 12:33:39 +00:00
drh 98a0e0083f Merge recent enhancements and bug fixes from trunk.
FossilOrigin-Name: 78bc42e664e9fa9ee21ad9762c369f291fcdf5db
2015-11-07 01:33:30 +00:00