6485 Commits

Author SHA1 Message Date
danielk1977
ae5558b2ae Add a version of cellSizePtr() that is faster than using sqlite3BtreeParseCellPtr(). This speeds up balance_nonroot(). (CVS 6566)
FossilOrigin-Name: e8f7f7b787fe941093edaea44db4d361fad1e002
2009-04-29 11:31:47 +00:00
danielk1977
7b801388f5 Simplify a conditional expression in btree.c. (CVS 6565)
FossilOrigin-Name: fc3a5ac2353142082fe14d47f9c2b662407ea3f7
2009-04-29 06:27:56 +00:00
drh
8ad38a7d18 Fix an out-of-order test number in blob.test. Cosmetic change. No
changes to code.  Ticket #3830. (CVS 6564)

FossilOrigin-Name: e855654283a23d903fd531162655a8c4fa01775b
2009-04-28 18:00:27 +00:00
drh
0d59d17c41 Fix asserts in hash.c so that zero-length symbols can be used. (CVS 6563)
FossilOrigin-Name: fe9f00aa369051beee09ab3d1a2e046a1f679a40
2009-04-28 17:33:16 +00:00
danielk1977
8be0245db4 When testing with TEMP_STORE=3 and the test pcache, only run 20 iterations in trans.test. Otherwise the test pcache runs out of memory. (CVS 6562)
FossilOrigin-Name: 0799b729a7fe50ee935ac3bd9f95118288d33f6e
2009-04-28 16:37:59 +00:00
drh
b82400132d Remove an unused function declaration from hash.h. (CVS 6561)
FossilOrigin-Name: fcf70bb8b8ab7682d46fa7e75338dfd8ecf472a3
2009-04-28 16:35:42 +00:00
danielk1977
2e90567890 Further adjustment to rowhash.test to account for rowid collisions. (CVS 6560)
FossilOrigin-Name: 94a23f993381412c7533878d44faa2f8e47e58ce
2009-04-28 15:48:08 +00:00
drh
8a1e594c9f Simplifications to the symbol table implementation in hash.c. For very small
symbol tables (less than 10 entries) a simple linked list is used instead
of a hash table.  Number of hash table buckets is limited to prevent large
allocations. (CVS 6559)

FossilOrigin-Name: 5c737835dec9e6038b304c198aa14337a6f23c1c
2009-04-28 15:43:45 +00:00
danielk1977
ebb329397c Have sqlite3_create_collation() return MISUSE if passed an encoding value other than SQLITE_UTF8, SQLITE_UTF16LE, SQLITE_UTF16BE, SQLITE_UTF16 or SQLITE_UTF16_ALIGNED. (CVS 6558)
FossilOrigin-Name: 7975b6f2ec7736b3656a264c2f7e7e95ce7a78e4
2009-04-28 15:35:38 +00:00
drh
a83ccca794 Do not store the zero string terminator as part of the name when holding
symbols in the symbol table. (CVS 6557)

FossilOrigin-Name: 23d67af39227aeade2ea0292e1b8844eea580993
2009-04-28 13:01:09 +00:00
danielk1977
c1f4a19bfa Another fix to the same assert as in (6555). It can also fail after a malloc error. (CVS 6556)
FossilOrigin-Name: e096f90a57f0e0d1dbeaafc72762035ca55ab803
2009-04-28 12:08:15 +00:00
danielk1977
f0d0a8dc4a Fix an assert that could fail after a parse error in expr.c. (CVS 6555)
FossilOrigin-Name: a37d1174eb80e9a09522b236afdb47283f312d06
2009-04-28 11:10:39 +00:00
danielk1977
f761f76262 Avoid changing the pager journal-mode once a write-transaction is open, even if no database pages have been modified. (CVS 6554)
FossilOrigin-Name: ad8aba3eff90d42b936e3644f10cbbd431eebad8
2009-04-28 05:27:20 +00:00
drh
1691cd4bc0 Add test cases for sqlite3_complete with an EXPLAIN QUERY PLAN on a
CREATE TRIGGER statement.  Ticket #3828. (CVS 6553)

FossilOrigin-Name: 6b86b40edadb9c9cbc0db5a43a8277434f9d7171
2009-04-28 04:51:29 +00:00
drh
e0d0f8ee4d Make sure sqlite3_open16() always zeros the db return pointer if
SQLite initialization fails. (CVS 6552)

FossilOrigin-Name: 057c7d171397e19c8f3ac2362ea45f2b4a50530c
2009-04-28 04:47:31 +00:00
drh
709915da2a Enhance sqlite3_complete() so that it understands EXPLAIN QUERY PLAN.
Ticket #3828.  Testing is done in TH3. (CVS 6551)

FossilOrigin-Name: 3ac1b15f552fe005630e43a92fffa6a4abd6675d
2009-04-28 04:46:41 +00:00
drh
51c7d86476 Bring the documenation and implementation of sqlite3_collation_needed() into
agreement.  Use a more efficient implementation of sqlite3ErrStr().
sqlite3_result_error_code() now calls sqlite3ErrStr() if no prior
error string was set. (CVS 6550)

FossilOrigin-Name: cb9af8293624da35c32077d0f46d5b0cf826dcf5
2009-04-27 18:46:06 +00:00
danielk1977
6f050aa2bf Tests for the new asynchronous IO API. (CVS 6549)
FossilOrigin-Name: 11b2564e7159168cd0815bb9bc93688586fad1e0
2009-04-25 08:39:14 +00:00
drh
4fa326564a Add another test case for the "x IS NULL" uniqueness problem of ticket #3824.
No changes to code.  This just double-checks that everything is working now. (CVS 6548)

FossilOrigin-Name: 3ceae3579bc42974865cf6fe0bc42001e786e894
2009-04-24 20:32:31 +00:00
danielk1977
70d9e9cc02 Dequote the "from" table in a FOREIGN KEY definition (affects the output of "pragma foreign_key_list). Fix for #3800. (CVS 6547)
FossilOrigin-Name: 600482d1619c07690b6517ded9655462bdab7538
2009-04-24 18:06:09 +00:00
drh
336a5300de Get rid of the special RowSet processing in where.c and move that into
clients.  Added the WHERE_DUPLICATES_OK option to eliminate an unnecessary
RowSet during DELETE with a WHERE clause containing ORs. (CVS 6546)

FossilOrigin-Name: 98606bee9e41b8969fb639fc43864e230185ca43
2009-04-24 15:46:21 +00:00
drh
46619d6787 Make sure that the optimizer realizes that an "x IS NULL" contraint does not
necessarily give a single-row result even on a UNIQUE index.  Ticket #3824. (CVS 6545)

FossilOrigin-Name: 207335fdbf992a2f5bc5982b3163a38016ba1b21
2009-04-24 14:51:42 +00:00
danielk1977
4598b8e4a1 Make selecting the asynchronous IO file-locking mode a runtime operation. Still untested. (CVS 6544)
FossilOrigin-Name: 577277e84a05707b8c21aa08bc5fc314c1ac38ac
2009-04-24 10:13:05 +00:00
danielk1977
debcfd2dcb Improve comments and documentation of the asynchronous IO VFS module. (CVS 6543)
FossilOrigin-Name: 92bc6be2a86f8a68ceded2bc08fe7d6ff23b56fb
2009-04-24 09:27:16 +00:00
shane
68d405e25a os_win.c, winOpen(), changed to handle the SQLITE_OPEN_EXCLUSIVE flag and sharing modes in the same manner as os_unix.c. Ticket #3821. (CVS 6542)
FossilOrigin-Name: 18fef3fcf61c137a89a83352f6769ed06845434a
2009-04-23 19:08:32 +00:00
shane
b1a82dbe95 Updated misc. test scripts for Windows testing with gcc/cygwin; (CVS 6541)
FossilOrigin-Name: 1e2c71596e3f7a69afc5b745c20b2e4e81bffda5
2009-04-23 18:42:04 +00:00
shane
8a0dc3b04a Remove some incorrect async tests; (CVS 6540)
FossilOrigin-Name: 03af25b3ee001c1bf3e7a3218fad6ed311c7c259
2009-04-23 18:41:25 +00:00
danielk1977
a3f065980e Move the asynchronous IO code from src/test_async.c to ext/async/. Refactor it to be a standalone module and to support windows. (CVS 6539)
FossilOrigin-Name: e71fb0fb8d83b4453c3c1e84606bf58d04926809
2009-04-23 14:58:39 +00:00
drh
ceea33217b Rework the column-cache mechanism to be more robust (and more correct).
The column-alias cache is currently disabled, (CVS 6538)

FossilOrigin-Name: dd4d67a67454a3ff13c286a2a8360c5f0432c91d
2009-04-23 13:22:42 +00:00
drh
044925be0b Eliminate the OP_VRowid opcode. The regular OP_Rowid now work for both
regular and virtual tables. (CVS 6537)

FossilOrigin-Name: ecbef45011f1f98d940b2d3492941213d9f04172
2009-04-22 17:15:02 +00:00
drh
6149526c25 Change the OP_Rowid opcode so that a deferred OP_Seek is pending, it simply
pulls the rowid from the deferred seek target and does not actually move
the cursor or do a seek.  Other where.c cleanups. (CVS 6536)

FossilOrigin-Name: 1c508a99822caa383e7e24b5d09a9bddd2ee3a00
2009-04-22 15:32:59 +00:00
drh
1b26c7ccfa Remove the rowhash object from the code. Rowset now fills its role. (CVS 6535)
FossilOrigin-Name: e963bed0fe3ce5fa32f04b930e5ed0956dc2aa47
2009-04-22 02:15:47 +00:00
drh
733bf1b1e2 Extend the Rowset object to contain all the capabilities of Rowhash in
addition to its legacy capabilities.  Use Rowset to replace Rowhash.
In addition to requiring less code, This removes the 2^32 result row
limitation, uses less memory, and gives better bounds on worst-case
performance.  The Rowhash implementation has yet to be removed. (CVS 6534)

FossilOrigin-Name: b101cf70b75c9772aaf50e0eadd0cfa37c84d193
2009-04-22 00:47:00 +00:00
danielk1977
dcc1f44020 Move RowHashBlock.nUsed to RowHash.nUsed. Fix a typo in a comment in test_async.c. (CVS 6533)
FossilOrigin-Name: 799d31d99fd18a6f99862433384e37d6747ee5b3
2009-04-21 18:20:45 +00:00
danielk1977
732dc5526b Fix a segfault that followed a malloc failure introduced by (6527). (CVS 6532)
FossilOrigin-Name: 08e71b114087cfddd36c066265982172fcb41c9a
2009-04-21 17:23:04 +00:00
drh
84fe066470 Adjust the rowhash.test module so that it recovers gracefully in the rare
event of a rowid collision. (CVS 6531)

FossilOrigin-Name: 72e1680904a354811cd2956bd57769ee2482c8bb
2009-04-21 17:13:38 +00:00
drh
cd5a9729d2 Allocate the initial RowHash object using lookaside. (CVS 6530)
FossilOrigin-Name: 9b30ab7199d8b51bdea8ec7f0410281527623673
2009-04-21 16:15:15 +00:00
drh
ade9760aea New comments and minor refactoring of rowhash.c. (CVS 6529)
FossilOrigin-Name: b8cb4f3e2473afaee7c147a6b3f0972f69391a9a
2009-04-21 15:05:18 +00:00
drh
a76409211d Remove a redundant test from sqlite3_shutdown(). (CVS 6528)
FossilOrigin-Name: 6f481ceb503c7df74d9417a5a7f019ff56261ea8
2009-04-21 12:02:56 +00:00
danielk1977
1d46146b58 Attempt to optimize virtual table queries with 'OR' expressions in the WHERE clause. (CVS 6527)
FossilOrigin-Name: f61e4cd93682fd98bea2a71d346f9eaa68454390
2009-04-21 09:02:45 +00:00
drh
8a93919082 Change the journal_mode pragma so that it always returns the current
journal mode, even on a failed attempt to change the journal mode.
Allow the journal mode to be changed as long as there is not a pending
transaction.  Ticket #3811. (CVS 6526)

FossilOrigin-Name: 419e320ae51639794335d19699f8e1189e524e7d
2009-04-20 17:43:03 +00:00
drh
e6e7ecb421 Add new tests to show that journal_mode=OFF works with locking_mode=EXCLUSIVE
as long as the journal_mode is set prior to the first transaction.
Ticket #3811. (CVS 6525)

FossilOrigin-Name: e62ac26f72224a4ba6c7dc5c32b7e4370461764d
2009-04-20 13:32:33 +00:00
drh
d2b68438a1 Clarify the documentation to make it clear that sqlite3_interrupt() does not
effect new SQL statements that are started after the running statement
count reaches zero.  Ticket #3815. (CVS 6524)

FossilOrigin-Name: 3182e8bf69eb4e5e4070930cb9c750942b1dc735
2009-04-20 12:31:46 +00:00
drh
d54a79118a Do not use deprecated interfaces internally when compiling with
SQLITE_OMIT_DEPRECATED.  Ticket #3813. (CVS 6523)

FossilOrigin-Name: 7f17956dfbf3090fd5832378e77bd83a525fed9d
2009-04-20 12:07:37 +00:00
drh
59813953a3 Speed improvements by avoiding unnecessary calls to fstat() and ftruncate(). (CVS 6522)
FossilOrigin-Name: 5b7e3a411a6f2fe296675de9467783f6625cff3f
2009-04-20 11:34:26 +00:00
drh
51898cf727 Update comments and remove unused code in btree.c. No functional changes. (CVS 6521)
FossilOrigin-Name: bd860184909b7a9cc32c59770ebcee0efdc491f0
2009-04-19 20:51:06 +00:00
drh
d1a2440d6a Make extra calls to sqlite3_shutdown() be harmless no-ops. (CVS 6520)
FossilOrigin-Name: d80822953c2d2f2fd7f6acdd3caa403c0decacc4
2009-04-19 12:23:58 +00:00
drh
0bf9f7bca4 Revise the implementation of sqlite3_initialize() slightly in order to make
it more easily testable.  The functionality should be unchanged. (CVS 6519)

FossilOrigin-Name: bb1a390a3d2f79b27e3ec2514ae00f5b22dbfb06
2009-04-17 16:54:22 +00:00
drh
52e2c35fb2 Get the behavior of SQLITE_HAVE_ISNAN right. It was reversed
in check-in (6517).  Ticket #3809. (CVS 6518)

FossilOrigin-Name: 97c6ea2368556b2a9a914ba2322085e312598b15
2009-04-17 15:18:47 +00:00
drh
cf9b1752cf Add the SQLITE_HAVE_ISNAN compile-time option which, if present, causes
SQLite to use the math library isnan() function rather than its own homebrew
implementation of isnan(). (CVS 6517)

FossilOrigin-Name: 54d23521c37938b9d98f41f5547975c469c0c8f0
2009-04-17 11:57:22 +00:00