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

8390 Commits

Author SHA1 Message Date
mistachkin
dc7b05558a Use the UNICODE_STRING_MAX_CHARS constant from WinNT.h.
FossilOrigin-Name: 3fefe4dd43539ec7e525ef58f0bfeffd31288ebd
2013-11-09 21:11:36 +00:00
mistachkin
fd4b90be1a Furhter cleanup of the winGetTempname function.
FossilOrigin-Name: 674de36bcaafc1130b7603e69616c71fc8cd7de7
2013-11-09 21:10:47 +00:00
mistachkin
7f9d179884 Add more assert() statements and fix compilation issues when the Win32 native heap is not enabled.
FossilOrigin-Name: fbf8c3828327d19bbce0d7f6735e7577abfd54b3
2013-11-08 20:10:57 +00:00
mistachkin
5134a8178d Disable use of HeapCompact on Windows CE as it is not available on all versions.
FossilOrigin-Name: e9694b877178572665048d1015ca033c469160e7
2013-11-08 19:51:12 +00:00
mistachkin
2eb0966ef2 Adjust the winMemInit return code handling used when resetting the Win32 native heap.
FossilOrigin-Name: 37853665e75fc92b4d15e6db0b3346722527e799
2013-11-08 18:52:45 +00:00
mistachkin
17bc3ff956 Minor corrections to logging for sqlite3_win32_compact_heap().
FossilOrigin-Name: 71347d021bea90ad7e4cc0d3e54940ce29b9ea69
2013-11-08 18:37:02 +00:00
mistachkin
e8f91053f6 Enhancements to the Win32 native heap integration.
FossilOrigin-Name: c54dc9672b686c8e323eac0c33cd90ea89d36364
2013-11-08 18:13:48 +00:00
drh
511717c645 Fix harmless compiler warnings.
FossilOrigin-Name: 0077c0772a884b54d81fa3733aac6f0c364ef1a8
2013-11-08 17:13:23 +00:00
drh
95a5bcbb00 Merge the Cygwin directory separator fix. Also fix a C++-ism in the
multiplexor code so that it will compile on MSVC.

FossilOrigin-Name: 830629d31d171155d90ff87ae8e70094d17bb2d3
2013-11-08 17:03:50 +00:00
drh
392ee21d1a Performance improvement: Avoid unnecessary seeks on REPLACE INTO for a
WITHOUT ROWID table.

FossilOrigin-Name: fd11afa5f5c853dcac2290444b581a3fe1d4332d
2013-11-08 16:54:56 +00:00
drh
fc8d4f96b4 Performance improvements:
Avoid unnecessary seeks when doing a single-row UPDATE on a WITHOUT ROWID
table.

FossilOrigin-Name: 6f187a0fb1b09ebc4732c4afbf3c813f82e069f1
2013-11-08 15:19:46 +00:00
drh
81897bb14e Merge change to drop the mutex on the multiplexor before entering the xRead
VFS call, in order to enhance parallelizability.

FossilOrigin-Name: 3c566e41e4c9c66960cc5a3ddee8556835237999
2013-11-08 12:14:50 +00:00
drh
ce60aa469a Optimize out a NotExists/NotFound opcode that occurs in UPDATE processing
after constraint checks if there is no possiblity that the constraint checking
code might have moved the cursor.

FossilOrigin-Name: 74e3ee2ee6ea89af2c12dd0bce248467fd0f1310
2013-11-08 01:09:15 +00:00
mistachkin
14eca4ef5d Fix temporary directory separator handling for Cygwin.
FossilOrigin-Name: 9d870d5f0d8f02e5c91396a1f98b5ddb56b40b70
2013-11-07 22:11:55 +00:00
drh
00f91cf52f Fix a compiler warning introduced by the previous check-in.
FossilOrigin-Name: 404bd98fb41f71d041932d68a908570995825ec1
2013-11-07 21:32:16 +00:00
drh
702ba9f2e3 Enable the WHERE_ONEPASS_DESIRED optimization for UPDATE operations on
WITHOUT ROWID tables.

FossilOrigin-Name: 215307985590c2f3f7aa0d5a0b7799155a506045
2013-11-07 21:25:13 +00:00
drh
41e13e1268 Make sure cached KeyInfo objects are only valid for a single database
connection.  Clear all cached KeyInfo objects on any collating sequence 
change.

FossilOrigin-Name: 55eea1782aead6a6aaf93f14d85486f8fd2209ad
2013-11-07 14:09:39 +00:00
drh
2ec2fb2269 Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo
for each index in the Index object, and reuse that one copy as much as possible.

FossilOrigin-Name: defd5205a7cc3543cdd18f906f568e943b8b3a2c
2013-11-06 19:59:23 +00:00
dan
93889d9335 Have the OP_NoConflict opcode set the VdbeCursor.seekResult variable. This speeds up subsequent OP_Insert and OP_IdxInsert opcodes.
FossilOrigin-Name: 474555002d45f8741faceea599c057eef4e7931e
2013-11-06 16:28:59 +00:00
drh
b41392241e Allocate extra stack space for UnpackedRecord objects, reducing the need
to malloc for them as often, and thereby get a performance improvement.

FossilOrigin-Name: a725a75f870d7d9b21946fbcc71a956492986ab0
2013-11-06 14:36:08 +00:00
drh
d9b7ec9348 Minor optimization to the OP_Halt opcode.
FossilOrigin-Name: d70c78814ba565a44628eab61a3a0a5dba56269a
2013-11-06 14:05:21 +00:00
drh
416846a362 Improved ORDER BY optimization for WITHOUT ROWID tables.
FossilOrigin-Name: 8f1709ff2d52d5ceca3da6a2a4e06da204d9e65a
2013-11-06 12:56:04 +00:00
drh
d4ddae985b Disable the OR optimization for WITHOUT ROWID tables, since it relies on
the use of rowids.

FossilOrigin-Name: 6055dad2ba2f9256b1f2d0a9e32ca00f1b81b0cf
2013-11-06 12:05:57 +00:00
drh
4ad8b90244 Remove an unused variable.
FossilOrigin-Name: e9c1e419b7227d86f2e1882cebf360116cdf1a13
2013-11-06 02:36:04 +00:00
drh
1282609b02 Make sure the query planner knows that the PRIMARY KEY index of a
WITHOUT ROWID table is always a covering index.

FossilOrigin-Name: 03e7019e14255dbeb85bb299569c82ef48ac4a98
2013-11-05 22:39:17 +00:00
drh
8d1b82e40b Fix conflict handling for the case when the rowid uses REPLACE but other
unique constraints use FAIL or IGNORE.

FossilOrigin-Name: 573cc27427af297185f11aac8dce88ca31f471ca
2013-11-05 19:41:32 +00:00
drh
5a9a37b7b4 Fix a bug in secondary index initialization when the secondary index is
a superset of the PRIMARY KEY for a WITHOUT ROWID table.

FossilOrigin-Name: 52a3d885192c5d31f956c5ee17e29e2d1f3d5c9f
2013-11-05 17:30:04 +00:00
dan
427ebba10c Unless the destination table is completely empty, disable the xfer optimization for WITHOUT ROWID tables.
FossilOrigin-Name: 3877c9f50582b51817dcf3cd75d836891a34e590
2013-11-05 16:39:31 +00:00
dan
e83267da54 Add tests for updates of without-rowid tables that use non-BINARY collation sequences for the primary key columns. And a minor bugfix to the same.
FossilOrigin-Name: 99b1fa4b1664a79eae1dddce2b9a848384cdb1d7
2013-11-05 14:19:22 +00:00
drh
f9c8ce3ced Standardize the error messages generated by constraint failures to a format
of "$TYPE constraint failed: $DETAIL".  This involves many changes to the
expected output of test cases.

FossilOrigin-Name: 54b221929744b1bcdbcc2030fef2e510618afd41
2013-11-05 13:33:55 +00:00
drh
00012df46d Add the conflict2.test script. Fix issues discovered by this script.
FossilOrigin-Name: 294ed33756b06375e56c41f1088d42ee48adbdc8
2013-11-05 01:59:07 +00:00
drh
d269461c91 Add the index7.test script for testing partial indices with WITHOUT ROWID
tables.  Fix bugs in ANALYZE located by that script.

FossilOrigin-Name: 79befe3ac1f676272b78423b9aa5dac41435420e
2013-11-04 22:04:17 +00:00
drh
da475b8dbc Bug fixes in the INSERT constraint checker. Refactor the Rowid handling logic
for ANALYZE with STAT3/4.

FossilOrigin-Name: 1ea43c0f236792a3bc13e1cb330f5ff3402c2851
2013-11-04 21:44:54 +00:00
drh
c3e356fe10 Add another test case file for WITHOUT ROWID and fix the bugs that the new
test file uncovered.

FossilOrigin-Name: bc2a06eb8e57573d08e77800a7937eee5af3f035
2013-11-04 18:34:46 +00:00
drh
5838340b0e Fix a problem with processing INTEGER PRIMARY KEY on a WITHOUT ROWID table.
FossilOrigin-Name: 89098e6d18dacd1554cf4471b5f035db85d1f327
2013-11-04 17:00:50 +00:00
drh
6546af1480 Correctly handle changing counting when inserting and deleting on
WITHOUT ROWID tables.  Add more FOREIGN KEY test cases.

FossilOrigin-Name: d072bcd0a8692d590c13c2bf458454c10c12a3e2
2013-11-04 15:23:25 +00:00
drh
90e758ff1f Correctly handle self-referential foreign keys on WITHOUT ROWID tables.
FossilOrigin-Name: af128862ab6008df9dda1ee90f93f9efd629e259
2013-11-04 13:56:00 +00:00
drh
bd50a926ef Improved comments on foreign key logic.
FossilOrigin-Name: 1315d9109c7105f4a62bb2d43ca6948d41245129
2013-11-03 02:27:58 +00:00
drh
2552d43f4c Improved Synopsis on register comparison operators. Fix a bug on the
constraint check generator.

FossilOrigin-Name: a7a18b65fa34dfdf6117fa21db3e576f96876617
2013-11-02 22:29:34 +00:00
drh
63f0eedf10 Many new test cases added, that mostly work. Currently 18 errors in
without_rowid3.test.  Also there is a hack marked by a /*FIXME*/ comment 
on at fkey.c:547 that needs fixing.

FossilOrigin-Name: 39e32187b66405e00dbd44685f6cdd269c90f5e5
2013-11-02 22:09:48 +00:00
drh
ce95d11921 Change the "idx" name of the primary key index for WITHOUT ROWID tables in
sqlite_statN statistics tables to be the name of the table rather than the
fabricated index name (ex: sqlite_autoindex_xyz_1).  This makes it consistent
with sqlite_master table.

FossilOrigin-Name: 4ee4d3106308508a58b80e54e0afb4afb42f510b
2013-11-02 19:34:38 +00:00
drh
ebe25af168 Update the ANALYZE logic so that it works with WITHOUT ROWID tables.
FossilOrigin-Name: 9075770e4030b35677fbbe291f3c3c4946937a9a
2013-11-02 18:46:04 +00:00
drh
c6bd4e4a36 Store the root page of the PRIMARY KEY index for a WITHOUT ROWID table in
the sqlite_master entry for the main table and omit the sqlite_master entry
for the PRIMARY KEY.

FossilOrigin-Name: b7544bb280f1c1c55135a9b35aeb85604fef94a3
2013-11-02 14:37:18 +00:00
drh
71b4ea83e0 Import the sqlite3_analyzer fixes from trunk.
FossilOrigin-Name: ac711459ff243e787ea5e9c01720dff75a5eda9b
2013-11-02 11:43:05 +00:00
drh
a46417151a A pair of sqlite3_analyzer bug fixes: (1) quote strings in the SQL at the end
of the output. (2) Fix test_stat.c so that it no longer misses some overflow
pages on internal index pages.

FossilOrigin-Name: 42a11e7464ab1d97d603c7409f10710ad4f1f542
2013-11-02 11:34:58 +00:00
drh
1153c7b25d Size KeyInfo objects so that IdxInserts always compare the correct number of
fields.

FossilOrigin-Name: 302a81390f039fc23eeb8510e95b9d9fa0b41edd
2013-11-01 22:02:56 +00:00
drh
7913e41f6d Fix sqlite3_analyzer so that it works with WITHOUT ROWID tables.
Fix index generation for secondary indices that include fields from
the PRIMARY KEY.

FossilOrigin-Name: f9769d701c65770f4b8488f541c59e508393e6c2
2013-11-01 20:30:36 +00:00
drh
8a120f8b68 Fix an invalid cast operation in the WITHOUT ROWID parsing logic.
FossilOrigin-Name: 845153be36d5ca0ca9d930c56418fb080d906740
2013-11-01 17:59:53 +00:00
drh
1aae39cd26 Merge all changes from trunk, and disable a pair of corruption tests that are
no longer valid since sqlite_master.rootpage can now be NULL for tables.

FossilOrigin-Name: dd5d57b9a1b25fb6c9e20024e519b58630cf1fd0
2013-11-01 17:21:29 +00:00
drh
f8ffb27850 Change the interface to sqlite3GenerateConstraintChecks() for improved lucidity
and to fix issues in dealing with UPDATEs for WITHOUT ROWID tables.  Make sure
iDataCur and iIdxCur are initialized when processing DELETEs of a VIEW.
UPDATE processing distinguishes between changes to ROWID and PRIMARY KEY.

FossilOrigin-Name: c525ac5630d6bcd51842cfc84f2c2c50be9cec1c
2013-11-01 17:08:56 +00:00