Commit Graph

1572 Commits

Author SHA1 Message Date
drh 2a0b527b37 Omit unnecessary CHECK constraints in UPDATE statements, when none of the
columns referenced in the CHECK constraint are modified.

FossilOrigin-Name: 02fbdbc782dd98f080bf4482d820f36c0ef3d519
2016-02-10 16:52:24 +00:00
drh bdb00225ab Omit NOT NULL checks on unchanging columns in an UPDATE.
FossilOrigin-Name: 6a3aaedfb41735996470abbae6d3cd1be1f508b3
2016-02-10 16:03:20 +00:00
drh bbde018230 Code simplification: ALTER TABLE ADD COLUMN always upgrades the file_format
to 4 if is not there already.  No need to upgrade to only 2 or 3 since format
4 has now been supported for over 10 years.

FossilOrigin-Name: e1d8ec85546caeca3bb7a05ad962a2aed91194ce
2016-02-09 16:09:22 +00:00
drh 575fad6500 Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority
cases where db is guaranteed to be not NULL.

FossilOrigin-Name: 0a802e96ab06e2643834b83671fa8353da1a348d
2016-02-05 13:38:36 +00:00
drh 4a642b6060 Improvements to the way that OOM errors are processed.
FossilOrigin-Name: c3ef03478a5788c855b3aef385d43ae7f494f440
2016-02-05 01:55:27 +00:00
drh 6841b1cb3d Add "PRAGMA synchronous=EXTRA" which syncs the directory containing the
rollback journal when the rollback journal is deleted in order to commit a 
transaction in DELETE mode.

FossilOrigin-Name: af92401826f5cf49e62c278f344ab75252a18da2
2016-02-03 19:20:15 +00:00
drh 1b32554b80 Enhance the internal sqlite3VdbeAddOpList() interface to automatically update
jump destinations.  Use this feature to simplify the AUTOINCREMENT code
generator.

FossilOrigin-Name: ae8b9d2edf1b5aef6108e729754911db7682b6a3
2016-02-03 01:55:44 +00:00
drh 4b09ec6e11 Add the BTREE_FORDELETE and BTREE_AUXDELETE flags to the b-tree layer interface
and use them.  Add assert() statement to verify that they are correct.

FossilOrigin-Name: 85c467041c9378cae3038756da815e9117ee8c7d
2016-01-30 13:32:30 +00:00
drh 5f4a686f8c Simplification and size reduction to the printf logic. Remove the bFlags
parameter from sqlite3VXPrintf() and sqlite3XPrintf().  Use sqlite3XPrintf()
instead of sqlite3_snprintf() for rendering P4 values in EXPLAIN output.

FossilOrigin-Name: 0bdb41c45aa1cc8e5c136aaa6605d54b401483bd
2016-01-30 12:50:25 +00:00
drh def19e3b48 Change the name of the BTREE_IDXDELETE flag to BTREE_AUXDELETE, to better
reflect its purpose.

FossilOrigin-Name: 1d3bf6bebdda9f96734bc139601e9b05344ea0b4
2016-01-27 16:26:25 +00:00
drh 8716bfd8cd Merge all recent trunk enhancements.
FossilOrigin-Name: 9a71d56dcea953cb965f1fdda9a8b8f158cdeff6
2016-01-26 23:32:55 +00:00
drh 40aced5c65 Add the sqlite3TokenInit() utility function.
FossilOrigin-Name: 7323175337b7ba85ac932ca892b28860f6a5b688
2016-01-22 17:48:09 +00:00
drh e807bdba86 Add a new hint bit on the flags parameter of sqlite3BtreeDelete(). The new
BTREE_IDXDELETE bit indicates that the call is to delete an index entry 
corresponding to a table row that has already been deleted.

FossilOrigin-Name: ac2cbadd8000947c097da5b00c00090fe58fdcff
2016-01-21 17:06:33 +00:00
drh 9c0c57a4ca Improved comments on the FORDELETE hint. No logic changes.
FossilOrigin-Name: a3cec529f0238e4ca1196fec420f2de80d28db78
2016-01-21 15:55:37 +00:00
drh 9bfb024de0 Remove an unnecessary memset() from the symbol name resolver.
FossilOrigin-Name: da527ddae06460ab4b706cdb871de2188ebaf5ac
2016-01-20 02:21:50 +00:00
drh 6d664b4bb3 During compilation, transfer the azVar[0..nzVar-1] array from Parse to Vdbe
rather than copying it.  Smaller and faster code.

FossilOrigin-Name: 80dd495f378614e4eca72e71e43061b1b94ee450
2016-01-20 01:48:25 +00:00
drh dad300d8e1 Fix a problem with SQLITE_TEST_REALLOC_STRESS.
FossilOrigin-Name: 0aaf3febb00f622c5ef0853b2491d69f7ca7a21e
2016-01-18 00:20:26 +00:00
drh 2d80151f32 Combine the xFunc and xStep pointers of the FuncDef object into a single
pointer xSFunc.

FossilOrigin-Name: 0d1b3d7d3ca66cb0b97493f1aeade1703af3c9f4
2016-01-14 22:19:58 +00:00
drh c0fba6d8e8 Remove an obsolete #ifdef related to iOS support.
FossilOrigin-Name: e9a51d2a580daa0fb152fe4c891149caa8025b9d
2016-01-08 17:28:24 +00:00
drh 8549d55ead Small performance and size optimization spotted while working on the
shared-cache problem.

FossilOrigin-Name: 828958ff77a5c239d55302f570077835c093e0fa
2016-01-07 17:09:43 +00:00
drh fa385edff3 A new approach to very large sqlite3_mprintf() strings: Back out the
[d655a665] check-in and instead make the size fields in StrAccum unsigned.
Strings generated by sqlite3_mprintf() can now be as large as 2^31-1 bytes.

FossilOrigin-Name: 7adb789f45698e5569b840d23f3f9488db3ed109
2016-01-04 12:07:27 +00:00
drh bd57308eef Remember the size of the Vdbe.aOp[] array in bytes, to avoid unnecessary
calls to sqlite3_msize().

FossilOrigin-Name: 3e852804c85a5c9f4c4ffafd55d03af6d19fe5cc
2016-01-01 16:42:09 +00:00
drh e6110505c9 Fix harmless compiler warnings associated with SQLITE_ENABLE_HIDDEN_COLUMNS.
FossilOrigin-Name: 9c392c1019ee15f27c8e05b41246d2844f91f6c0
2015-12-31 15:34:03 +00:00
drh e5520e2f06 Small size and performance optimization to the VDBE comparison opcodes.
FossilOrigin-Name: 7a0b9413fa94d3f4fa9751ddf9b213a1238954f1
2015-12-31 04:34:26 +00:00
drh f19aa5fa6f Changes to the way that the default BINARY collating sequence is recorded
result in a slightly smaller and slightly faster executable.  More work could
be done to make this cleaner.

FossilOrigin-Name: 2081d75767dc590b4c8457e5f8e5f18ba5f8eaa7
2015-12-30 16:51:20 +00:00
drh e1462a762c Avoid a harmless compiler warning on systems where the byteorder cannot
be determined at compile-time.

FossilOrigin-Name: 7c7b7f26306b6aa6ff35b871ad756f43f5db9838
2015-12-24 14:53:27 +00:00
drh 1c75c9d7f1 Ensure that the Expr objects that describe indexed expressions are not modified
by code generation.  Fix for an assert() problem found by Jon Metzman using AFL.

FossilOrigin-Name: 34073ce87d88a02313217023ae92e15939192cd9
2015-12-21 15:22:13 +00:00
drh 34628b4b4f Move pointer range comparisons into a macro, where they can be dealt with in a more portable way.
FossilOrigin-Name: 05bc4f920ce23da48d1da6cd36a956fd6fd7c862
2015-12-10 17:59:50 +00:00
drh ac536e613a Move pointer range comparisons into a macro, where they can be dealt with
in a more portable way.

FossilOrigin-Name: ad3124c834b080aaaf24934d6f08b3601ac3ae53
2015-12-10 15:09:17 +00:00
drh ea06a271a4 Avoid doing comparisons with pointers that might have been previously been
passed to realloc() and/or free().

FossilOrigin-Name: f20396adb2cff12a17a3fc90b36241ae3fdfd62a
2015-12-08 16:08:10 +00:00
drh 7977fa3ab2 Enhancements to a comment in sqliteInt.h. No changes to code.
FossilOrigin-Name: 5446ae64d7f92444ca40aae2108015d1d77bc03f
2015-11-20 13:17:29 +00:00
drh 18f8e73453 Fix problems with the way the IsHiddenColumn() macro is defined.
FossilOrigin-Name: 126b998cf163dcdd5a222634f1e929f04db3c700
2015-11-19 18:11:20 +00:00
drh 80090f9221 When manifesting a view as part of an DELETE or UPDATE, be sure to include
the hidden columns in the manifestation.

FossilOrigin-Name: 28df5dc4a9569f388af2ee0d1f016afbea132277
2015-11-19 17:55:11 +00:00
dan ba68f8f3f5 Fix problems with INSERT INTO ... SELECT ... statements that write to tables with __hidden__ columns.
FossilOrigin-Name: 59bd0ec7d4327852ee8c0206b2c59d0a12484db8
2015-11-19 16:46:46 +00:00
drh 03d69a6826 Only support the magic "__hidden__" column name prefix interpretation when
compiled with SQLITE_ENABLE_HIDDEN_COLUMNS.

FossilOrigin-Name: 5490646b2eb74ea8bd5ab2690f69b9c707a0165f
2015-11-19 13:53:57 +00:00
drh 5e3cefe3d0 Update the SQLLOG logic so that to builds in accordance with the instructions
in the header comment.

FossilOrigin-Name: ee6f2feec7d777a969ddba6dc00fb571d64e57f8
2015-11-12 23:48:08 +00:00
dan d83f7ca114 Add support for the SQLITE_SQLLOG_CONDITIONAL environment variable to the logging code in test_sqllog.c. When defined, logging is only performed if the "<database>-sqllog" file is present in the file system when the main database is opened.
FossilOrigin-Name: cab8126be9f63dd596719b12704ba77c128282bc
2015-11-12 20:12:51 +00:00
drh 6e7722669e Proposed fix for an infinite loop bug in the WITH clause semantic analysis
logic.

FossilOrigin-Name: 028475cb17a4b50baf0e9aba9bd3403d0a5d03b0
2015-11-07 17:48:21 +00:00
drh 2476a6f2cb Enhance TreeView to show WITH clauses. Add an assert to detect the
infinite loop behavior when certain kinds of errors occur on a nested
WITH clause.

FossilOrigin-Name: 2040d88e877bdb69de125a047cefb4a1558e89e8
2015-11-07 15:19:59 +00:00
drh b1d607de25 Improvements and simplifications to the equality seek logic. Tests are
adjusted so that they all pass now.

FossilOrigin-Name: 997ce6c90b454c03cc2ef6934752ee8dd2e520e3
2015-11-05 22:30:54 +00:00
drh 70528d7868 The top of an index equality loop normally starts with OP_SeekGE and OP_IdxGT.
This check-in adds a flag to OP_SeekGE such that it fails immediately if
the key is not equal, then jumps over the OP_IdxGT, saving a call to the key
comparison functions.  Consider this check-in a proof-of-concept.  It needs 
improvement before going on trunk.  Some tests fail, but only because they
new use fewer key comparisons than expected (which is a good thing!).

FossilOrigin-Name: 32e31b9bc8664afcd326a1ff3892d86dc5202474
2015-11-05 20:25:09 +00:00
dan c5dc3dcd6e Merge the BTREE_FORDELETE enhancement with this branch.
FossilOrigin-Name: 20da0849ce910ceb445954dfc5f985acf9a02695
2015-10-26 20:11:24 +00:00
dan fd261ec67e Modifications to pass a flag to internal routine sqlite3BtreeCursor() when a cursor that is used solely for deleting b-tree entries, or for obtaining the components of keys to delete from other b-trees, is opened.
FossilOrigin-Name: cdc92919e600007cae5eb61223684f48a65babc0
2015-10-22 20:54:33 +00:00
drh 0030aaad67 Merge recent enhancements from trunk. Version now 3.9.1.
FossilOrigin-Name: 26fa091d68e89a0b6af61ba706d23a9f37e8025a
2015-10-16 20:53:57 +00:00
drh ce78bc6e7e Enhance the use of the column cache for UPDATE statements, making them
more efficient for the case where a column is modified to be an expression
of other unmodified columns.

FossilOrigin-Name: 871e091df651b2275a672c35ff938bd4b6db0d7f
2015-10-15 19:21:51 +00:00
drh b02392e6f0 Change sqlite3StatusSet() into sqlite3StatusHighwater() so that only the
highwater mark is recorded.  This gives a small size reduction and
performance improvement.

FossilOrigin-Name: 6422d223dd10018703c6b083d29a3c35c837fc97
2015-10-15 15:28:56 +00:00
drh 99f4647ef5 Merge in all the 3.9.0 updates from trunk.
FossilOrigin-Name: 29444149342fc6b1ea8cd34c2c8e1fcb06eaa7ed
2015-10-14 20:09:54 +00:00
mistachkin 8d9837acd5 Adjustments to sqlite3MemoryBarrier() when compiling with MSVC and/or WinCE.
FossilOrigin-Name: 3168326ebfa1c961d8fc6435453b02be23d910cc
2015-10-06 01:44:53 +00:00
drh 4b92f98ccc Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2)
magic numbers in Index.aiColumn[].  Add asserts to help verify that
Index.aiColumn[] is always used correctly.  Fix one place in FK processing
where Index.aiColumn[] was not being used correctly.

FossilOrigin-Name: 7d272aa62cd4cbbf4b5d04e3b918de27671e8301
2015-09-29 17:20:14 +00:00
drh c149f18f4d Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level
VDBE is being coded (versus a trigger) and use that interface.

FossilOrigin-Name: 59662cd2b65255a30e1a420331c07c51b644621a
2015-09-29 13:25:15 +00:00