1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-25 09:59:22 +03:00

1040 Commits

Author SHA1 Message Date
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
dan
03e9cfc223 Refactor the sqlite3VdbeRecordUnpack() interface to better accommodate the vdbesort.c module.
FossilOrigin-Name: f115b2303509c678dbe83b2fa3d9c40d82882813
2011-09-05 14:20:27 +00:00
drh
ca892a7252 The build works again with -DSQLITE_OMIT_MERGE_SORT. The merge-sorter now
avoids spilling to disk (letting the in-memory linked list grow without
bound) if PRAGMA temp_store=3.

FossilOrigin-Name: 68e26c4487696d194ee85370380e4b0e56d206ee
2011-09-03 00:17:51 +00:00
dan
5134d1357e Instead of a temporary b-tree, use a linked-list and merge-sort to sort records in main memory in vdbesort.c.
FossilOrigin-Name: 7769fb988d9be0f2d8129aaac19620ac88f9b4a6
2011-09-02 10:31:11 +00:00
drh
c6aff30ca4 Experimental code-generator changes to utilize new opcodes for sorting.
FossilOrigin-Name: bab2e560f6cb989c83a96aad60f666960ede7abe
2011-09-01 15:32:47 +00:00
drh
2d36eb43a4 About a 1% overall performance improvement by using a macro to avoid
no-op calls to sqlite3MemReleaseExternal().

FossilOrigin-Name: ff71d20a9ed129bd1785a3f7a777ce62098735b7
2011-08-29 02:49:41 +00:00
drh
5a077b741f Small performance improvement to OP_Column.
FossilOrigin-Name: b6b73a747ad8d0f026074e41c2a4adc529ec2674
2011-08-29 02:16:18 +00:00
drh
e6f43fc4f8 About a 3% improvement in the performance of OP_Column.
FossilOrigin-Name: edff9d4a995095e555fcc9aec4c56f4bcaa1557e
2011-08-28 02:15:34 +00:00
drh
4a6f3aabca Correctly display P4_ADVANCE values on opcode traces. Mark an always-taken
branch in OP_Column as such.

FossilOrigin-Name: 087dc96086fe4e45da93ab6a0d5dda34c932ce97
2011-08-28 00:19:26 +00:00
dan
a205a486d2 Experimental changes to improve the performance of OP_Next.
FossilOrigin-Name: 1a249845251199c00817893add300a1a654b4df9
2011-08-27 18:48:57 +00:00
drh
2a5d9908f9 Create a new pager type, PAGER_SORTER, for use in the external merge sort.
Such pagers are always held in memory but do report when they are under
memory pressure by calling pagerStress.

FossilOrigin-Name: c71d73201d950355862dd8d5de142c9673888755
2011-08-26 00:34:45 +00:00
drh
d7f6e906db Disable external merge source when SQLITE_TEMP_STORE==3. Add documentation
to the OP_OpenSorter opcode.

FossilOrigin-Name: 5a690486811379cea40c6ed48b2902f421234832
2011-08-25 18:01:28 +00:00
dan
15bf39034a Merge latest trunk changes into experimental branch.
FossilOrigin-Name: 7e515055f219b01dd72df4e27bdcabfa2f9be5c2
2011-08-12 16:30:30 +00:00
dan
e6f7bc6379 Remove an unused parameter from a function in vdbesort.c. Fix some comments and other details in the same file.
FossilOrigin-Name: 1a8498d8037a1b93e56951bbdbb76291bd5a4f87
2011-08-12 16:11:43 +00:00
dan
689ab89781 Add the SQLITE_OMIT_MERGE_SORT pre-processor directive. To omit the code in vdbesort.c.
FossilOrigin-Name: 4ced2394b10d0a4f86422ff893bcdf3cf32591e3
2011-08-12 15:02:00 +00:00
dan
1e74e602ec In temp files used for merge sorting, store the size of each packed-memory-array at the start of the array itself. This is to avoid having to store the offsets of all arrays in the (potentially very large) file in main-memory.
FossilOrigin-Name: 8051c1767c4386b0f14a66742d9fac41e001eb07
2011-08-06 12:01:58 +00:00
dan
c6e734554f Change to using packed-memory-arrays instead of b-trees when performing an offline merge-sort for CREATE INDEX. This makes it easier to control the number of disc seeks required when merging.
FossilOrigin-Name: a4770d079c1b236eb54751e75a44cccc997c6b93
2011-08-04 12:14:04 +00:00
drh
52043d7d45 Update the OP_Move opcode to shift the pScopyFrom pointer of aliases when
compiled with SQLITE_DEBUG.  Ticket [d63523637517386191].

FossilOrigin-Name: a2135ad13049c170b33315a949b1544e6a136183
2011-08-03 16:40:15 +00:00
dan
a20fde64eb Experimental support for speeding up CREATE INDEX commands using an offline merge sort.
FossilOrigin-Name: 30dbf0feab0323250404e0741ac2716bcb6b0cbe
2011-07-12 14:28:05 +00:00
drh
e1b4f0f177 Pass the BTREE_UNORDERED hint into both sqlite3BtreeOpen() and into
sqlite3BtreeCreateTable().

FossilOrigin-Name: 591de898f41630156cc0fc6ef17dd3ee5e7c479f
2011-06-29 17:11:39 +00:00
drh
ef8662bb65 Fix more documentation typos.
FossilOrigin-Name: b9cbab739a62f497545161f30195272f4e687a7f
2011-06-20 21:47:58 +00:00
dan
5f84e14add Fix a memory leak that can follow an OOM error in a user-function that uses sqlite3_set_auxdata().
FossilOrigin-Name: 0185c4b689d18d66e6aa39b4a7bddc279e3c9d17
2011-06-14 14:18:45 +00:00
drh
be07ec582e Fix an #ifdef of SQLITE_OMIT_VIRTUALTABLE that had an extra "_" character.
FossilOrigin-Name: 93e0be2bbf16d66d97ea7344187139d254b11cc3
2011-06-03 12:15:26 +00:00
drh
04e9eeadc6 Avoid unnecessary duplication of SQL parameter names.
FossilOrigin-Name: e704e8690ae35decc9769a45cf8d519ccad8b79d
2011-06-01 19:16:06 +00:00
drh
c3f1d5f095 Minor performance improvements.
FossilOrigin-Name: f9950c6af1813f724dacd7455f472acec921b06a
2011-05-30 23:42:16 +00:00
drh
21f80f0478 Fix a "#ifdef" from check-in [03f7d36a8a] that should have been "#ifndef".
FossilOrigin-Name: edb865c35415f9553f8279028120f7b8de2bf7e2
2011-05-28 19:24:15 +00:00
drh
305ebab7cc Changes to work with SQLITE_OMIT_VIRTUAL_TABLE.
FossilOrigin-Name: 03f7d36a8a24825b7542b5fed651af1622ae4eb5
2011-05-26 14:19:14 +00:00
drh
346506f97b Changes to savepoint in virtual tables for simpler and more consistent
operation.

FossilOrigin-Name: 92f26a8b8f18832cb1f8ba7dd8e5b020e71a5883
2011-05-25 01:16:42 +00:00
drh
a24bc9ced3 Make sure the savepoint index is correct one calls to sqlite3VtabSavepoint
with SAVEPOINT_BEGIN.

FossilOrigin-Name: a9d095660ca0e99b226e0fe669c11a0be6c49710
2011-05-24 00:35:56 +00:00
drh
99a66928c2 Make arrangements so that virtual table inserts into shadow tables do
not modify the sqlite3_last_insert_rowid() return.  Document that this
is how sqlite3_last_insert_rowid() works.

FossilOrigin-Name: e569f18b989aef853c9d71eaf73d6967f0a8c583
2011-05-13 18:51:42 +00:00
dan
ff4ec04240 Merge latest trunk changes with uri branch.
FossilOrigin-Name: af279f367e01732560b8b2b6aeb5ede4f04415dd
2011-05-04 17:35:12 +00:00
dan
d9495cd0c6 Fix problems related to savepoint rollback and fts3.
FossilOrigin-Name: ff69f823f23e6fb6e8b2857c4576d9c0732d9572
2011-04-27 12:08:04 +00:00
dan
a311b80392 Extra tests for fts3. And fixes for conflict-handling related problems in fts3.
FossilOrigin-Name: fb4a355871d9482ccb28b6ba03b842b3cc87b696
2011-04-26 19:21:34 +00:00
dan
b061d058cb Add support for on conflict clauses to fts3/fts4.
FossilOrigin-Name: 6d2633a6d0a9bb88fb1a6adac0827dc51df2d4d2
2011-04-25 18:49:57 +00:00
dan
3a6d8aec2a Have the ATTACH command do URI interpretation in the same way as sqlite3_open() and sqlite3_open_v2() do.
FossilOrigin-Name: 68240e75e87a54cde93352b0ec364d34365a8170
2011-04-23 15:54:54 +00:00
drh
dc5b047ec3 Fix a performance regression: Keep two btree masks in each prepared
statement; one for btrees used and another for btrees that require locks.
Only try to lock the btrees identified by the second mask.

FossilOrigin-Name: 614de91a504d2231009a9de1305e31fce1b1c5a6
2011-04-06 22:05:53 +00:00
drh
fcd71b6010 Suppress many harmless compiler warnings, mostly signed/unsigned comparisons
within asserts or unused parameters in extensions.

FossilOrigin-Name: 3eeb0ff78d04891b5fd1a3d99a9fb8cfbed77a81
2011-04-05 22:08:24 +00:00
drh
8d4991e7ba Remove dead code from the OP_JournalMode opcode in the VDBE.
This code seems to have been useless since [f88c6367d2] on [20010-08-07].

FossilOrigin-Name: a89f24e2c9591d09cbe329895ceec87885059184
2011-04-05 18:34:10 +00:00
drh
e54e051800 Remove the mutex counter and the logic that attempts to verify that btree
mutexes are held continuously.  We are not making that assumption at this
time.

FossilOrigin-Name: 242ce7cff416a87d57d4eb624cb79fa4e2215559
2011-04-05 17:31:56 +00:00
drh
cdf011dcc4 Additional schema mutex checks for sqlite3RootPageMoved().
Reduce the scope of sqlite3ResetInternalSchema() in a few places.

FossilOrigin-Name: 39c00907833413c0d97d3e06fdda967b825d23ea
2011-04-04 21:25:28 +00:00
drh
2120608e0f Add a description of access rules for the Schema object and lots of asserts
to verify that the access rules are followed.

FossilOrigin-Name: ae8374af057b6e6546e9265148cfffe32fcb0849
2011-04-04 18:22:02 +00:00
drh
e038f852c8 Merge in the latest changes from trunk.
FossilOrigin-Name: 47b79c40cf07048f682c44bfef533d4764b20c4d
2011-04-04 13:07:02 +00:00
drh
7b94e7f838 Move the expired-statement test for OP_Function until after all memory has
been freed.  The test is still commented out, however.

FossilOrigin-Name: 425e3edb146c497817855dd741878709a25c8b98
2011-04-04 12:29:20 +00:00
drh
bdaec52c62 Remove the BtreeMutexArray object - use the Vdbe.btreeMask field to accomplish
the same result.  Add a generation counter to btree mutexes in order to assert
that mutexes are never temporarily dropped over a range of instructions in order
to do deadlock avoidance in some subroutine.  Lock all btrees in any Vdbe
program that uses OP_ParseSchema.

FossilOrigin-Name: d81708f7d1eee399bfe76f6b8dac950a85dc2582
2011-04-04 00:14:43 +00:00
drh
dddd779b2b Make sure that the constant 1 is cast to yDbType before shifting to create
an attached database mask.  This check-in is a follow-up and fix to the
[7aaf8772274422] change that increases the maximum number of attached databases
from 30 to 62.

FossilOrigin-Name: e2a09ea73c76a0bec1e09d1fc11092517e3ebdf9
2011-04-03 18:19:25 +00:00
drh
c7792fa052 Begin a series of changes designed to reduce the scope and frequency of
invalidating schemas.  Design goals are that the internal schema should
never be deleted out from under a prepared statement that is running and
that all prepared statements should be expired if the schema is invalidated.
At the same time, minimize the number of schema invalidations.  This change
merely revises the sqlite3ResetInternalSchema() function to use -1 as the
wildcard for "all" rather than 0, so that we can reset the main schema
independently of all the others.

FossilOrigin-Name: 6a8ad6e31e0d2b8a5ace38faf0efd805155ee5f3
2011-04-02 16:28:52 +00:00
dan
6c15487b7e Fix a race condition in OP_ParseSchema.
FossilOrigin-Name: 71a799b02a3b3cf2e12758dea29fd2465bbec3e1
2011-04-02 09:44:43 +00:00
drh
22645842a4 The changes to fix [f7b4edece25c9948] mean that the schema is always loaded
whenever a prepared statement is running.  This means that a couple of
branches can be eliminated and one operand of OP_ParseSchema can be removed.

FossilOrigin-Name: b6e268fce12829f058f1dfa223731ec8479493f8
2011-03-24 01:34:03 +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
drh
c126e63e4f Remove dead code identified by the clang static analyzer.
FossilOrigin-Name: 01a79d5a7af48fb7e50291c0c7c6283d3fb359d0
2011-03-06 21:28:32 +00:00