Commit Graph

6860 Commits

Author SHA1 Message Date
drh f25cd7186e Fix the backup logic so that it detects a failure to sqlite3BtreeUpdateMeta()
and reports that failure back up to the top level. (CVS 6851)

FossilOrigin-Name: 471b92f2514aedecb5773825a7ae472190375727
2009-07-06 19:03:12 +00:00
danielk1977 3509a65827 Make the sqlite3BtreeMoveto function static, since it is only used from within btree.c. Remove unused function lockBtreeWithRetry from btree.c. (CVS 6850)
FossilOrigin-Name: 30d5ec62ab6a85ee60ee4128e20959842f8c7ad1
2009-07-06 18:56:13 +00:00
drh 5f82e3cc3a Simplifications and comment cleanup in vdbeaux.c. (CVS 6849)
FossilOrigin-Name: 1636e7831a21d401a48aa74d884444a287f14f72
2009-07-06 00:44:08 +00:00
danielk1977 3e8add919a Remove unreachable code from function btreeCursor() in btree.c. (CVS 6848)
FossilOrigin-Name: c76a366ed4dc63604ff695b3ee9c183e430a367e
2009-07-04 17:16:00 +00:00
danielk1977 1bc9ee9835 Remove a redundant branch from btree.c. (CVS 6847)
FossilOrigin-Name: 133357d2f070ba303deddff59beead1ec8d10521
2009-07-04 15:41:02 +00:00
drh e7f3f3eec1 Remove two unused fields from the Parse structure. The TCL interface now
removes leading whitespace from SQL statements before parsing them. (CVS 6846)

FossilOrigin-Name: 983cb6924b8a7d3057718b9228c0cb2fbe7f0dc4
2009-07-03 22:54:36 +00:00
drh 1adecdf814 Remove unused code (that was commented out) from prepare.c. Remove an
incorrect NEVER() macro.  Fix the comment on schemaIsValid() to correctly
describe its return behavior. (CVS 6845)

FossilOrigin-Name: 90deb65835febc908f21bca89ef497d1048afe0a
2009-07-03 19:19:50 +00:00
drh 6bef648d97 Cause sqlite3_exec() to return SQLITE_NOMEM if it cannot allocate memory to
hold the error message for some other error. (CVS 6844)

FossilOrigin-Name: e9849292ab741f4c86203b2629dbe116f9b527c8
2009-07-03 19:18:43 +00:00
drh ee152b00a3 Remove an unused variable from the test code in test3.c. (CVS 6843)
FossilOrigin-Name: 9e35bec9ef924ec44e87294a549238e0104bb27b
2009-07-03 17:23:48 +00:00
drh 53bc21b911 Add a version of the Lemon parser template "lempar.c" to the src/ subfolder.
This new parser template contains a couple of NEVER() macros that disable
tests that are needed for general grammars but not for the specific grammar
used by SQLite.  SQLite builds with the modified lempar.c. (CVS 6842)

FossilOrigin-Name: d426cc64f6014e2c2b9bcde0f5440396aec2fa18
2009-07-03 17:09:28 +00:00
danielk1977 e0d9e6f623 Simplify the way the read-uncommitted flag is handled to facilitate test coverage. (CVS 6841)
FossilOrigin-Name: e2112d6160a82ccd4b6a1c798d2064d0f1b086eb
2009-07-03 16:25:06 +00:00
drh b1819a0b95 Make explicit the restrictions on UPDATE, DELETE, and INSERT statement syntax
within triggers.  Ticket #3947. (CVS 6840)

FossilOrigin-Name: c8bf40df7be728b11bb633516d1988c6064a9d70
2009-07-03 15:37:27 +00:00
drh 06150f95e8 Test the result of pthread_create() and do not call pthread_join() if the
thread creation failed.  Ticket #3933. (CVS 6839)

FossilOrigin-Name: 304c5110ad958b2cc1ddff30e68c8791109128b5
2009-07-03 12:57:58 +00:00
danielk1977 34acdc9573 Fix to sqlite3AuthRead to accommodate "new" or "old" references that are used in a context where a column reference may also be used (i.e. "SELECT new.<col> FROM <tble>"). Ticket #3944. (CVS 6838)
FossilOrigin-Name: 45fd5419a7cde29eb6ab5d98141bd642af0d78fb
2009-07-02 18:40:34 +00:00
danielk1977 94b30733f7 When a b-tree transaction is committed when there are open cursors, downgrade shared-cache write-locks to read-locks instead of relinquishing all locks. Fix for #3942. (CVS 6837)
FossilOrigin-Name: 611e704fdf90a3d3932ca1cbab4be7e282bf1ddf
2009-07-02 17:21:57 +00:00
danielk1977 602b466e99 Cause opening a transaction on a sharable b-tree module automatically obtain a read-lock on page 1. This means there is no way for sqlite3BtreeGetMeta() to fail. (CVS 6836)
FossilOrigin-Name: e3c055f167f895ae45858de9d9d8a264df2f36b6
2009-07-02 07:47:33 +00:00
danielk1977 325ccfa90e Fix for compilation with OMIT_AUTOVACUUM defined. Ticket #3940. (CVS 6835)
FossilOrigin-Name: 8f0591ae98c2125a4922933496f4412aee8ab86e
2009-07-02 05:23:25 +00:00
danielk1977 8b32282795 Change to test code and scripts allowing memsys3 to be tested using a build that has both memsys3 and memsys5 enabled. (CVS 6834)
FossilOrigin-Name: a00aeec21cca7ccf19d4cdef618149aa2773c005
2009-07-01 18:09:01 +00:00
danielk1977 e25a50b6c3 Fix a 1-byte buffer overwrite that can occur when a virtual table overloads an SQL function. (CVS 6833)
FossilOrigin-Name: bfe336a8993e06e70d3c32a929202fb015dcbb89
2009-07-01 18:04:20 +00:00
danielk1977 bd1a0a4f61 Report an error if a USING or ON clause is specified following a from-list element that is not to the right of a join operator. Fix for #3846. (CVS 6832)
FossilOrigin-Name: 29b48972b65a17dab343b063a620cf8d456a923c
2009-07-01 16:12:07 +00:00
danielk1977 9b87d7b904 Do not ignore alias "a" in a query of the form "SELECT ... FROM (...) AS a" Fix for #3935. Also expand upon (6751) to fix some similar obscure memory leaks. (CVS 6831)
FossilOrigin-Name: 42f9d1e56483a59353bff57d75f09ed67e1d9c3c
2009-07-01 14:56:39 +00:00
danielk1977 96d48e963a Cause incremental-blob read/write operations lock shared-cache tables in the same way as normal SQL read/writes. Add complex assert statements to make sure tehe correct shared-cache locks are held when accessing the database. Eliminate some redundant checks from btree.c. (CVS 6830)
FossilOrigin-Name: f17ef37897da9bcaf20b5acdce6840522c0a0b16
2009-06-29 06:00:37 +00:00
drh 1b1166b7c7 Version 3.6.16 (CVS 6829)
FossilOrigin-Name: ff691a6b2a302fe7978459cb8df9d56184892ee0
2009-06-27 14:10:30 +00:00
drh bdfb6b5ab2 Fix an instance where sqlite3JumpHere() might be called with a negative
address following an OOM fault. (CVS 6828)

FossilOrigin-Name: 49f22e55d69d0b5a34400b36332a2eb861362eb2
2009-06-27 11:17:35 +00:00
drh b6063cf823 Fix a bug in sqlite3_realloc() - if called with a size of more than
2147483392 it returns 0 but it also releases the prior allocation. (CVS 6827)

FossilOrigin-Name: 653df0afcc58de82c8c1b5f6a7b2f4829ff69792
2009-06-27 00:48:33 +00:00
drh e08ed7e71b Remove incorrect NEVER() macros from malloc.c. The allocations can be
exceeded using sqlite3_malloc() and sqlite3_realloc(). (CVS 6826)

FossilOrigin-Name: 0d345e5923ff92a87195f6c04a29a56bf67ee43c
2009-06-26 18:35:16 +00:00
shane 36840fdddb Removed a few compiler warnings under MSVC. (CVS 6825)
FossilOrigin-Name: f01a9fc375d77c67602a9f6be6a674beb516233f
2009-06-26 16:32:13 +00:00
drh 9ed7a9953e Remove the priorNewRowid field from the sqlite3 structure. Use the
last_insert_rowid as the initial value when searching for a new random
rowid in the OP_NewRowid opcode. (CVS 6824)

FossilOrigin-Name: 96729b2d499f029bfaec6648a592e8ec697d9521
2009-06-26 15:14:55 +00:00
shane 389ae2c52d Skip a couple tests requiring working 64bit int support on platforms without that support. Test code change only. (CVS 6823)
FossilOrigin-Name: d8c8145c9d28d014eb9218b3f1312b957ccc72b7
2009-06-26 14:17:47 +00:00
drh c42ed16e5c When sqlite3VdbeAddOp() fails due to an OOM fault, return an address of 1
rather than zero so that there appears to always be a prior instruction.
This prevents a negative jump-to address computation in where.c following
an OOM fault. (CVS 6822)

FossilOrigin-Name: fe02339cb2f61c1e8a356e2d0ce9c3aef6e6cd8d
2009-06-26 14:04:51 +00:00
danielk1977 31559aee71 Fix a test script problem in exclusive.test. (CVS 6821)
FossilOrigin-Name: a52ef5a4216f26c617bd1471cd19f3da2a6d2c4c
2009-06-26 12:30:39 +00:00
drh 7b746030bc Fix the new pager.c changes so that they compile with IOTRACE defined.
Fix an out-of-order variable definition in vdbeaux.c. (CVS 6820)

FossilOrigin-Name: ac1450285025e33fad81e2fb14a06eb85e8ed87a
2009-06-26 12:15:22 +00:00
danielk1977 8ca8255325 Another change to test_journal.c to account for (6817). Again, only test code has changed. (CVS 6819)
FossilOrigin-Name: 58884b6c50f927c5606d857b2865d788a5147060
2009-06-26 10:39:36 +00:00
danielk1977 8f398adbb7 Update test_journal.c to account for (6817). Changes to test code only. (CVS 6818)
FossilOrigin-Name: 542ee8cced2a37095808d8baf5002dc66f4a64d6
2009-06-26 09:01:28 +00:00
danielk1977 6f4c73eedb Avoid writing the 8-byte journal-header magic until the journal-header is synced. In persistent journal-mode, this prevents any old content that follows an unsynced journal-header from being interpreted as part of the rollback journal. (CVS 6817)
FossilOrigin-Name: a5ecffcf025da2fcb241e83c7bebc1095a3b51d6
2009-06-26 07:12:06 +00:00
danielk1977 46aa38f2c0 Fix a problem with a return code being ignored in insertCell(). (CVS 6816)
FossilOrigin-Name: bb5f1c01435dcc1ea056f0d149f750fa7812f652
2009-06-25 16:11:05 +00:00
drh 9635cc7c0d Get the notify2.test running again by removing an ALWAYS() that was mistakenly
inserted and by taking care not to report corruption following an
SQLITE_LOCKED failure during schema parsing. (CVS 6815)

FossilOrigin-Name: 6e9140a729bd26dd102e603abf6ea16d67e8546e
2009-06-25 11:50:21 +00:00
danielk1977 c1761e887b Replace an "if" condition that is always true in btree.c with an assert(). (CVS 6814)
FossilOrigin-Name: daadbd9a8f0e35dd16c715cf2e9f99f52afa30dd
2009-06-25 09:40:03 +00:00
drh 4c8555fd47 Improved handling of oversize string and blob errors. Other simplifications
in support of full coverage testing. (CVS 6813)

FossilOrigin-Name: 8b34076668f0f712de0fbbe9bc2e68d42797e1b2
2009-06-25 01:47:11 +00:00
drh 46bbabd959 Remove an ALWAYS() macro from vdbe.c that sometimes fails on thread tests. (CVS 6812)
FossilOrigin-Name: 52eac078c7080519911599e19819cbec475de6d6
2009-06-24 13:16:03 +00:00
drh c3927537d8 Disable the new malloc-37 test when locking_mode==exclusive. The test
basically works, but sometimes reports "database is locked" instead of
"out of memory" and that messes up the error reporting. (CVS 6811)

FossilOrigin-Name: 3b8f9dec24d06865455a75587bbfc199c19c6215
2009-06-24 13:13:45 +00:00
drh bfff79f125 Remove a declaration of the sqlite3Assert() function that was deleted by the
previous check-in. (CVS 6810)

FossilOrigin-Name: ee20b6a23fa4a4ec4d3a2d0dcfcabff466f08246
2009-06-24 11:08:13 +00:00
drh 2de80f4c50 Remove the sqlite3Assert() function. The ALWAYS() and NEVER() macros call
assert() directly when compiled with SQLITE_DEBUG. (CVS 6809)

FossilOrigin-Name: d8fc373fef22311e1c6b5bce6d3e601217a69940
2009-06-24 10:26:32 +00:00
danielk1977 13bd99fa43 Simplify things by rolling the functionality of balance_shallower() into balance_nonroot(). (CVS 6808)
FossilOrigin-Name: 11750c6aee6aa05b2627ad9dfb2fbcdfe8944168
2009-06-24 05:40:34 +00:00
drh 0b9f50d8aa Enhance autoincrement so that it works with triggers that also do
autoincrement inserts, even multiple inserts into the same table.
Ticket #3928 (CVS 6807)

FossilOrigin-Name: 1330993de8eae7baeec24100216158063c9bdc19
2009-06-23 20:28:53 +00:00
danielk1977 1c3d2bf9cf Remove a condition from balance_nonroot() that is always true. (CVS 6806)
FossilOrigin-Name: c5dc80e6bdd18a5ada728c8d5c9403ac233f1c9a
2009-06-23 16:40:17 +00:00
danielk1977 cd581a7eff Call balance_shallower() from balance_nonroot() instead of from balance(). This simplifies coverage testing a bit. (CVS 6805)
FossilOrigin-Name: da9893e23caf89090c8b6563cb5f88d7dbf7c260
2009-06-23 15:43:39 +00:00
drh 5c91b64e0d Update the configure script for version 3.6.16 (CVS 6804)
FossilOrigin-Name: b614e554f7ebaef9cb1718b617e020e532568bbb
2009-06-23 14:39:52 +00:00
drh d40afea8bc Update the version number in preparation for the next release. (CVS 6803)
FossilOrigin-Name: 207c4a02ba4dd950948367c91b4a73209d62da41
2009-06-23 14:18:15 +00:00
drh 35f6b936ce Simplifications to vdbe.c to promote better test coverage. (CVS 6802)
FossilOrigin-Name: 3ffc93d762b64fd84f47c4b6d68ab56b69ea98a9
2009-06-23 14:15:04 +00:00
danielk1977 1c84ac596d Add a test to verify that #3929 is fixed. (CVS 6801)
FossilOrigin-Name: 16c1ae9bde895d39c4eaababbd1dbf9e3b9cb653
2009-06-23 11:53:09 +00:00
danielk1977 54109bb206 Fix a failing assert in btree.c. The same bug was causing a spurious SQLITE_CORRUPT return when compiled without SQLITE_DEBUG. (CVS 6800)
FossilOrigin-Name: 47ec8749470af7cab9f3ef15effce1a7ba79a654
2009-06-23 11:22:29 +00:00
drh 9a65f2cd7d Simplifications to vdbe.c and it service routines in support of coverage
testing. (CVS 6799)

FossilOrigin-Name: 308f2e61520ac7440700d93ca5bab4a844f2dc17
2009-06-22 19:05:40 +00:00
danielk1977 b980d2219f Remove a condition that is always true from btree.c. (CVS 6798)
FossilOrigin-Name: 3ec8b37a89fdb2436d312439715414fae2cd20a8
2009-06-22 18:03:51 +00:00
drh 27731d7c73 Make sure sqlite3BtreeCreateTable() returns an error code if the largest
rootpage field is invalid in auto_vacuum mode.  Update file-format comments
to describe all of the "meta" values. (CVS 6797)

FossilOrigin-Name: bda38f5e86db45234c2dbb0f8d1a81f6ff6d04e4
2009-06-22 12:05:10 +00:00
drh 653b82a516 More simplifications to vdbe.c. Remove a NEVER() from vdbe.c that is possible
after all. (CVS 6796)

FossilOrigin-Name: c8f009bd24cb4e4b5ce9fbfd8ab09921f19d41af
2009-06-22 11:10:47 +00:00
danielk1977 3582c8f7ae If an OOM error occurs just after obtaining a shared lock on the database file, release the lock before returning. (CVS 6795)
FossilOrigin-Name: 971a9650f66f079630489c34e40003eee97d1683
2009-06-22 05:43:24 +00:00
drh aa73609f92 Simplifications to vdbe.c in support of coverage testing. (CVS 6794)
FossilOrigin-Name: 16680f05bd169dfb1b4bf0eb082e69701f9b07ab
2009-06-22 00:55:30 +00:00
danielk1977 3a1bf71f95 When recovering from the error-state in pagerSharedLock(), do not search for a hot-journal in the file-system if the pager is configured to use an anonymous temp file as the journal. (CVS 6793)
FossilOrigin-Name: 4b46805cbc9fe71f1febe9ea5f0f5634b65128e3
2009-06-20 18:52:49 +00:00
danielk1977 641a0bd205 If after obtaining an exclusive lock to rollback a hot-journal file it is found that the journal file has been deleted, do not return an SQLITE_BUSY error. Just downgrade the lock and continue with the current operation. This eliminates a spurious SQLITE_BUSY error caused by a race condition. (CVS 6792)
FossilOrigin-Name: 9a0666003764774b0bf861687002f8db9fd314b1
2009-06-20 11:54:39 +00:00
drh 9afedcc0b8 Improved documentation on the VFS methods. Ticket #3925. (CVS 6791)
FossilOrigin-Name: f66fc7713ec5ff8cf92e875e904f079d724b0477
2009-06-19 22:50:31 +00:00
drh 9eb8cbe5c0 Do now allow a COMMIT to occur while even a single write operating is
in progress. (CVS 6790)

FossilOrigin-Name: 605520ec04061e389226fbec59f7aedf674b3c4e
2009-06-19 22:23:41 +00:00
drh bf66446972 Fix the comment on the sqlite3PExpr() subroutine. Ticket #3924. (CVS 6789)
FossilOrigin-Name: 4bb96db6b4d2cfa71430a2646c1082a494e3519f
2009-06-19 18:32:54 +00:00
danielk1977 d6bee2174c If a call is made to sqlite3PagerAcquire when there are no outstanding references to any pages and the pager is in the error-state, try to exit the error-state at this point. Previously this was only attempted if the pager was configured to use exclusive mode. (CVS 6788)
FossilOrigin-Name: 62db08bc0de936e4a418ae583a3bdbbf33d7787e
2009-06-19 17:50:01 +00:00
drh 8bfd719065 Make sure group_concat() ignores initial NULL values. (CVS 6787)
FossilOrigin-Name: 90c3b23ccac8a9e7fc1cc831e43888e4e43badc9
2009-06-19 16:44:41 +00:00
drh 8bfdf72136 Reorganize and cleanup the prepared statement object. Remove code that has
been commented out for ages and is no longer relevant to anything. (CVS 6786)

FossilOrigin-Name: 37ae5f5e8feb34a8e6e8b34aa18df1e9a1ce55cb
2009-06-19 14:06:03 +00:00
drh 0472b5ad3f Fix a possible segfault when backing up an encrypted database. (CVS 6785)
FossilOrigin-Name: 7d8f178c8145b90da31f6557f7cd99d154eb676e
2009-06-19 02:25:48 +00:00
drh 37b89a0186 Make sure the sqlite3VdbeGetOp() subroutine works even when SQLite is
compiled with SQLITE_OMIT_TRACE. (CVS 6784)

FossilOrigin-Name: 1c8ec2a6e4efbb3fdc58f999b7b725fa5dc4d0e9
2009-06-19 00:33:31 +00:00
drh 0719ee29b6 Changes to the backup functionality so that it works better with codecs. (CVS 6783)
FossilOrigin-Name: 87d6796d986e4d5238252e704d936ab4407a0265
2009-06-18 20:52:47 +00:00
drh fa9601a9a6 Move codec management from database connections into the pager so that it
will work together with shared cache. (CVS 6782)

FossilOrigin-Name: ed08b53cd64c4ff2c94ef4e48441c5236041c9ca
2009-06-18 17:22:39 +00:00
drh ccf6d0934d Update the filefmt.test test script to conform to the previous check-in. (CVS 6781)
FossilOrigin-Name: 40a40e81b3ad80114422d6a48146e5fb27e2551d
2009-06-18 11:34:42 +00:00
drh b33e1b99b0 Reduce the minimum usable page space to 480 byte from 500 bytes. (CVS 6780)
FossilOrigin-Name: db4fb835363c9c7e38c891e01188a6e2db88472d
2009-06-18 11:29:20 +00:00
drh 830ecf9197 Remove the P3 operand from OP_IsNull since it was not being used. (CVS 6779)
FossilOrigin-Name: 767ef1e4a1b31abef479368d9f960ecfd6fa08c6
2009-06-18 00:41:55 +00:00
drh a0c0652111 Avoid an assertion fault if an out-of-memory error occurs while trying
to run the string-concatentation operator on a zero-blob.  (This is an
absurd thing to do, but even so, we still should not fault.) (CVS 6778)

FossilOrigin-Name: 0def0b76b9f4de9ee259ab1cbe71051fd58b73be
2009-06-17 22:50:41 +00:00
drh 3a9cf17d7c Fix a problem in vdbe.c that could cause a double-free of memory if the
SQLITE_LIMIT_LENGTH is changed after a statement is prepared but before
it is run.  Also remove debugging statements from tkt3841.test. (CVS 6777)

FossilOrigin-Name: 3d7327fd6af983d5ce9bc9a2ba869b23c44cc8e6
2009-06-17 21:42:33 +00:00
drh 94c3a2b16f Use caution to avoid integer overflow when doing real to integer affinity
operations.  Ticket #3922. (CVS 6776)

FossilOrigin-Name: 392559465d499f491907ef7f42d37a1a6c699511
2009-06-17 16:20:04 +00:00
drh 042d6a1f0f Fix a potential segfault following database corruption. Problem
made visible by check-in (6772). (CVS 6775)

FossilOrigin-Name: 69eb0ff817cff6266c53b79047bcff5e5d54b618
2009-06-17 13:57:16 +00:00
drh 0d588bbc38 Suppress some -Wextra compiler warnings from GCC. (CVS 6774)
FossilOrigin-Name: 59ec937ce226bbf6c48c5e0466d3bab48873c9ea
2009-06-17 13:09:38 +00:00
danielk1977 11a8a8660c Fix a bug affecting secure-delete mode introduced by (6768). (CVS 6773)
FossilOrigin-Name: a433ca821c134caeac0fa16416eb95c647416b95
2009-06-17 11:49:52 +00:00
danielk1977 e576521d96 Fix for #3918. Also, fix the TRACE macros in balance_nonroot(). (CVS 6772)
FossilOrigin-Name: 368e44ec2e648b04f3b817f82586ccd864e60c89
2009-06-17 11:13:28 +00:00
drh b5092d18a4 A minor simplification to the tokenizer. (CVS 6771)
FossilOrigin-Name: 18f2076ac21dd0ab343a79461837f5591f9d4d87
2009-06-17 01:17:13 +00:00
drh 58fbb314ae Changes to prepare.c and callback.c to promote better test coverage. (CVS 6770)
FossilOrigin-Name: 08cca219f16efab93cb00f04d2e2f8033893e5f1
2009-06-17 00:35:30 +00:00
drh 9da742f969 Changes sqlite3_prepare_v2() (and related routines) so that if it fails due
to a missing table and the schema is out of date, it retries once before
returning SQLITE_SCHEMA.  Other changes to prepare.c to facilitate coverage
testing. (CVS 6769)

FossilOrigin-Name: 256ec3c6af41c2324db82e4deb54edbba5b581e8
2009-06-16 17:49:36 +00:00
danielk1977 4dbaa89005 Changes to balance_nonroot() and BtreeDelete() to simplify delete operations and reduce stack/heap usage while balancing b-tree structures. (CVS 6768)
FossilOrigin-Name: 092b276e7d89bbfa3d8637a90ee5d458935a12a9
2009-06-16 16:50:22 +00:00
shane e26fa4c959 Fix a link error and warning that can occur in where.c when compiling under MSVC with SQLITE_OMIT_VIRTUALTABLE defined. Ticket #3914. (CVS 6767)
FossilOrigin-Name: 793c93be16af535e102dba147125384f6814cf5f
2009-06-16 14:15:22 +00:00
danielk1977 0d7d3a3315 Leave out a redundant line in build.c. Ticket #3916. (CVS 6766)
FossilOrigin-Name: d9f997aeb7a2195d0e16fe1555626918902b4f91
2009-06-16 04:35:39 +00:00
danielk1977 cb55799952 Remove a duplicate assert from btree.c. Ticket #3915. (CVS 6765)
FossilOrigin-Name: d89542cd8b2efaea7c6be6cd7787d183c55ae36a
2009-06-16 04:31:49 +00:00
drh f7828b5cd6 Additional updates to the symbol resolver and expression tree walker to
facilitate test coverage. (CVS 6764)

FossilOrigin-Name: a49c2d4befcc33dd98543fe7b4d4f0bae56f1a90
2009-06-15 23:15:59 +00:00
drh 0b3bf92417 Changes to allow a clean compile with no floating-point instructions
generated when SQLITE_OMIT_FLOATING_POINT is used. (CVS 6763)

FossilOrigin-Name: 1591b8322babebc45df3b799cc5e457288f28594
2009-06-15 20:45:34 +00:00
drh 73c0fdc7fa Updates to resolve.c to facilitate full coverage testing. (CVS 6762)
FossilOrigin-Name: c50f0f28df1dfdccf1d159c983b616cd9b823955
2009-06-15 18:32:36 +00:00
shane 8509570763 Fix compiler warnings with MSVC build. (CVS 6761)
FossilOrigin-Name: e1e6430752449a34671b6c89326b03ac36ea6d9a
2009-06-15 16:27:08 +00:00
drh 1faecd9c50 Version 3.6.15 (CVS 6760)
FossilOrigin-Name: aff34826aa4667d24f0dbc8bea828dc0f84d2108
2009-06-15 03:28:57 +00:00
drh 0444610098 Update the configuration script for version 3.6.15. (CVS 6759)
FossilOrigin-Name: 14df65dc04e1a944baf4fb7185a0df5a96059346
2009-06-15 00:04:06 +00:00
drh eac74428c1 Detect database corruption and abort balance_nonroot() before the
corruption causes problems. (CVS 6758)

FossilOrigin-Name: 3448b39dcd580880a9326414e7e4952c4fbc313d
2009-06-14 12:47:11 +00:00
drh c53eed1703 Change lemon so that it does not generate yytestcase() macros on destructor
cases since destructors are commonly unreachable in a reasonable grammar.
For the reduce-rule switch, gather all no-ops into the "default:" case. (CVS 6757)

FossilOrigin-Name: caebfe82cb1b1215a85ed48fe97360c5422c52e0
2009-06-12 17:46:19 +00:00
drh 7501301e8d The previous check-in ((6755)) put in more yytestcase() macros than are
called for.  This check-in addresses that problem. (CVS 6756)

FossilOrigin-Name: a5b182f93b9e57754c8b9507cf491a7bbf0fd127
2009-06-12 15:47:34 +00:00
drh 8a415d3743 The lemon parser generator now inserts yytestcase() macros on reduce action
and on each destructor, to verify that all have been executed.  yytestcase()
is a no-op by default but can be set to something more useful inside
of %include. (CVS 6755)

FossilOrigin-Name: fe9c9177340a3dc372ffa1b851030d005e0c46db
2009-06-12 13:53:51 +00:00
drh 1441f3e083 In lemon: omit unused entries from the end of the yyFallback array. (CVS 6754)
FossilOrigin-Name: 9cfbe2ba68470a2850a7d7a64eb088f7b422a3e5
2009-06-12 12:50:50 +00:00
drh 994704d1cb Enable the SQLITE_LIMIT_FUNCTION_ARG limiter. (CVS 6753)
FossilOrigin-Name: a17e3317176772446abdc8ebe6fb6f0d3b7ac018
2009-06-12 12:04:16 +00:00
drh 8be4f639d9 Remove a C++-ism from the code. Ticket #3912. (CVS 6752)
FossilOrigin-Name: bc729bc3e6f6e3570103e646080eb119311b0fa7
2009-06-12 11:42:11 +00:00
drh 13d32d196e An additional memory leak in the parser fixed. Ticket #3911. (CVS 6751)
FossilOrigin-Name: 6197b492714e16396941ae6ba61f90f708d54728
2009-06-12 03:47:36 +00:00
drh c3a8402a94 Make sure nested queries with USING clauses do not leak memory.
Preliminary fix for ticket #3911. (CVS 6750)

FossilOrigin-Name: bd341a103c25395b1189d05edebfe4af8a943941
2009-06-12 03:27:26 +00:00
drh d3ec02d38e Modifications to the parser to eliminate unreachable code. (CVS 6749)
FossilOrigin-Name: 457e0b245b1833c0d297bc6f4ff9785e6a2cee02
2009-06-12 02:27:14 +00:00
drh aed2460877 Honor the SQLITE_OPEN_READONLY flag even on a :memory: or temporary database,
even though such a database is pointless.  Ticket #3908. (CVS 6748)

FossilOrigin-Name: 73ba841ac1ed39fb09b3917bafe0ce349e88eb04
2009-06-11 17:32:45 +00:00
drh 2c1a0c568f Add an ALWAYS() to a conditional in where.c. (CVS 6747)
FossilOrigin-Name: 1fdb3e1e9af0672072f133dde06594fea2ef13c5
2009-06-11 17:04:28 +00:00
drh 85d2bd22f1 Changes to reenable codec operation and to handle memory allocation
failures within a codec. (CVS 6746)

FossilOrigin-Name: 43a6ca98b1a6aff1f0f674ecabdc929efb314db7
2009-06-11 00:47:20 +00:00
drh 5901b571d4 Do not let the reverse_unordered_selects pragma force the use of an index that
would not otherwise be used.  Ticket #3904.
Also: remove an test which is always true. (CVS 6745)

FossilOrigin-Name: 78a391dca05dbe3ad1d8124b80b31bc2ce75778f
2009-06-10 19:33:28 +00:00
drh 85119c32ad Remove a NEVER() that can sometimes occur on an OOM error. (CVS 6744)
FossilOrigin-Name: c27f23bbafd2e4fa453c8e3b83667ea8173183a7
2009-06-10 11:07:00 +00:00
danielk1977 e56b60ecb8 Minor tweak to balance_quick() to save a few instructions. (CVS 6743)
FossilOrigin-Name: 9ace995910c8b0b9e95dc20fd70be487199e37af
2009-06-10 09:11:06 +00:00
drh 6860da015f Remove the actual checks that verify that memory pools (such as set up
using SQLITE_CONFIG_HEAP) are 8-byte aligned.  But document that 8-byte
alignment is required. (CVS 6742)

FossilOrigin-Name: e9b55ccc8b6d4f21c9c8f8e7ba053475833fc833
2009-06-09 19:53:58 +00:00
shane 75ac1de0ad Fix compiler warnings with MSVC build. (CVS 6741)
FossilOrigin-Name: 0bd84e7387802c58c820369ff27ef54adbdf2e96
2009-06-09 18:58:52 +00:00
shane 68c0273755 Avoid a false failure report in the test scripts caused by the vdbe stack "compression" script. (CVS 6740)
FossilOrigin-Name: 9d3329891c2227a1a3ded1c636ac615864010ca7
2009-06-09 18:14:18 +00:00
drh 39bf74a288 Require that the buffer specified by SQLITE_CONFIG_HEAP be 8-byte aligned. (CVS 6739)
FossilOrigin-Name: 18b78068cc94de51f081824c93f7b14c7c35726d
2009-06-09 18:02:10 +00:00
drh 19f81f6cdd Changes to tokenize.c to facilitate full coverage testing. (CVS 6738)
FossilOrigin-Name: 5e8c48cff7e96e6030b796dba409844f4c758a60
2009-06-09 18:01:37 +00:00
danielk1977 b46d004548 Change savepoint4.test to limit database growth. Otherwise the test can take a very long time to run, depending on the prng. (CVS 6737)
FossilOrigin-Name: ed1d4f47ee9a2bcafdee92ee6bfcb2b0d1758f76
2009-06-09 15:25:33 +00:00
drh 9bb6697ac6 Modify mkkeywordhash.c so that it puts the original text of each token in
a comment beside the "testcase()" macros. (CVS 6736)

FossilOrigin-Name: a7d0817c176832a88788cc973c0aae8dcab57364
2009-06-09 14:27:41 +00:00
drh 3b2a3fa42e Enable cell overflow checking in sqlite3BtreeInitPage() using the
compile-time option SQLITE_ENABLE_OVERSIZE_CELL_CHECK.  Change the tests
so that they recognize different error messages depending on the setting
of this macro. (CVS 6735)

FossilOrigin-Name: 56bff6eb2fc5f0afbd96afc986671ec744bd40e1
2009-06-09 13:42:24 +00:00
danielk1977 80929b3de9 Avoid calling fillInCell() to create an internal node intkey cell from balance_nonroot(). A single putVarint() does the same thing more quickly. (CVS 6734)
FossilOrigin-Name: 2e5d42aeb40c3c6eea373a9ae3fbdf4e8087cd58
2009-06-09 11:34:10 +00:00
drh f061be9c6f Only do the cell overread checks in sqlite3BtreeInitPage if
SQLITE_OVERREAD_CHECK is defined at compile-time. (CVS 6733)

FossilOrigin-Name: 49f544ebae8dc3cf7cf6189536c56ebb7d258a86
2009-06-09 10:37:03 +00:00
danielk1977 6067a9bbfe Do not clear the MemPage.nFree variable when insertCell() adds an overflow cell to a page. Not doing this means balance_quick() can avoid a call to sqlite3BtreeInitPage(). (CVS 6732)
FossilOrigin-Name: 8f1c1f61f7bc5270212725cf0a056872df983f49
2009-06-09 09:41:00 +00:00
drh 254993e2e5 Additional comments to clarify the operation of the LIKE optimizer in
where.c. (CVS 6731)

FossilOrigin-Name: cc9c12170c3f6f0f485977e47e7fbb75c50e82b1
2009-06-08 19:44:36 +00:00
drh 4e8be3bb5d Clarification of the operation of the OR-term optimizer in where.c. (CVS 6730)
FossilOrigin-Name: 6b42dc3d04e98f91c203c277926ed6ead62a9270
2009-06-08 17:11:08 +00:00
danielk1977 a50d9aa784 Change the btree balance code so that it does not call balance_nonroot() recursively. (CVS 6729)
FossilOrigin-Name: 7863db904d6fc36417c923e3d135eb2c145b9013
2009-06-08 14:49:45 +00:00
drh b054068d21 Increase the version number to 3.6.15 in preparation for the next release. (CVS 6728)
FossilOrigin-Name: 456ea541d67221a573b63e264c83f4448f2ed569
2009-06-08 12:52:47 +00:00
drh c4ac22e905 Disable the LIKE optimization if the affinity of the LHS column is
not TEXT.  Ticket #3901. (CVS 6727)

FossilOrigin-Name: a255c645c46ae03b65f862858fe57e462076e1fc
2009-06-07 23:45:10 +00:00
drh 49008596ed Update the error message on one of the corruption tests to account for the fact
that we are finding the corruption sooner. (CVS 6726)

FossilOrigin-Name: ba9848e7b89df1fb6bf6db2b9d66cd3ffce375df
2009-06-06 19:21:13 +00:00
danielk1977 08746af43b Fix an error in the malloc.test test script causing a small buffer overread. (CVS 6725)
FossilOrigin-Name: 4d129bee696f3a537f7ea5501a387012fc08c27e
2009-06-06 16:08:22 +00:00
drh 125feffc89 Make sure the result of sqlite3VdbeGetOp() is not used as an array following
an OOM error, since after (6691) it might be a single-entry dummy opcode. (CVS 6724)

FossilOrigin-Name: 127b13981960a9690de09e8f9d0b38a4bd76015f
2009-06-06 15:17:27 +00:00
danielk1977 41f5b04ceb When building in debug mode with gcc, force the nullMem variable in function columnMem() to be aligned to an 8-byte boundary. Otherwise an assert() statement may fail. (CVS 6723)
FossilOrigin-Name: 3fd6c72da599347af70897b30b86a4ba641d4cd9
2009-06-06 14:13:26 +00:00
drh acfc72bea4 Detect when database corruption causes an attemp to set the pointer map
value for a pointer map page and report the corruption. (CVS 6722)

FossilOrigin-Name: 3ae4880bee3a0312c61cdd36f4fa50286cc2ef48
2009-06-05 18:44:15 +00:00
drh dda70fe38e Remove leftover "breakpoint" commands from test scripts. Also remove blank
lines at the end of scripts. (CVS 6721)

FossilOrigin-Name: 1fef16ec2b89981770cf44f606a420fbe031a7a4
2009-06-05 17:09:11 +00:00
drh bfb19dc698 Do not cast an unsigned int into an int for comparison. (CVS 6720)
FossilOrigin-Name: 302ab855e62dfae8507800302dae479e0494b81a
2009-06-05 16:46:53 +00:00
drh 35cd643cc7 Take care that a corrupt variable-length integer does not cause 32-bit
integer overflow when parsing a record format, nor cause excessively large
memory allocations. (CVS 6719)

FossilOrigin-Name: 38b20327a80996c7044b88be32161ac4ac0ec3a9
2009-06-05 14:17:21 +00:00
drh 1662b5a6f9 Earlier detection of freelist corruption in the page allocation routines. (CVS 6718)
FossilOrigin-Name: e557c8e5846f9c4eaaeb3bd07614ac101bb0b3d0
2009-06-04 19:06:09 +00:00
drh d46b6c23d3 Fix an assertion fault in balance_quick() that occurs when an interior
btree node has zero cells due to database corruption.  Also update the
corrupt7.test result vectors for a couple of cases where the error report
on database corruption changed due to earlier detection. (CVS 6717)

FossilOrigin-Name: 1335e4440f5a3d24ce9ce187e0e23fc9b166ca98
2009-06-04 17:02:51 +00:00
drh c85240dbf6 If the root page of a btree is empty and is also not a leaf page and the
page is not page 1, then report database corruption. (CVS 6716)

FossilOrigin-Name: 52b02ca5f3e5fdf2f3e02e9d8e016028d0842818
2009-06-04 16:14:33 +00:00
danielk1977 6f235cc5de Reduce the stack usage of balance_quick(). (CVS 6715)
FossilOrigin-Name: e7ad68e93b19b59cb16205c4b48fd9d6492dbb02
2009-06-04 14:46:08 +00:00
shane e71169ba30 Minor updates to comments in test scripts. (CVS 6714)
FossilOrigin-Name: 453ff88f73a01a54ff464563effdb63014b1972c
2009-06-04 02:47:03 +00:00
shane bbc795fdaf Minor tweak to test script to ensure every byte in file touched at least once. (CVS 6713)
FossilOrigin-Name: bc6c2d894b711361808a19b673803186d3a28369
2009-06-04 02:46:19 +00:00
drh c5e47ac238 Fix two instances where a malformed header in a database file (in other words
a corrupt database file) can lead to an assertion fault. (CVS 6712)

FossilOrigin-Name: 4e92c7f20afa51849128aa1d784ab885b517a73d
2009-06-04 00:11:56 +00:00
drh 69e931e7bb Change the pcache1.c implementation so that the "header" occurs at the end
of page buffer, not at the beginning.  This insures that the 20 bytes
immediately following the page buffer are mapped if a read of the page
buffer overruns due to a malformed cell. (CVS 6711)

FossilOrigin-Name: c54de1f54080de7e134d7b562498abb5337a0a46
2009-06-03 21:04:35 +00:00
danielk1977 93c829c110 Add corruptD.test, a container for testing the "cell overflow" problem. Also shuffle a small amount of code in BtreeInitPage() to check that the page header pointer to the start of the cell offset array is set to a sane value. (CVS 6710)
FossilOrigin-Name: 7fa5d3cb0fa05f7d901bcc139c2c037ce5944caa
2009-06-03 17:26:17 +00:00
danielk1977 0d19f7ac57 Define a set of constants to use as the "index" argument to sqlite3BtreeGetMeta and UpdateMeta. This makes some parts of the code easier to follow. (CVS 6709)
FossilOrigin-Name: 6dbf4eca00f845baa7200aba421d0bc158ba96aa
2009-06-03 11:25:07 +00:00
drh 50d654da3b Additional changes to reduce stack usage. The SQLITE_SMALL_STACK compile-time
option is now available. (CVS 6708)

FossilOrigin-Name: baea79fd0cfeb860973846c3f2776776c87f0ae3
2009-06-03 01:24:54 +00:00
drh e98c9049a0 Further reductions in the amount of stack space required. (CVS 6707)
FossilOrigin-Name: 04bad9eb6dd8bf7cafc9f3918b676e95d5b1c984
2009-06-02 21:31:38 +00:00
drh c54a617e1f Tweaks to vdbe.c to further reduce stack space requirements. (CVS 6706)
FossilOrigin-Name: 6f2aab3f7be12710b703eda22b1d5c0e8f85f814
2009-06-02 16:06:03 +00:00
drh e4a96be62b Add a test case for ticket #3893 and ticket #3894. (CVS 6705)
FossilOrigin-Name: 2472f6db95cd537a908bdbbbbc41bad2bd987b2f
2009-06-02 15:47:37 +00:00
drh 856c10375d Add the vdbe-compress.tcl script which automatically refactors the
sqlite3VdbeExec() routine to use less stack space.  Use this script
when constructing the amalgamation. (CVS 6704)

FossilOrigin-Name: 7f43391831b03e53d967acee6ae02089740aaedb
2009-06-02 15:21:42 +00:00
drh 6ee700c32c Avoid allocating large objects on the stack in the incremental BLOB I/O
interface. (CVS 6703)

FossilOrigin-Name: ea7dfde700fb57ed0ecb5000a55abbf45aa1e09d
2009-06-01 19:53:30 +00:00
drh e7b3470705 Malloc for space to hold the Parse object in sqlite3_prepare() and friends.
Or, if compiled with SQLITE_USE_ALLOCA, obtain space for the object from
alloca(). (CVS 6702)

FossilOrigin-Name: c7c0c58e472cd8277b2ad58bb60834190bace4fa
2009-06-01 18:18:20 +00:00