Commit Graph

6410 Commits

Author SHA1 Message Date
drh d50ffc416f Fix additional cases of possible signed integer overflow, especially with
regard to negation.

FossilOrigin-Name: 2d5800bd8cfc7d7f5578a71b1aeaa74b2ec4b372
2011-03-08 02:38:28 +00:00
drh 2327275b8c Another minor simplification brought to light by clang.
FossilOrigin-Name: 3bfbf026dd6a0eeef07f8f5f1ebf74c9cfebcd61
2011-03-06 21:54:33 +00:00
drh c126e63e4f Remove dead code identified by the clang static analyzer.
FossilOrigin-Name: 01a79d5a7af48fb7e50291c0c7c6283d3fb359d0
2011-03-06 21:28:32 +00:00
drh d7255a207e Simplifications to the overflow-free multiplier. Also remove some commented-out
code that was left in that subroutine by mistake on the previous check-in.

FossilOrigin-Name: 55fc25fdab61e6094289e068c343e012fec10439
2011-03-05 21:41:34 +00:00
drh 158b9cb965 Fix all known instances of signed-integer overflow. Within SQL expressions,
integer overflow now forces coercion to floating point.  The shift operators
work with any integer right-hand operand with negative values reversing
the direction of the shift.

FossilOrigin-Name: abf21394124a0af46f072793718964cee2ce55d0
2011-03-05 20:59:46 +00:00
drh cfd654bf2a Fix an instance of signed arithmetic overflow and an one bit-shift overflow.
Mark six other signed arithmetic overflow locations that need fixing.

FossilOrigin-Name: 04abab71ecd52f6070b9f84781a3df3d6dba7722
2011-03-05 13:54:15 +00:00
drh 92e4feb74c Do a better job of choosing the join table order when the tables having
very different numbers of rows.

FossilOrigin-Name: 952f5e8c69904c48f2decfabf8ea60a2e9f3e134
2011-03-04 00:56:58 +00:00
drh e84009f6a8 Fix bugs in [7b6e30e6a7] that only show up on Mac.
FossilOrigin-Name: ec55e8c6bb4f2419b3813aa2fd1a20d8f5016159
2011-03-02 17:54:32 +00:00
drh 0e9365ced3 Log all error from close() in os_unix.c to sqlite3_log() but do not attempt to
report errors back up to the application.  Update the unix error logging to
put the most important information earlier in the message.

FossilOrigin-Name: 7b6e30e6a712311d4ef275253b085b85e6e17116
2011-03-02 02:08:13 +00:00
drh 30f776fadb Comment out some code in os_unix.c that only runs on MacOSX with
SQLITE_ENABLE_LOCKING_STYLE.

FossilOrigin-Name: 4e50b0362ab6604a4b6c9f4ad849ec1733d6ce1a
2011-02-25 03:25:07 +00:00
drh 7f0857c437 Fix a typo in a comment. No changes to code.
FossilOrigin-Name: af4756184a255f5d8a5cd276bf9f2fc3b38d9169
2011-02-24 21:10:00 +00:00
drh 03e1b40b03 Reserve a range of bits in the SQLITE_OPEN_xxxx bit vector for future
expansion.

FossilOrigin-Name: 9b9046546db5b060e37e7ba01c23bb7e9528d861
2011-02-23 22:39:23 +00:00
drh 5c81927c9d Fix a typo in the robust_flock() macro for systems without EINTR.
FossilOrigin-Name: af9ba2a6d2c37915e799eec52bb827de46afd34d
2011-02-23 14:00:12 +00:00
drh ff81231e62 Retry selected system calls on unix when they fail with EINTR.
FossilOrigin-Name: b9d29ea385bafcf87c7dd07822ce9ec3d3892bd1
2011-02-23 13:33:46 +00:00
drh 5b6c545ba1 When a stale schema-cookie is seen, expire only the one statement that
encountered the bad cookie, not every statement on the database 
connection.  Ticket [b72787b1a7cea1f]

FossilOrigin-Name: 1bca0a7e198391202fd2bc1650c0a62028a9aaa5
2011-02-22 03:34:56 +00:00
dan ef7075de1f Fix a problem with "EXPLAIN QUERY PLAN SELECT count(*) FROM tbl".
FossilOrigin-Name: 9f9f32882501ac9b6e60f81195a64bdbf6e4497b
2011-02-21 17:49:49 +00:00
dan e18d495315 Have os_unix.c call sqlite3_log() following errors in certain system calls.
FossilOrigin-Name: 01076528a43b61ae20ef6969b7d326de9b5313e4
2011-02-21 11:46:24 +00:00
drh 03c6967f34 An SQLITE_PROTOCOL error counts as a locking error for verification
purposes.

FossilOrigin-Name: e87d499a4f8a456111c1f96ca6da31d0810fb7c8
2011-02-19 23:18:12 +00:00
drh c90e0811d8 Change a testcase() added by the previous checkin into an assert().
FossilOrigin-Name: 6f3dad32aa0e1e9ee374302c82bea9bd60d5854b
2011-02-19 17:02:44 +00:00
drh ab1cc7462f Add testcase macros to verify that all return values from
walTryBeginRead() are tested.

FossilOrigin-Name: 262b6fca0b7a251c02604c684a9f7e7a1434d630
2011-02-19 16:51:45 +00:00
drh 658d76c9f8 Changes to make WAL more robust against SQLITE_PROTOCOL errors.
FossilOrigin-Name: fd578a32f8e9f04957359e73f244a60f02afe08c
2011-02-19 15:22:14 +00:00
drh b1aa0ab6da Fix the sqlite3ValueFromExpr() routine so that it returns SQLITE_NOMEM
on an OOM when trying to extract a NULL.

FossilOrigin-Name: 1061e94fa983a441b289753b873559163ab849e6
2011-02-18 17:23:23 +00:00
drh cd92e84d07 Remove a no-op code path from sqlite3ExprIsInteger(). Replace it with an
assert() that proves it always does nothing.

FossilOrigin-Name: 7af66d1bd53fd5973281646511e4e1d3b16601a3
2011-02-17 15:58:20 +00:00
drh 0cf0e6c912 Remove an assert() that was made redundant by the previous checkin.
FossilOrigin-Name: 21db719156deef9fb26aff27a01e324da255c825
2011-02-17 13:52:02 +00:00
drh 6f2e6c0026 Add an ALWAYS() around a always-true test in where.c.
FossilOrigin-Name: 8123283ee1a360586a1721a56b4db15718c25ee0
2011-02-17 13:33:15 +00:00
drh 650f432e33 Fix harmless compiler warnings in the query planner.
FossilOrigin-Name: 31fc4ba66e76876b2e7b6b2b74c07f47571938ce
2011-02-16 23:32:24 +00:00
drh e9ce585779 Add a NEVER() around a test that is believed to always be false.
FossilOrigin-Name: f7e2ea33d5b37e5b133d96e96a11d2842504355c
2011-02-11 22:54:28 +00:00
shaneh a91491e5c7 Skip flattening if subquery has LIMIT and outer query is DISTINCT. Fix for ticket 752e1646fc.
FossilOrigin-Name: 559739998833643f589fa76d8360080691f83c18
2011-02-11 20:52:20 +00:00
drh da91e71308 Fix a bug in the new WHERE-clause processing that tries to use an
index to resolve IS NOT NULL constraints when SQLITE_ENABLE_STAT2 is
defined.  The bug could cause memory overruns and segfaults.  The bug
was new to the code and has not appeared in an official release.
Found during structural testing.

FossilOrigin-Name: a5c36b9f39ab9629b857ec9c550f3892c0d94fb4
2011-02-11 06:59:02 +00:00
drh ac6de304e5 Allow an index paired with a NOT NULL constraint to be used for sorting
under the condition that the index be treated as a non-unique index.

FossilOrigin-Name: d78949fc93077e1aa7f05cf9f7e947727939cc96
2011-02-11 03:56:11 +00:00
drh 59b6188bb0 Disable unused NULL tests when SQLITE_ENABLE_STAT2 is not in use.
FossilOrigin-Name: 5ecd11788269e78dc26639b2503a10b7e25b2483
2011-02-11 02:43:14 +00:00
shaneh 96887e1619 Add .testctrl option to CLI.
FossilOrigin-Name: f85afa0ecc7b31d32659ae53e70771cd42abda38
2011-02-10 21:08:58 +00:00
drh 3625008a54 Split the documentation for sqlite3_wal_checkpoint_v2() and its constants
onto separate pages.  No changes to code.

FossilOrigin-Name: 0ef8ffd12fce47c3c89e851e5116e2777ea9f435
2011-02-10 18:56:09 +00:00
drh 84e30ca0ed Prevent a segfault when automatic indices try to use a column with an
unknown collating function.  Ticket [77aa3b1e6592582e38605d36].  This
check-in also removes some stray \r characters unrelated to the problem.

FossilOrigin-Name: f01030a0df4f94f886ab209ee8766b095da28c1e
2011-02-10 17:46:14 +00:00
drh 3772206769 Refactor the cost function in the query planner. Give extra cost (thus
reduce likelihood of selection) to full table scans.

FossilOrigin-Name: 878da276ebf643b716ddd650d4d0ca3595fe5bf2
2011-02-10 00:08:47 +00:00
shaneh bb201344cf Make sure code *compiles* with each OMIT and ENABLE option. Mostly changes to test modules.
FossilOrigin-Name: 7cc515edc9cade2bc6c74699b3e4153bf2b74ebb
2011-02-09 19:55:20 +00:00
dan ecac670a8b Do not report corruption if the the db size header field is greater than the file size on disk unless the two change-counter header fields are identical. Fix for ticket [89b8c9ac54].
FossilOrigin-Name: 00c4596f0b270120848ab8d06dcdec7813a9a315
2011-02-09 18:19:20 +00:00
drh 7924f3e8e7 Use macros to define the relative costs of search and seek operations when
computing costs in the query planner.  Current constants seems wrong and
need to be fixed, but doing so will alter test results.  Need more
experimentation to determine accurate relative costs.

FossilOrigin-Name: 5f2ec44b22062ee9d31e20806fcec0101675aced
2011-02-09 03:04:27 +00:00
drh 383d79ee0b Simplifications to the sqlite3_wal_checkpoint_v2() logic.
FossilOrigin-Name: 652b8835c58fc9d474c9837fc966d8857bec4a91
2011-02-09 03:03:16 +00:00
drh 30aa3b93b6 Cleanup to the OP_Checkpoint opcode.
FossilOrigin-Name: f611a5a879b7dec1ed1d8bf32413c8a6b81c3172
2011-02-07 23:56:01 +00:00
dan 9c5e3680df Change blocking-checkpoint tests so that they run once using "PRAGMA wal_checkpoint" and once using calls to sqlite3_wal_checkpoint_v2(). Also fix edge cases surrounding the output variables set by wal_checkpoint_v2().
FossilOrigin-Name: 5a4b6652cf3780ffed6fe0fe669e8090b0b71e81
2011-02-07 15:12:12 +00:00
drh 47fe5533a6 Merge the stat2 query planner enhancements into the trunk.
FossilOrigin-Name: 499edcbc8ab70fcf35431d4e672c68dbcb6c5aad
2011-02-04 06:36:44 +00:00
drh 9ab724f196 If a deferred foreign key constraint fails on a statement that is not part
of a larger transation, make sure that the statement fully ends so that
subsequent invocations of the same statement will not pass the constraint
because they think the transaction is not closed.  This is a merge of
the deferred-fk-quirk branch together with a test case.

FossilOrigin-Name: 2f94d4623f9aae1b5bc7041bd85f4e3a7462c60e
2011-02-04 05:47:51 +00:00
drh 0097eb3942 Fix the ATTACH command so that the filename argument can be any expression
and so that if authorizer callback gets a NULL pointer for the filename
if the filename argument is anything other than a string literal.
Ticket [9013e13dba5b58c7]

FossilOrigin-Name: e64e1453a9c204d93de1af92dc0b3ca26762b024
2011-02-04 00:51:16 +00:00
dan d42892ebaf Fix minor problems with the output of "PRAGMA wal_checkpoint". In both code and tests.
FossilOrigin-Name: aef61036b31963e4c3ff4e8acf8c1734dc9394af
2011-02-02 19:17:39 +00:00
drh 87fa53ee8d Merge in the blocking-checkpoint enhancement, including the new
sqlite3_wal_checkpoint_v2() interface and the
PRAGMA wal_checkpoint(full) statement.

FossilOrigin-Name: bac7342c368a7c4f5f2878e08d9581dcbf57dd58
2011-02-02 16:34:08 +00:00
dan 290c939fbf Remove extra instances of the text "checked out." from sqlite.h.in. Also add new file fts3_aux.c to mksqlite3c.tcl.
FossilOrigin-Name: 9897da22c5b51611597350efbe8d5dcaf39d748b
2011-02-01 18:59:34 +00:00
dan 6d311fb0ac Fix a problem causing builds with SQLITE_OMIT_WAL defined to fail.
FossilOrigin-Name: b9b48dd8ddceec009b5a22a3699e1524542c004a
2011-02-01 18:00:43 +00:00
drh bd1334dfd9 Change pager_truncate() to a different method for extending files while
also ensuring that writes are page-size and page-aligned.

FossilOrigin-Name: 874bc8844f6494cdbf700bd884dee67d40f11fc0
2011-01-28 15:46:14 +00:00
dan fb3828c25f When extending a database file, do so by writing one or more page-size chunks of data to the file, instead of just a single byte to the end.
FossilOrigin-Name: 58577135a81d3f19667b1de6167d2e3f1b74cd53
2011-01-28 15:07:55 +00:00