Commit Graph

18182 Commits

Author SHA1 Message Date
drh
037a2bacb0 Convert the LSM1 virtual table to be WITHOUT ROWID and get UPDATE and DELETE
operations working on it.

FossilOrigin-Name: 2164031b509dc6eae367ffb9d915f3e1d33d26210506b2de8b2bfca38c53465f
2017-08-11 12:49:59 +00:00
drh
f41a8d3d9a Simplification to the like optimization logic. Remove unnecessary branches.
FossilOrigin-Name: 9466d952e169a6a60f6e575e679a61f05887b51c693505764edaf10f62cd829f
2017-08-11 03:47:21 +00:00
drh
21f6b626f5 Allow WITHOUT ROWID virtual tables to be writable as long as they have
exactly one column as their PRIMARY KEY.

FossilOrigin-Name: c601d128ff1f1dd6d221ee9f55595a95b58ba07d043e1d530743ea913731560e
2017-08-10 20:43:07 +00:00
dan
7c3ca3611c Add the "instance" type to the fts5vocab virtual table module. For direct
access to the contents of the fts5 term index.

FossilOrigin-Name: 34a7bd7121a478e14982d59be95ad891fab8050ad5e006638f826c57c392b93e
2017-08-10 20:36:56 +00:00
dan
5b156b2bb4 Fix a typo in csv01.test introduced by the previous commit.
FossilOrigin-Name: f38ff718278c8ff477d1c6379ced32167063de15f0666c8eac2e4dd30cbd975c
2017-08-10 19:12:04 +00:00
dan
09fc79bd6f Add extra tests to this branch.
FossilOrigin-Name: b0e3b88a792623f7761586d8bfac058ddf939f49944ff0c4376627ff920895db
2017-08-10 19:10:23 +00:00
drh
4dd176eaab Test case for writing to a WITHOUT ROWID virtual table. The TCLVAR virtual
table is modified to add a "fullname" column which is the primary key, and
to accept update operations against the primary key.

FossilOrigin-Name: 6997e00c3221f266f4d9187501d8a9e5bafb85551e88a744cdc8ffe3b75ec2a4
2017-08-10 17:53:11 +00:00
drh
e3740f272b Experimental changes that allow a WITHOUT ROWID virtual table to be writable
as long as it has only a single-column PRIMARY KEY.

FossilOrigin-Name: ab9ee4c1e64c09c7130e385a23d043d78bad95dff5509c7adc9b992350a4a537
2017-08-10 15:19:39 +00:00
drh
6fa9375c01 Add a first draft of the "vtablog" extensions that implements a generic
virtual table useful for experimentation using the command-line shell.

FossilOrigin-Name: e49279e65169a939b6058a0960dc1fe09ce4ee2d78992a1969773cbc7ce1043b
2017-08-10 03:27:27 +00:00
drh
7524b613c5 Preserve the error code from xConnect or xCreate methods in virtual table
implementations when they are encountered during parsing.

FossilOrigin-Name: dcdf091388251292ff9939bdff920708320bc64dacfe0fa1878c5ffd11b679c9
2017-08-09 22:55:09 +00:00
drh
73e00cf056 Various bug fixes for the new LSM1 virtual table design.
FossilOrigin-Name: 94434a252f0f2b57f325fd8fb82534f20cc1340ff13076cd88deeb47740ef6a2
2017-08-09 19:27:24 +00:00
drh
2e27d28fec Work toward redesigning the interface to the LSM1 virtual table.
FossilOrigin-Name: 313df946668b943b0a9a9a91fd7bafa7212d05765c7714fa6c0de46aa9062a74
2017-08-09 18:40:35 +00:00
drh
ca03bdaf6e The identifier "vsnprintf" appears to be a reserved word in recent versions
of XCode, so avoid using it as a structure field.

FossilOrigin-Name: 795eede331b832a53e886318466dedc12504f7181c1d7295af7935864a04b72c
2017-08-08 21:40:23 +00:00
drh
b8313cc998 Fix a faulty signed/unsigned character comparison in the LIKE optimization
logic.

FossilOrigin-Name: f4a4b1497355c1b27d3d0770550fffcc3b2d2d51ab284101f19e8fc4264ee675
2017-08-08 21:30:43 +00:00
drh
4f57352937 Enhance the CSV virtual table extension so that it accepts the last row of
the CSV file even if the last row omits the closing \n, as long as the last
row has a full set of columns.

FossilOrigin-Name: 537e3be2e9503183799afffcd91defc751fea2c779e9b77b77f9485f7de5d170
2017-08-08 20:03:10 +00:00
dan
b46dfdb81c Avoid casting a value larger than 2^31 to a (size_t) or (SIZE_T) on systems
where it is a 32-bit type.

FossilOrigin-Name: b26d7a1c7b5d59a2ceabc3716ccea32e26de729eb164a9c0e47f2d8f6ad3df37
2017-08-07 19:12:49 +00:00
mistachkin
e35395a45a On Windows, avoid casting a value larger than 2^31 to a (SIZE_T) on systems where it is a 32-bit type.
FossilOrigin-Name: f08d63b413601b22726e8b96ff8eb779857321b9df30db0333f71e50ffb5077d
2017-08-07 19:06:54 +00:00
dan
089df50687 Fix a problem with handling SQLITE_FCNTL_MMAP_SIZE requests with a negative
parameter in os_unix.c.

FossilOrigin-Name: 4249fcf7b0c0233f9b3ba5139702738d5221c5309240e6e91dc139eff59471fe
2017-08-07 18:54:10 +00:00
dan
010a016ac9 Update bigmmap.test to account for builds that use
"-DSQLITE_MAX_MMAP_SIZE=<integer-constant>LL".

FossilOrigin-Name: 7c8b6f1cace42ee1182c252c8e66e5679f523f4248c27d38c075ae21e7c25374
2017-08-07 18:27:19 +00:00
dan
43c1e622cd Avoid casting a value larger than 2^31 to a (size_t) on systems where it
is a 32-bit type.

FossilOrigin-Name: 46c3085dcad6372ac20eff499e17fe11680fdf4adb9186bf8b12221a5047e485
2017-08-07 18:13:28 +00:00
mistachkin
54640de156 Fix an out-of-order test number.
FossilOrigin-Name: 38f30091f9b1e2c393396da7257f3487fa374e1ee6d610577291909768ff9626
2017-08-07 17:28:18 +00:00
dan
969012e534 Add new test file "bigmmap.test". For testing builds with
-DSQLITE_MAX_MMAP_SIZE > 2GB.

FossilOrigin-Name: 17447062799239ee978bedbf7fcc67f4c7d2cad2e82dcf9349a966fc8f67d390
2017-08-07 17:14:30 +00:00
dan
226744d11b Fix a segfault in swarmvtab that could occur if there was an error in the SQL
statement passed to the constructor. Add other test cases.

FossilOrigin-Name: 6ce8b7ca62fcf97875395fc1a989179309e0abb48d4465658ef0d871434ea057
2017-08-05 16:15:33 +00:00
drh
eabb67fb61 Microoptimization in pcache1.c makes the code slightly smaller and faster.
FossilOrigin-Name: 422cd9f39403feeacd70133c7a147e23572c75d617ac564344f016ae6611162c
2017-08-05 15:49:03 +00:00
dan
7d90417733 Fix memory leak in swarmvtab.
FossilOrigin-Name: 002a9c7baccf3417c56ec7d16755ea32fdd70a654ffc75f2fc4624fd2b688aed
2017-08-05 15:30:46 +00:00
drh
1451778a88 Add the swarm virtual table to the existing union virtual table module.
FossilOrigin-Name: 0f6f6f03deaba2f4bdd168980647136e8ddff4907863b62b3056b8e4665599df
2017-08-04 20:27:13 +00:00
drh
a5aed4b10b Add the optional non-found-callback to the swarm-vtab.
FossilOrigin-Name: a94e2f600bc766fb459418e674b842628ba21e27cf9942c00cd533507d7b35fe
2017-08-04 20:15:08 +00:00
dan
d83e082524 Add further test cases for swarmvtab. And minor code changes.
FossilOrigin-Name: 0f82d3b9dd5bd2e34a984c78e4a4a87921cf3e15b01b611133378c0ea9901010
2017-08-04 17:39:13 +00:00
dan
0ff2217035 Add test cases and associated fixes for swarmvtab.
FossilOrigin-Name: 7ae20eac83fc053dc1bbc42501dd41f77445a6b9a33cfa42b899fc7a18c637ab
2017-08-04 16:16:32 +00:00
dan
f12228fa23 Add SQLITE_API qualifiers to public API functions in header file sqlite3rbu.h.
FossilOrigin-Name: e11e6eb1d98518ba3f0361efa1c274084c5d6325b52e8470b6873e14e00c4eff
2017-08-04 08:24:52 +00:00
dan
f5f0e43a6d Update script tool/mksqlite3c.tcl to avoid duplicating the SQLITE_API
qualifier when copying sqlite3rbu.h into the amalgamation.

FossilOrigin-Name: 61ab112f326a51d2d524a6371d8c93851ca2c6917414a802ac72d7cf5a2413fb
2017-08-04 08:23:33 +00:00
dan
a64d1fbc23 Modify swarmvtab to use a separate database connection for each database file.
FossilOrigin-Name: 1f05ad29c3a540408470da7f8111f1319f961539c1a96b1a81abf1423af90f15
2017-08-03 20:13:00 +00:00
dan
f48d4ef8bc Add SQLITE_API qualifiers to public API functions in header file sqlite3rbu.h.
FossilOrigin-Name: d8637badf63b90b650e9d6dc970c7e1ce46669ce8272f46f01fac9bd97c1b0fc
2017-08-03 15:50:10 +00:00
dan
0c2e5cfda5 Fix some problems in RBU test cases. Also update RBU source code to better
handle the trivial case where an RBU update is applied to a database zero
pages in size.

FossilOrigin-Name: 7676b39bc120ae23da0c6a14452eb99a58901ee45c3d43b8beae426f9e4dc0c3
2017-08-03 15:43:55 +00:00
drh
5859636fb1 Optimization to the comparison opcodes in the byte-code engine.
FossilOrigin-Name: 654935c7737f1a9e08fde9b220c543e86ff6e05910e2f08973a2f93ab2b3e028
2017-08-03 00:29:23 +00:00
drh
a485ad191f In the KeyInfo object, refactor the nField and nXField elements into
nKeyField and nAllField, which are more useful and run a little faster.

FossilOrigin-Name: aea5990eab5e85f92df966aa641db2271c81052010ad2d80982475c4275a1284
2017-08-02 22:43:14 +00:00
dan
63331b1af3 Enhance the code in unionvtab.c to also provide the "swarmvtab" virtual table
module. There are still several problems on this branch.

FossilOrigin-Name: 03d94388d62fd0f1fae377d273bbd5561208adc34bd97f7ce27783b30a369fd7
2017-08-02 19:59:56 +00:00
drh
754ee285fa Avoid redundant calls to sqlite3ApiExit() in sqlite3_step().
FossilOrigin-Name: 527974d4caba8bce7c89a28ea04a573b14c558657c14d9ad3c64bf1e0884caf8
2017-08-02 19:04:37 +00:00
drh
59533aa5e0 Only attempt to invoke WAL callbacks when a transaction has committed.
FossilOrigin-Name: bcc6dacb9114df709ef1bde24264c2193d9e39fc7fab024d5ebfc6056033274c
2017-08-02 18:28:26 +00:00
drh
60172a5a93 Minor optimization on clearCell()
FossilOrigin-Name: f3c39c2986be08683c2af4df610bc12e3c6bc6bec265c94ce01b94a950723524
2017-08-02 18:27:50 +00:00
drh
85ef630fde Optimizations associated with error handling in btree cursors.
FossilOrigin-Name: 49ba54e26731ed371745d4bdd9dd1dfeb73357b6d206c85a4252ec866be971d0
2017-08-02 15:50:09 +00:00
drh
57498ae9cf Remove unused token codes.
FossilOrigin-Name: c45078c062f41f43c71965b2e5a97932ff79123eeb017ba853314987bebc2bca
2017-08-02 12:38:10 +00:00
drh
13aa88d956 Rearrange some of the added token codes for a very slight size decrease and
performance increase.

FossilOrigin-Name: cb3742f51f4b3aa0fd8dc373af771e93ddb4100787115705955f2008aef92745
2017-08-02 11:36:16 +00:00
drh
6a8700b97b Rearrange integer token values in the parser and logic in the
resolveP2Values() routine for a small size reduction and performance increase.

FossilOrigin-Name: 1cad2926ad88b83becab1326bd189d7bac8ba6d470b36ba5d29af5c9fb016014
2017-08-02 11:04:00 +00:00
drh
a02860511d Show which opcodes are jumps in the comments when generating
the opcodes.h header file.

FossilOrigin-Name: eef643a369250f1acac4c01a9b3d29068a510e5bf7fa843d565df5e2523e4dd9
2017-08-02 03:21:52 +00:00
drh
59c435a015 Add the "%token" control to the lemon parser. Not currently used by SQLite.
FossilOrigin-Name: a6e4c5ae8f29bc2e7f2088426341254e9281d19db9dc9a14abc376d56dad4c4b
2017-08-02 03:21:11 +00:00
drh
0019881e08 Faster implementation of resolveP2Values().
FossilOrigin-Name: 82e46fe0d497f871e652a579f25e77de7ef05d56484418961a1296f65f19415e
2017-08-02 02:46:43 +00:00
drh
6903bf6d49 Slightly smaller and faster by allocating Parser objects on the stack.
FossilOrigin-Name: 436a89b91901851ce21bf0cb997291b48888c52788b904822083d8dfac32b84b
2017-08-01 20:59:41 +00:00
drh
86b40dfd33 Split the OP_Last opcode into OP_Last and OP_SeekEnd. Use OP_SeekEnd to
position a cursor prior to appending.  Ticket [cb91bf4290c211d].

FossilOrigin-Name: 3e02474c7bbe16891a7cfc8771cf72f64cd2c0692779037982d7d307512a4f23
2017-08-01 19:53:43 +00:00
drh
b7673ede37 Take advantage of atomic-write capabilities in the F2FS filesystem when the
database is stored on such a filesystem.  This is a compile-time option
activated using SQLITE_ENABLE_BATCH_ATOMIC_WRITE.

FossilOrigin-Name: 24190b221f73472dafaead6de101b4debc2c91c1ca28d70b45a38df5bb61fb39
2017-08-01 14:16:15 +00:00
drh
e9e1074d27 Allow ATTACH and DETACH inside of a transaction.
FossilOrigin-Name: 95e8f31658254dd2df3eeaae337aff0fe2125d170ae966c74f4fc70400e099b1
2017-08-01 00:20:34 +00:00
mistachkin
334d163e41 Recognize 'AMD64' as 'x64' in the TclKit batch tool for MSVC.
FossilOrigin-Name: 0c77935cf9949099d834ec51384c1d4dcdaf7b4422c859c9fce6d3cb3bde2645
2017-07-31 19:39:34 +00:00
mistachkin
5b54259873 Sync up the MSVC autoconf makefile.
FossilOrigin-Name: b3b89f4ff92ee4b76f467d4e70fb42267470aef77af645f1ce71f9b1a675aabb
2017-07-31 19:26:06 +00:00
drh
ab2eca0965 Fix a windows-compatibility issue in the recently added schema6.test script.
FossilOrigin-Name: 14e6c302ec3bc0e012b3c01aabee2d32e81389e1a4d834d1c57dd60bfbc97f29
2017-07-31 17:51:49 +00:00
drh
93bbfbe539 Prevent OSSFuzz from using debugging pragmas that are disabled in default builds
and which generate lots of excess output.

FossilOrigin-Name: cdc6494c050d821908087e6fd9b1e44ba92d81f363494a80b54647f19e5675f7
2017-07-31 17:06:34 +00:00
drh
c644980c4d Move the generation of output column names earlier, to right after
name resolution and before query transformations such as flattening. 
This prevents the names from getting mangled by query transformations, 
and obviates hacks in the query flattener that attempt to work around 
the name mangling. The resulting code is smaller and faster and gives
more consistent output. Fix to ticket [de3403bf5ae5f72ed].

FossilOrigin-Name: ade7ddf1998190b2b630715774963150d86bed3211b7fd600cbf3068427e1531
2017-07-31 16:42:46 +00:00
drh
ea2844f153 Add the schema6.test module for demonstrating schemas that generate identical
and different content.

FossilOrigin-Name: ac1da06a829051d393ccb8bb986e78f5bd35b060687688f6b3661913b13c9a5a
2017-07-30 19:50:42 +00:00
drh
df94966c8b Correctly handle an "INTEGER PRIMARY KEY UNIQUE" column in a WITHOUT ROWID
table.  This is a fix for ticket [bc115541132dad136], a problem discovered
by OSSFuzz.

FossilOrigin-Name: 5216bfb73f1a49bdd879d470de139bf46a212474eaf6f38ad2390536d66a2afd
2017-07-30 18:40:52 +00:00
drh
ce00d05a7b New test cases for column name generation interacting with the query flattener.
FossilOrigin-Name: 0c38dde4543d6183a6ab0b7b3b75819f56c47704756a2426d54d3f20468d78d8
2017-07-29 17:02:22 +00:00
drh
f35f2f92ed Move the generation of output column names earlier, to right after name
resolution and before query transformations such as flattening.  This prevents
the names from getting mangled by query transformations, and obviates hacks
in the query flattener that attempt to work around the name mangling.
The resulting code is smaller and faster and gives more consistent output.
This is an alternative fix to ticket [de3403bf5ae5f72ed].

FossilOrigin-Name: 09834279aeca3bda63de684a369ed64f2cbf587b5f5df1454c0a3c009a1337ad
2017-07-29 16:01:55 +00:00
mistachkin
7751deb3e2 Update Tcl version used by the TclKit batch tool for MSVC.
FossilOrigin-Name: bcec155e0d6c6b17ae09d5a366c080723d01ff40dbc1a0ad0bb669a91db1b850
2017-07-28 22:22:15 +00:00
mistachkin
f6285fab68 Fix harmless compiler warning.
FossilOrigin-Name: 3286e1a07b0693049a07f0865bf93749c461ea8f6d1175ec2d1642886673d8ac
2017-07-28 22:13:26 +00:00
drh
2fc2f92ed6 Disable the writecrash.test module on Windows.
FossilOrigin-Name: 4c0520d4df7473eb4cc764774df7d99bb96cf067ac224755e09f0df47fb2a810
2017-07-28 20:49:02 +00:00
drh
9e61104c68 More precise determination of when an in-memory journal needs to be
spilled to disk.

FossilOrigin-Name: 6a505bdd9347783d3d8105cb8185aa787801bad0c855b623cfd780fb406f0e7b
2017-07-28 18:16:14 +00:00
drh
344f763f72 Add new extended error codes for the atomic write file-controls.
FossilOrigin-Name: 94a2004756ffe027b3495be91366750135c294a9c460edc9a1b4b9422dcc33bd
2017-07-28 13:18:35 +00:00
dan
2912da0283 Add new test file test/atomic.test.
FossilOrigin-Name: f9213e4864d0542be5489e03cf40c47d9127a86bbbbbabd963aa08525d5dc97b
2017-07-28 11:05:33 +00:00
drh
a66632d83a Add the SQLITE_ENABLE_BATCH_ATOMIC_WRITE macro to ctime.c
FossilOrigin-Name: 67bad7fb9b2fdb29b63308f22062444084dc28191a542e08076dc2e39caf6f62
2017-07-28 01:53:32 +00:00
drh
1d42ea71c2 Enhance the like optimization so that it works with an ESCAPE clause.
FossilOrigin-Name: f5d330f495d07a704e115595bbdf5422ddb68fd8191114c5a12c9c873d983f7c
2017-07-27 20:24:29 +00:00
drh
01d837df9c Increase the version number to 3.21.0 in anticipation for changes to go
into the next release.

FossilOrigin-Name: 0645f25c79c1b2af1fd3a02b44090329d456e373d91f6c284b8fbcb929e03a5d
2017-07-27 19:59:37 +00:00
drh
2036833a66 Merge the pointer-passing interface changes from the 3.20 branch.
FossilOrigin-Name: c63903a4c5d52a490e3f26707aa85fb54d4e2e8a3ce31ca26a9c615fe7a51e97
2017-07-27 18:49:19 +00:00
drh
761decbb50 Simplified documentation for the pointer passing interface.
FossilOrigin-Name: 2dfcd9a8ecdf0ddd8e044d820639830c6171141c588cf0224255af85c64cf79c
2017-07-27 18:43:13 +00:00
dan
77b4f528fa Do not set device-capabilities flags SEQUENTIAL or SAFE_APPEND for f2fs
file-systems.

FossilOrigin-Name: 4477e60cd801dab7a8aec12c5bc5e81e774bedbfed38abbc8eb8b37336141a44
2017-07-27 18:34:00 +00:00
drh
05cccc2848 Add destructor functions for the pointer argument (NB: not the type string)
to the sqlite3_bind_pointer() and sqlite3_result_pointer() interfaces.  Use
this new capability to resolve a pointer leak in the custom geometry function
mechanism of the RTREE extension.

FossilOrigin-Name: 5a2340b81faf0a29deb5b7c9a2ba6a7697d646de6cc4e9b2e6e5e6463fa394bd
2017-07-27 17:45:08 +00:00
drh
34fcf36d62 In sqlite3_bind_pointer(), invoke the destructor if the bind index is
out of range, like sqlite3_bind_blob() does.

FossilOrigin-Name: d6684d2a744e6e04b8796c3b5ecb81c6577728b698c1ab5f4a828b2ac114b8a2
2017-07-27 16:42:36 +00:00
drh
a0024e6c99 Improved implementation of the destructor on pointer-passing interfaces.
FossilOrigin-Name: 601ad6795927fff8c3cc1711a2fd90912499573e94aa5bc8f18cbd4b89778f58
2017-07-27 15:53:24 +00:00
drh
22930062d5 Add a destructor argument to sqlite3_bind_pointer()
and sqlite3_result_pointer().

FossilOrigin-Name: 3d9e841f6011480ebb8a6d860da72af7fa545983e08835ddef2cac96e5f5cd4b
2017-07-27 03:48:02 +00:00
drh
8257aa8dbe Add the new sqlite3.mDbFlags field. Factor out bits of sqlite3.flags that
do not interact with PRAGMA statements into sqlite3.mDbFlags.

FossilOrigin-Name: 3808a00f06d372cc531da039d97bd974e4a6576a30cf63bf562f83f186b313b3
2017-07-26 19:59:13 +00:00
drh
cf201488a5 Allow ATTACH and DETACH to occur inside of a transaction.
FossilOrigin-Name: ac1fd6beb6c804af5faf1e06a51177a8316007ff9e718c398bd7a24d2ecc4ed3
2017-07-26 18:26:44 +00:00
drh
61ffb2cda6 Fix a comment on the UnpackedRecord.r1 and UnpackedRecord.r2 fields.
No changes to code.

FossilOrigin-Name: 622b108915c7982b29ca9920abde941fff55234b70af9ac4122e4827b35d985c
2017-07-26 10:04:51 +00:00
drh
1fc376bfd1 Release candidate 2 for 3.20.0.
FossilOrigin-Name: f39cb76b3347baba22f2c329e74036710b64620414433a952de8d44da79ba8d9
2017-07-25 15:12:01 +00:00
drh
e8cf1ab9aa Fix a bug in the deterministic date/time function logic that can only appear
with STAT3 or STAT4.

FossilOrigin-Name: 1ca707a4fb8db7aa85430413164265607ce727fc8a5afc3424b3abfb59921b39
2017-07-25 01:34:05 +00:00
dan
b67abfc463 Do not attempt to run test file unionvtabfault.test with SQLITE_OMIT_VIRTUAL_TABLE builds.
FossilOrigin-Name: 1a632a9a6c85b78abe0351ef91c7478b26299c4c1c269d5796afb1e172084517
2017-07-24 20:01:36 +00:00
dan
fb920e7eb0 Do not attempt to run test file unionvtab.test with SQLITE_OMIT_VIRTUAL_TABLE
builds.

FossilOrigin-Name: 9a5a3d60a5c6ce23bbdab5832f706bee8acdc4b1767aeed82b1aceb294f050f7
2017-07-24 19:25:45 +00:00
drh
e8e0eda95d Handle a real OOM condition when incrblob2.test is run on a low-memory machine.
FossilOrigin-Name: f483d06a9af8d6771090551d911831e1df13bb05a6b7780499594703c28ebbb2
2017-07-24 17:37:35 +00:00
drh
1d8536bc0f Additional documentation on sqlite3_bind_pointer() and sqlite3_result_pointer().
No changes to code.

FossilOrigin-Name: b1572d4e05934a0dc1b73092acba652fa50e97552eb6e9a1cedea7c71055804b
2017-07-24 15:29:16 +00:00
drh
caf8cc1b4b Compiler warning fix associated with date/time functions.
FossilOrigin-Name: a98f07d942f0b8cc15da57b84e6340efae72ff19516fa04624242240af43a697
2017-07-24 14:44:15 +00:00
dan
33447e7793 Add a test for the outcome of a process crash within an xWrite VFS method
call.

FossilOrigin-Name: eb8718006cb23ba9304da5c30d19863d688495f0eaae3794c5ad870e481866f8
2017-07-22 20:12:31 +00:00
dan
4da30f8888 Add the "atomic-batch-write" permutation to permutations.test. This
permutation fails if not run on a file-system that supports
atomic-batch-writes.

FossilOrigin-Name: 9f1b83fae9c973eee80eefefe7bd3a1eb7bba8af4cd919d7a2ce911900dd9087
2017-07-22 16:58:47 +00:00
drh
2df9478f5f Keep batch-atomic-writes turned on for journal_mode=MEMORY, but turn them
off for synchronous=OFF.  Refuse to compile with both SQLITE_MMAP_READWRITE
and SQLITE_ENABLE_BATCH_ATOMIC_WRITE.  Fix up some comments in the commit
logic.

FossilOrigin-Name: 2e80e19e4faac30947ed56aa3601c45c758cafb27f84780df255fdbcdc9a6999
2017-07-22 16:32:33 +00:00
drh
d76dba7eb5 Omit unused batch-atomic-write code if SQLITE_ENABLE_BATCH_ATOMIC_WRITE is
not defined.

FossilOrigin-Name: a89b62c4966cd297326e8712da40e0962d2328d7ba1f201d5abcec911eeef347
2017-07-22 16:00:34 +00:00
dan
9d70954094 Use ioctl(F2FS_IOC_GET_FEATURES) to determine whether or not atomic batch
writes are available.

FossilOrigin-Name: 532bbf1f2b1028db4e581c756533aa660e482d833caaed4eafb299ef9b584f3a
2017-07-21 21:06:24 +00:00
mistachkin
07c3a1a358 Remove stray (and incomplete) comment from a test file. No changes to code.
FossilOrigin-Name: 8de20fc72a9b55fabd2444b2d73c88c65658430d6d182da9f0e2f3432373ab51
2017-07-21 20:31:31 +00:00
mistachkin
172861be76 Fix typo in comment. No changes to code.
FossilOrigin-Name: 65ec077ba63ab84ab8da91033adcf4a57bb9269ebcdd10f9e6c97c265512a80c
2017-07-21 20:29:06 +00:00
drh
d080e3d7ac Additional documentation on the new VFS interface. No changes to code.
FossilOrigin-Name: 83077ec8b5804e6c709fa4f0b50afec9eae6d5b603cc4c3e8a408ed6b2bfaf28
2017-07-21 14:49:58 +00:00
drh
35270d2604 Add the documentation text for the new VFS interfaces used by batch-atomic
writes.

FossilOrigin-Name: 5e944eea5a32cb4d27a2d5ae283b9ce6fe08c1bc584256e8e8c78583c415eb2a
2017-07-20 21:18:49 +00:00
drh
94e32acb56 Transform two #ifdef statements into #if statements.
FossilOrigin-Name: f2c6b5845028ef25dcd17e23e11b93c9f7296c26c7a21718fdae8f4b48c4e1da
2017-07-20 21:01:53 +00:00
dan
d67a97705c Split SQLITE_ENABLE_ATOMIC_WRITE into two options - the original and
SQLITE_ENABLE_BATCH_ATOMIC_WRITE.

FossilOrigin-Name: 7eb9bf2c5b42c39901fd571553c1f70aa5a9dac71fdc8e318b3063b928ad58f7
2017-07-20 21:00:03 +00:00
drh
5acc3bdbdf Fix a harmless typo, but one that would show up in the documentation if not
fixed.

FossilOrigin-Name: e4b1dd36838c4a35913b393b5aad948db9eccfb89b2cd456a0227470d7ac4a26
2017-07-20 20:49:41 +00:00
dan
efe1697191 Add support for F2FS atomic writes. Untested at this point.
FossilOrigin-Name: 416973ede3bde8567d1f2699728f72352979e054ef988d1c1e1cfe4290f6f8b8
2017-07-20 19:49:14 +00:00
drh
4562d0db0d Enhance the built-in date/time functions so that they can be used in
CHECK constraints, in the WHERE clause or partial indexes, and index
expressions, provided that none of the non-deterministic keywords
("now", "localtime", "utc") are used as arguments.

FossilOrigin-Name: a90c062d46c63a1e6f83064b1c5afb26a16e93b6ee8620ca46d169fdb325c488
2017-07-20 15:08:43 +00:00
drh
2fbeb7e8f0 New test cases for date/time functions in indexes on expressions, in the
WHERE clause of partial indexes, and in CHECK constraints.

FossilOrigin-Name: b7f70c7fcabc10b8b3e62fe5ac68476cec23acaee037c7250ff70bca3f3ab541
2017-07-20 14:36:26 +00:00
drh
6e97f8ec84 Combine the Parse.ckBase and Parse.iSelfTab fields into just Parse.iSelfTab.
This fixes a problem with date/time functions in check-constraints.  Add
some test cases for date/time functions in index expressions and check
constraints.

FossilOrigin-Name: 22eda0985ecd1f456c073e6ad735a8417f3ff1fb6aaad1640e1cec01e50c51d8
2017-07-20 13:17:08 +00:00
drh
3e34eabcdf Allow indexes to be created on date/time functions as long as the 'now'
date and the 'localtime' and 'utc' modifiers are not used.

FossilOrigin-Name: 0a5e1c04d9d07bb7fd6546a9ddac1bf42b19ea19c2b79570aea6cd4226887a27
2017-07-19 19:48:40 +00:00
mistachkin
885f410472 Remove some 'breakpoint' commands in test files.
FossilOrigin-Name: d14fc621e918915bbf8e04597eb238ea78dff3d9c5eb4402cb88692d00dbdfee
2017-07-19 18:01:42 +00:00
dan
d4603a2cab Add further tests to unionvtab.test.
FossilOrigin-Name: c93284cd65b6471bffc38696e14dc24a2170698faf566cf91b727ba272f88c25
2017-07-19 11:52:25 +00:00
drh
466004d5a4 Add VFS interfaces needed to make use of batch atomic write capabilities
in the underlying filesystem.

FossilOrigin-Name: 929bc46b8be0111a7b6e3d6fe129f0cad869c6a551bd47569c122742597b9f1c
2017-07-19 11:20:32 +00:00
dan
7f3d20acec Fix a crash in unionvtab caused by a misconfiguration. Add other test cases
for the same.

FossilOrigin-Name: 255d6b99de2bb210c09ebee9f9481ba3d1130fda47e6e01b4cc8411d00679d09
2017-07-18 21:19:17 +00:00
drh
5a75dd86c1 Fix shell.c.in so that it aligns with shell.c.
FossilOrigin-Name: 505fdc8ff5150276d3c6ab6135a542b791e9e79e2f76323e592b73b3fdc9bc2a
2017-07-18 20:59:40 +00:00
dan
ff0a4edb72 Add test cases and fix minor error-handling issues in unionvtab.c.
FossilOrigin-Name: deadaad2a0801b3c30d2a076d8eb006b62d8557cff820e0939741c078477c83f
2017-07-18 20:49:15 +00:00
mistachkin
aecd438737 Fix duplicate test name. No changes to code.
FossilOrigin-Name: 47b80ecc679e656ef865e73809d6a9aa485eceeacab86d10d405881c5d9872bd
2017-07-18 20:30:55 +00:00
drh
3935ce8e28 Fix another harmless compiler warning. Get the MSVC makefile working with unionvtab.
FossilOrigin-Name: d49639c208ac366f6c675ac5671accc2a597558b62a51520194276c61f32d406
2017-07-18 20:28:34 +00:00
drh
65e0f11451 Suppress harmless compiler warnings in union-vtab.
FossilOrigin-Name: 4d147a1e28b93e267889fcb01b538d6a2a58d6b1655512c883fa5b53ddcc60a4
2017-07-18 20:22:12 +00:00
dan
a18532353c Remove an unused variable from unionvtab.c.
FossilOrigin-Name: a447fdf182c9090ca5b6c9c13147ae4b78d22d67f416ee7a0436ca408284c8fe
2017-07-18 20:17:52 +00:00
dan
859e4a73b7 Improve the readability of the unionvtab code.
FossilOrigin-Name: 5bcf0f86ea7fbbc31a13b2d5b1cf93a92e46fb65fe8e779b3d7e4a98d60d7061
2017-07-18 20:03:49 +00:00
dan
090f68a390 Have unionvtab support constraints on the column that corresponds to the
INTEGER PRIMARY KEY field of the underlying source tables in the same way as
rowid.

FossilOrigin-Name: 4a6c416fa025a34116ea30923a673cbb108b251b2676734ec8f603600e38e50e
2017-07-18 19:51:11 +00:00
dan
8342aa0d81 Add test cases to unionvtab.test.
FossilOrigin-Name: 6c9128e1a53f8cf26de9ef1bc07051f2c94287531edacfcfb69d3cd7590240b3
2017-07-18 18:50:37 +00:00
drh
53e86ab36f Add the union-vtab extension - still experimental and under active
development.

FossilOrigin-Name: 948f95046b7eaa8c68617b36625a7500dd0e69e52425ac6d748f2a311eb2474a
2017-07-18 18:19:35 +00:00
dan
46133d98a6 Do not use the flattening optimization for a sub-query on the RHS of a LEFT
JOIN if that subquery reads data from a virtual table. Because it prevents the
planner from creating an automatic index on the results of the sub-query, the
flattening optimization sometimes slows things down in this case.

FossilOrigin-Name: 9dbae1df75219e2accd8993015ce0ffc21966d7e69d04178b1a2cc46207fe260
2017-07-18 17:34:41 +00:00
dan
bbccd52143 Avoid creating an automatic index on the RHS of a LEFT JOIN to optimize an IS
term. Fix for [ce68383b].

FossilOrigin-Name: d2f0b2e859a8a413ee4e4bd7040e450ccd604069e4ea8dbc9ff924718c2b14d7
2017-07-18 17:13:41 +00:00
drh
80f134c8aa Change the default command-line shell history depth to 2000 lines.
FossilOrigin-Name: 0b69aa7e37495f15c3fcc36969b650262b5aa5500fb40800de9a5c56a03f309d
2017-07-18 14:41:44 +00:00
dan
16bab5a7d9 Add test cases to test/unionvtab.test.
FossilOrigin-Name: f2c4a584e83ffcc1cedd39460eb06d6f231a1a87f269bb3e75055232a866067e
2017-07-17 21:03:13 +00:00
dan
bcd303ac7d Enhance error detection and fix other issues in unionvtab code.
FossilOrigin-Name: 9c3f1b9a82e500e015deb0cc669fbb32e7f0cdc69f926ceff383ab946f8d8d18
2017-07-17 20:25:21 +00:00
drh
b98ca04529 Merge all changes from branch-3.20. Improvements to the fts5() extension
interface.  Work around a gcc/valgrind bug in the sqlite3_value_pointer()
interface.

FossilOrigin-Name: e0aca7d2c60d9859750a6e98d3e3b87f79779a45920348fc1bda7f1cb93ef996
2017-07-17 18:45:23 +00:00
drh
06d4940a48 Interchange to branches within an "if" statement in sqlite3_value_pointer()
in order to work around a bug in gcc.

FossilOrigin-Name: 8a606e4abab4efa03f2e5ffc33d7c5faa3c663f339da87b4ce9f3feed5dc7194
2017-07-17 17:46:29 +00:00
drh
72495b44e0 Improved the interface to the fts5() extension mechanism for enhanced
security.

FossilOrigin-Name: bc78235f547977f1a821342ca8f3e03103a0eb351f8b3115ac10b43dd9c7044d
2017-07-17 15:38:57 +00:00
drh
bd3028d7e3 Merge the pointer-type enhancement from the 3.20 branch.
FossilOrigin-Name: 9e8e1c4aa14bcda165b392d1d8af2ce394a56a8e7b67e4c73c742d8da75e73e2
2017-07-17 13:37:07 +00:00
drh
aabebc27b7 Comment changes clarifying details of the pointer-type parameter. No
changes to code.

FossilOrigin-Name: e4579e50a1ece4f65dfdae39d5c1670f0e3f7d4824e7d242f07ec9859d15155f
2017-07-17 12:41:29 +00:00
drh
0357713225 Add the pointer-type parameter to sqlite3_bind_pointer(),
sqlite3_result_pointer(), and sqlite3_value_pointer().  The pointer type is
a static string that must match (according to strcmp()) or else the pointer
is passed as a NULL.  This is a security measure to prevent crossing pointers
between different extensions.

FossilOrigin-Name: e1196567fcbc313657836262ed9f71668b1c47f26e4bc57c7880ff40079d66cc
2017-07-17 12:27:43 +00:00
drh
9a541c0361 Improve the sqlite3_result_pointer() interface so that it cannot be faked
using sqlite3_result_null() and sqlite3_result_subtype().

FossilOrigin-Name: c13264d5ef0470fb24e09f7bc12f19be3b77eab06d41f55607b38dddb532a132
2017-07-17 11:39:46 +00:00
drh
ae3ec3f920 Add an experimental "pointer type" parameter to sqlite3_bind_pointer(),
sqlite3_result_pointer(), and sqlite3_value_pointer().  The pointer type is
a string that must compare equal using strcmp() or else the pointer comes
through as a NULL.

FossilOrigin-Name: 211cce04e97d2e325a6ea3e99738fc71115d673dc13daeffb03ac3140deb11de
2017-07-17 00:40:19 +00:00
dan
d8ecefa5ab Add the "unionvtab" virtual table extension in ext/misc/unionvtab.c.
FossilOrigin-Name: 62a86aa6c0519cf1fa232169122d3d6ae8d2f66b20530fb934a82a15712bd2f0
2017-07-15 20:48:30 +00:00
drh
fe8eadc94d Merge the fix for ticket [a4e06e75a9ab61a12] from trunk.
FossilOrigin-Name: b64d64c84484162d1822430036ba0483365a39ef4cf82cd6a7b9436d9e9f50c8
2017-07-15 20:44:33 +00:00
drh
3963e584b4 Fix a register allocation problem in PRAGMA integrity_check that caused
the same register to be used for two different purposes on the first
ATTACHed database if the schema for the ATTACHed database was noticable
more complex than the schema for the first database.
Fix for ticket [a4e06e75a9ab61a1].

FossilOrigin-Name: 253945d480b052bfe311888022b5eb0be91c8c80cda05036e58207d57520262c
2017-07-15 20:33:19 +00:00
drh
e7c6f97b1d Fix a missing \n at the end of a comment causing a line to be too long.
No code changes.

FossilOrigin-Name: 687bd478710eb827e041533eea67115464f5a0de767bb6cfdbe36a0d3c597fa1
2017-07-15 20:25:22 +00:00
drh
a4e54e868e Enhance the showstat4 utility program to show the full precision of
floating point values in sqlite_stat4 tables.

FossilOrigin-Name: 5ec37c62f65b2870dcd7a906912da787367f3912a96b6f3536355fad65903575
2017-07-15 17:57:31 +00:00
drh
a4d770cf60 Minor change to one of the command-line shell test scripts to make that
script compatible with Tcl 8.5.

FossilOrigin-Name: 47cf83a0682b7b3219cf255457f5fbe05f3c1f46be42f6bbab33b78a57a252f6
2017-07-15 13:49:56 +00:00
drh
13c6fc5c6c First release candidate for version 3.20.0.
FossilOrigin-Name: 035a86ec3e4abd2173bfd0d8666ec86bd85af414cb791e68e6334447ecd35b84
2017-07-15 13:35:17 +00:00
dan
cb0d3ba862 Fix another minor problem in test file like.test.
FossilOrigin-Name: 0953e74612358f48a9c9e3772876b514bc79784f277497121c59302a3106110c
2017-07-15 08:02:10 +00:00
dan
a50b309187 Fix test problems causing the "prepare" permutation test to fail.
FossilOrigin-Name: b61cc5a0f9f2c2d2175ad30fc3fa4cb2086dbb948d5a5cc538ac43b871bb5221
2017-07-15 06:35:15 +00:00
dan
04ed43d64d Fix test problems with stmtvtab1.test under some permutations.
FossilOrigin-Name: ad6699d476b93131887e30475517764e281647f94df4a8248e2b88f1f14da91d
2017-07-14 20:53:21 +00:00
drh
858205d8bd Fix a typo in a comment used to generate documentation. No code changes.
FossilOrigin-Name: 65f9f29c58f61646d700eee6610ce85b572306f0ce2f19bebfd37632523019e5
2017-07-14 19:52:47 +00:00
drh
749e4a9fd1 Identify requirements text in the SQLITE_DBCONFIG_ENABLE_QPSG documentation.
Add some implementation marks for SQLITE_DBCONFIG_MAINDBNAME requirements.
No code changes.

FossilOrigin-Name: ab165dcf35ae7385c9366853ce5648294bf5dc9aa9ffe1af84243e6fac3472fc
2017-07-14 19:47:32 +00:00
drh
3cef364966 Add requirements marks for some of the new features in the 3.20 release.
FossilOrigin-Name: 264238671379306b14d62a6ddaefd2a20acd34ca77276b6ce872253160fe0146
2017-07-14 19:22:08 +00:00
dan
380c7ce460 Tweak Makefile.in so that testfixture can be built with the
--disable-amalgamation configure switch.

FossilOrigin-Name: 394c6f4f4376bc3d7796ea4157ba2ae230b0ca950774eff127ae6ef8a7b08602
2017-07-14 19:12:26 +00:00
dan
0e6b83088f Modify mkopcodeh.tcl so that it can handle "same as" opcodes with values
larger than the total number of opcodes.

FossilOrigin-Name: 1eb56fe0305f0841b14865b7560add3da529b211328f5fa171b9628418a6ed49
2017-07-14 17:50:11 +00:00
drh
c9fb27bfa8 In the LSM1 virtual table, dequote the filename before opening the file.
FossilOrigin-Name: 6ed4ef03ff6f22ae83a14facc48ce594911d7d7b37446436b68af3a822578fae
2017-07-14 15:57:56 +00:00
mistachkin
59541d70a8 Changes to the LSM1 Tcl tests to make things work on Win32.
FossilOrigin-Name: 7dc5e70ef1faa0b51a04abdfe1ee2f9ea5c2d0f99ea8ef6260b9de02500cf8b2
2017-07-14 15:45:27 +00:00
drh
a199ffca58 Include a hint in the header comment of the LSM1 makefile about how to
set the LSMOPTS variable.

FossilOrigin-Name: b5e3b264814cde9572130b70fc0d21ccebc2d7f5f0e7db50b6395cb63723383e
2017-07-14 15:42:11 +00:00
drh
aa15168983 Update the Makefile for LSM1 so that the LSMOPTS can be set prior to
including the Makefile, in order to add platform arguments such as -fPIC.

FossilOrigin-Name: fe319bcd7f85e9997babdb024ab350514524f5901903600fa9780bdcd1805098
2017-07-14 15:32:11 +00:00
drh
3eddffd8bb Fix a typo in the header comment to the remember extension. No code changes.
FossilOrigin-Name: 604b9664f4dd6e8d188b5c57407edbbe0639345f8d30bf2d19016f8324934840
2017-07-14 15:18:51 +00:00
drh
e83b847b75 Change the name of the STMT virtual table to SQLITE_STMT. Also remove the
first column of that virtual table, which was a pointer leak.

FossilOrigin-Name: 1bc4e93407b7894b0271fbde3720930dcaadda6070e871d9719c4e8dc65b915f
2017-07-14 15:14:21 +00:00
drh
923260c865 Minor updates to requirements marks and documention. No changes to code.
FossilOrigin-Name: 8f6dd5e2907d6df230fcbceadd226496bcc35a33c117da58215f7d333c1cc7b8
2017-07-14 13:24:31 +00:00
dan
4b8035e69b Add very simple tcl tests for the lsm1 extension.
FossilOrigin-Name: 5e0a97930b08fff1c3a29f5c8b2962b856e3302209228c0e71b9f1a1bd2a4be3
2017-07-14 11:40:48 +00:00
drh
17ca22616b Minor tweaks to documentation. No code changes.
FossilOrigin-Name: d8cd0434f3451e27aefe38a1a9efdc4dfded2ea33baf25d82814c89264f3afff
2017-07-14 04:16:03 +00:00
drh
968d8715fd Fix harmless compiler warnings in the readline tab-completion logic of the
command-line shell.

FossilOrigin-Name: 271ca4acfcff448cf863045595d2c2616decd13b6015d7db481c91e2ad5bb92a
2017-07-14 00:28:28 +00:00
drh
33b46eeb35 Improved documentation for the new sqlite3_bind_pointer() interface and its
cousins.

FossilOrigin-Name: 889968bdbf1c258238cb68d82f059e16366c4a40c2d541dd4a1811ab72e693cb
2017-07-13 22:39:15 +00:00
drh
4ba5f33f39 Improvements to the documentation for SQLITE_PREPARE_PERSISTENT.
No code changes.

FossilOrigin-Name: 265778142485882f39edfb5756175b2675c1993f0d6395dabbcbbb3767c6ec77
2017-07-13 22:03:34 +00:00
drh
06aecf0954 Fix documentation typo. No changes to code.
FossilOrigin-Name: 9319f7b71f68c9dc64c22c60b90650955b72f6bd9852d5ea86fa96a5c6fede37
2017-07-13 20:11:52 +00:00
drh
c9407508b1 Update header comments on the carray() and remember() extensions to bring
out the fact that the pointer arguments must be bound using
sqlite3_bind_pointer().

FossilOrigin-Name: 55f5396576d186f310cb0fa66fbdb8ea68c18a3d0fe5de4b395ea03c7aa04c9e
2017-07-13 19:11:13 +00:00
drh
96b10030e9 Add new interfaces sqlite3_bind_pointer(), sqlite3_result_pointer(), and
sqlite3_value_pointer() used to safely move pointer values through SQL without
exposing underlying memory address information.

FossilOrigin-Name: 72de49f204277191f62601cce70d5013ec30b564a01063f1e841019c78ae6c77
2017-07-13 18:09:36 +00:00
drh
4c997c6e75 Fix an incorrect type signature for the loadable extension pointer
for sqlite3_result_pointer().

FossilOrigin-Name: 0bd7875bd9948836a14061275eb8ddac627f562a49f59f400ec98c00e2be82c5
2017-07-13 17:56:52 +00:00
drh
5587d86ddd Add the three new pointer interfaces to the loadable extension mechanism.
Update sqlite3_value_subtype() documentation to remove the statement about
it not being used internally.

FossilOrigin-Name: e5a518038fcb23376d2b17d4d70648320bc5540c5bd8b164201044ebe1ce45c5
2017-07-13 17:54:12 +00:00
drh
d43748aa98 Update the FTS3 extension to use sqlite3_result_pointer() and
sqlite3_value_pointer() for passing FTS3 cursor objects from the table
into functions such as snippet().

FossilOrigin-Name: 0fa2e170e5e078d155c98b212ade36bd8424502ae07f2d82ebf77a76f57586ba
2017-07-13 17:48:14 +00:00
drh
3fb406083a Merge the latest changes from trunk.
FossilOrigin-Name: a54be6e041a9185787a22b86603dcb0654e5e4af71225b556d1b6279f8520ad8
2017-07-13 17:34:46 +00:00
drh
0c2433003d Smaller and faster implementation for vdbeFreeOpArray() and freeP4().
FossilOrigin-Name: 0c80593520d30958231be41fc443209eb39e0b3ee0e66308c3ef3a0f4cb8ea66
2017-07-12 20:43:23 +00:00
drh
7ccf95dbab Fix harmless compiler warnings about incomplete structure initializers.
FossilOrigin-Name: 604c11d1a39f09e47b6fcee0f8b1c1054f9dbbc7b2c1cf93312aeaa4b7095018
2017-07-12 18:05:54 +00:00
drh
980a89e630 Remove unnecessary EP_Leaf settings on the Expr object.
FossilOrigin-Name: f951c8b71b2369da62a329c792af5e3d3087bbe020f38c68ca1d0a594b904c08
2017-07-12 17:26:44 +00:00
drh
971ecd7eaa The EP_Resolved flag on the Expr object is not required for correctness nor
performance, so remove it.

FossilOrigin-Name: 54f55d3b7973e326541a81bfb2e752a2f6618e4fec9a3631b95f28e12e9c6e34
2017-07-12 17:08:24 +00:00
drh
ec360a8d01 Clarification and simplification and result column naming logic.
FossilOrigin-Name: 68824a439b76a4cca05609a02de7abdc42bd1d26afbfcd047b90001c610d3c56
2017-07-12 14:10:19 +00:00
dan
47ebd4cadd Fix a problem in an lsmtest test case caused by writing data in "text" mode
instead of "binary".

FossilOrigin-Name: 3e56a79ad8754e6da3181883154fa1c8b227a8d16c9b2a3eba925371595ae1f9
2017-07-12 14:03:13 +00:00
drh
f0f44b79c9 Compile cleanly with SQLITE_OMIT_UTF16.
FossilOrigin-Name: 783100b801703577e35ec12fe7623e1797e49699f3b8deb0694ef061a142b844
2017-07-12 12:19:33 +00:00
dan
1cd523cf0f In lsm, attempt to unmap the database file before truncating it when
disconnecting. A mapped file may not be truncated on win32.

FossilOrigin-Name: 39069941e98605bc8c7c736819781761760ee2b83363471ceb6f19e5eb06b13a
2017-07-11 20:36:35 +00:00
dan
416b8694fa Simplify the way in which the database file is truncated when the last
connection disconnects. Also ignore the error code from the xTruncate call -
as truncating a database file is always optional.

FossilOrigin-Name: b0a49d90fc91acca1306cf6145adc83acd368686768b7eb4a3b27515b3237396
2017-07-11 19:55:38 +00:00
drh
8999798e60 Fix harmless compiler warnings in the core.
FossilOrigin-Name: 55e93f256018757e5e1cb3b10ef48abf5914e7687419eae58b00998a37061261
2017-07-11 18:11:33 +00:00
mistachkin
ba334bb20d Make win32GetTimeOfDay() in the lsm1 test code more portable.
FossilOrigin-Name: 2fe3a84330063378ca9fc5bfc8efe486c52d50b5c40be4f402a4f2318be69436
2017-07-11 17:54:27 +00:00
drh
db3e0456d2 Enabled the new sqlite3_prepare_v3() and sqlite3_prepare16_v3() interfaces
for loadable extensions.

FossilOrigin-Name: b9debd626a68c4bc0e5fdeb8d15a991cfe6f62f9586eda76c07a1c18e498e3c2
2017-07-11 17:28:27 +00:00
mistachkin
b7bfc3b12d Fix a whitespace alignment issue in lsm1.
FossilOrigin-Name: a8e651e0e52b016c3939df3ee23b4981f1a8841c7ddd2981c1ef391feb559a5e
2017-07-11 17:06:42 +00:00
mistachkin
36c68234d6 Fix more harmless compiler warnings in lsm1, seen with MSVC 2015.
FossilOrigin-Name: 0f1307f1f5638c1c4f1ce2b89cdef7ce8b76dc2a38685cd1ca152cde9e8727da
2017-07-11 16:46:41 +00:00
mistachkin
1be5051923 Fix harmless compiler warnings seen with MSVC for lsm1.
FossilOrigin-Name: cf6da4a52f7f9047e653ef2972e4c0910b29d7182d789a9e30225dc1849e8779
2017-07-11 16:36:10 +00:00
drh
56eb09bc23 Add support for tab-completion (using the ext/misc/completion.c virtual table)
to the command-line shell.

FossilOrigin-Name: 95cd1d9f8baa6be305c9a8bfa26fef2a403f2d5b3b5c9c55382ec04f0bc98d40
2017-07-11 13:59:07 +00:00
drh
2ce15c3f4c Change the src/shell.c file so that it is generated from a new script at
tool/mkshellc.tcl and the template file src/shell.c.in, and automatically
includes the extensions it needs out of ext/misc.

FossilOrigin-Name: 17e0bb12d82b510b86b6886b9fd0faf39b60b1374027344f89d7b89a32b842b9
2017-07-11 13:34:40 +00:00
drh
e2b01012bc Fix a backup2 test case so that it works on FreeBSD.
FossilOrigin-Name: 724819b456ca7a5ca6d68415b3b3554741c3ddbb5c416cb6b6b5fc54177f426e
2017-07-11 02:53:38 +00:00
drh
f3c0009d8b Add the "phase" output column on the COMPLETION table-valued function, for
debugging.  Improved comments on the implementation.

FossilOrigin-Name: 0e2135552757cc6566ac959475d3b87254b6d462425ee6c457c743001f3370e2
2017-07-11 02:05:21 +00:00
drh
dc4dde6bd9 The COMPLETION virtual table now looks at the names of databases, tables,
and columns in addition to SQL keywords.

FossilOrigin-Name: 1cc97711fa86a3938f0930200476d1b0991e4b893a8be3a19015423a3de56bef
2017-07-11 01:38:45 +00:00
drh
3265b5649e Incomplete implementation of the COMPLETION table-valued function. So far it
only works for SQL keywords.

FossilOrigin-Name: caefbc723b5f67afc5ef10b92b20400cbb76cb03e7e75e18d2726cc552083e09
2017-07-11 00:09:44 +00:00
mistachkin
b2950c48e1 Fix harmless compiler warnings in lsmtest.
FossilOrigin-Name: bd8a1fb9b33418717c786a7275f636cd4d5facd66de9a416f948b61c6490c743
2017-07-10 21:32:11 +00:00
drh
4a9e14077e Fix errors in comments in the STMT virtual table. No code changes.
FossilOrigin-Name: 9a8f045d62f5c6593a5a2842e817b49fa9d00c74e329a15a326f74e583c1f767
2017-07-10 20:39:59 +00:00
mistachkin
240e7ef4bb Minor cleanup and refactoring of the Win32 VFS for lsm1.
FossilOrigin-Name: bf7eda67c8124c3cd5d9150f2f2694cd3f991b20e0a527398885976d0d787242
2017-07-10 20:33:50 +00:00
drh
a868639656 Another spelling error in the README.md file.
FossilOrigin-Name: 0512937425df6f274153f1d822fc4fe358601c2944745c0039c40e645ebedd82
2017-07-10 19:54:48 +00:00
drh
e1869a91d6 Spelling error in README.md
FossilOrigin-Name: 12bc47c50252f1307b224d171069b93192d0c905aadf480829bba390c059aee4
2017-07-10 19:08:59 +00:00
drh
764fb30330 Yet another typo in README.md
FossilOrigin-Name: 75c9327b551d072effbb37efebf5fbe1a45965f89fe285df364dda06ca866cd7
2017-07-10 19:07:11 +00:00
drh
67d5bf9118 Fix another README.md typo.
FossilOrigin-Name: 20b1f0eff175aa8be9a7a631ede0a434f6c340fcdb931633e1f228d1fb35abde
2017-07-10 19:05:58 +00:00
drh
14d5ff4202 Fix an obsolete statement about Lemon in the README.md file.
FossilOrigin-Name: 4f6ce7a38baef24e00818926b9b8dc852334e3d4011f1d3a577c8c7e5f7ed93e
2017-07-10 19:03:04 +00:00
mistachkin
91ea8cf4ac Cleanup header usage in lsmtest for files that require _O_BINARY.
FossilOrigin-Name: f3a6a64ec90e6cf24aadf62aef4f92104be5ba6790f7fca040eff7abc31f1061
2017-07-10 18:57:03 +00:00
drh
7ff64dc2bc Updates to the repository README.md file.
FossilOrigin-Name: 7bfd3ab7996bf869eb2705495f3f2cd8bd6d1f4d029a1f26041e95049a9bfd3b
2017-07-10 18:52:29 +00:00
dan
ff7733db52 In LSM, avoid calling the VFS xTestLock method to test for a lock that
conflicts with one held by the same process. The results of such a call are
considered undefined (since they are different under win32 and posix).

FossilOrigin-Name: a82a9bea624caf6b24d8e3f3c596817968b258f06e54288022f6df8226281057
2017-07-10 18:33:41 +00:00
drh
dbc26722cd Add the "--newlines" option to the ".dump" command in the shell to disable
the newline escaping mechanism.

FossilOrigin-Name: bde431b1e332feaeb516dc46d180e2b2f42820c471feed7eda89452ada898dc9
2017-07-10 18:04:41 +00:00
drh
90e39ec349 When multiple constraints need to be evaluated for a row, do any constraints
that involve correlated subqueries last.  Hence, the priority is index-covered
constraints first, correlated subquery constraints last, and all others in
the middle.  This is a
follow-on and improvement to the push-down optimization of check-in [d7bb79ed].

FossilOrigin-Name: c4cb90487f34937605732c3959891075e2aabfb0bd05e55c44565d65867093ea
2017-07-10 17:00:31 +00:00
drh
66a0bf31cc Additional debugging Noop-comment in the constraint generator when
wheretrace is enabled.

FossilOrigin-Name: 0ca7474f05e9f27f53f8c71f5a3ff99963ffef9be9c147869e096246d552d6f1
2017-07-10 16:38:14 +00:00
drh
e24b92bce7 Small performance optimization in sqlite3WhereExprUsage().
FossilOrigin-Name: 38edc6770e54e456500e77389d42fdf39e9a7ed258a4e1fed3c6dd8fdf4dfcb7
2017-07-10 15:26:09 +00:00
dan
d3930b1266 Fix another problem on this branch.
FossilOrigin-Name: a4fc98113aeb10860834f68a2fdcef690ea15d8303d23b6dd416994a4b7edab6
2017-07-10 15:17:30 +00:00
dan
8674ec5a7f Fix a problem causing non-covered WHERE terms to be evaluated before covered
WHERE terms.

FossilOrigin-Name: 7d3cb39f60951dcec1ff87da2c4ec998f993de5edf49ee5e5f480c6fe4e5a052
2017-07-10 14:39:42 +00:00
dan
ebc63013b7 When testing non-indexed WHERE constraints, test those that involve
correlated sub-queries last of all. This increases the chances of not having
to run the sub-query at all.

FossilOrigin-Name: 1f9c1f359e4693954ba7e2bc7b172ef34eb046e4ca2796df8336975b9d6aa92b
2017-07-10 14:33:00 +00:00
drh
9f6e14c1ef For sqlite3TreeView() debugging output, show the Expr.flags field on
scalar subqueries.

FossilOrigin-Name: dc857a96b00f13ffdf77bc222bc5acbbe14a36ca51e5368b568b3177d1be737a
2017-07-10 13:24:58 +00:00
drh
ff4fa772f5 Update error message text for standard error codes to better describe the
latest usage of those error codes.  Modify sqlite3_open_v2() so that it does
return a valid sqlite3 object in the event of SQLITE_MISUSE due to bad
open flags, so that sqlite3_errmsg() does not report "out of memory" in that
case.

FossilOrigin-Name: f27b6370407842e2c175ea4aa9ce018723c57eaac0cccc1f8399bc20f33324be
2017-07-10 12:07:53 +00:00
drh
e75be1aedb Remove the error message text from disused error codes such as
SQLITE_EMPTY and SQLITE_FORMAT.

FossilOrigin-Name: 871752f2925ee14bdd3e994c00832d00860c03f6f28e63504aa6d35978b7f37c
2017-07-10 11:17:51 +00:00
drh
155507b344 Always make "column%d" column-names 1-based, never 0-based.
FossilOrigin-Name: 70096c505d702a9646da24613da387cee19afcf395d0294b3797c5ab50bb3ee2
2017-07-09 18:55:29 +00:00
drh
d7ca600ede Make sure the columns of a VALUES() clause are named "column%d" even if
the VALUES() clause is a subquery in the FROM clause of an outer query.

FossilOrigin-Name: acf3b9cc9c3932431979995a1dceacc06c659ab400fad95ce3728ff8895a022b
2017-07-09 00:30:58 +00:00
drh
2aa31333c2 Add the --icc, --gcc7, and --orm options to the speed-check.sh test script.
FossilOrigin-Name: 70dae08a9a6e35416f7268b9a95f3c8562b74697918bd1e9d5b5cf4719b9d075
2017-07-08 22:30:30 +00:00
drh
12ca0fc259 Basic test cases for PRAGMA secure_delete=FAST.
FossilOrigin-Name: 0c246017b45c5290f3a7932dfce649f1a6d8f9afc00c6c3edf2ef06c17dbca1d
2017-07-07 22:47:32 +00:00
mistachkin
50963c9da8 Fix comment in the Win32 VFS for lsm1.
FossilOrigin-Name: 12a421bcacf72128426eeafed8663accd8f2ac7edb46f620b60b8239065e657e
2017-07-07 21:20:26 +00:00
mistachkin
85bd1cd52b For lsmtest, use a more portable means of setting open() files to binary.
FossilOrigin-Name: aea6e0ffd33f41482f1b53b9f21b77add2865abda4eec1d9ee197177f74f43d0
2017-07-07 21:15:24 +00:00
mistachkin
1d91e9f26a Adjust copy_file() lsmtest function so it works properly for locked database files on Win32.
FossilOrigin-Name: 54a3855583deac93c955ed77fe82be6a6b7aadd3fdb7e6b895888e2a4ff530bd
2017-07-07 20:35:14 +00:00
drh
08f1efeb16 Add the "PRAGMA secure_delete=FAST" option, which overwrites most deleted
content without increasing the amount of I/O.  Deleted content might persist
on the free page list, however.  And extra CPU cycles are used for zeroing,
of course.

FossilOrigin-Name: 38978ce65b280bb7cba3fc08ba91485fb1b84cd9fbba2e950ecf41c021ff452a
2017-07-07 20:06:28 +00:00
drh
a690ff360b Change the error message text for SQLITE_ERROR to omit the part about
"missing database" as that meaning is now obsolete (since approx SQLite 2.0).

FossilOrigin-Name: 732f90d6327c5c6368fc8b4cc207bd644ef08e3ae6d2e7295258ab099deaba63
2017-07-07 19:43:23 +00:00
mistachkin
b11c650c01 Fix typos in Win32 VFS for lsm1.
FossilOrigin-Name: 0961ec873b78ad2da0ea9cdf2934bc8f08276375a153fe5d9fa8d4280328deef
2017-07-07 19:22:35 +00:00
mistachkin
73518c5876 Fix the memcpy calls in the lsmWin32OsShmMap function for lsm1.
FossilOrigin-Name: aa4890b9f9e9698c61d6ca0e24c26280f5e0a87a8c02865933ad483a1fd44d84
2017-07-07 19:12:55 +00:00
mistachkin
a2d85cbbfa Enhance the MSVC makefile 'clean' target to handle lsm1.
FossilOrigin-Name: 2d6faebc319aefeab796c5f2ead4c3c3e2a9dd25c979a16bdb555a109135b13c
2017-07-07 19:02:51 +00:00
mistachkin
9a7a77ad36 Add support for LSM_DEBUG to the MSVC makefile for lsm1.
FossilOrigin-Name: 277a7fedafbe5b43d44086f3cb73e952873913bdc4b51041f45b6571b386d7d9
2017-07-07 18:31:51 +00:00
drh
a7a0bfab91 In the command-line shell, when running ".schema" give a sensible error when
the database file is locked.

FossilOrigin-Name: cc329eb8d65171f3f4fcb39b0e55ef85c97a77f3510cf864bbc1537f993d0074
2017-07-07 18:06:49 +00:00
mistachkin
9b8c5f6819 Fix the usleep() macro in the Win32 test code for lsm1.
FossilOrigin-Name: 63599fa524a7c72ffa5362041f2ec394d9af9c43025d8b6d5a34e98eb423d5ff
2017-07-07 17:57:21 +00:00
drh
d5eae667f4 Add new PRAGMAs: "function_list", "module_list", and "pragma_list". All are
enclosed within #ifdef SQLITE_INTROSPECTION_PRAGMAS.  The compile-time option
is not on ctime.c yet, since these are still experimental and one can always
test "PRAGMA pragma_list" and see whether or not it returns an empty set.

FossilOrigin-Name: e0b6ae92adfae46f64fc2e2719e22e5467c34d49c1aeaec5cc5faf04258de0f7
2017-07-07 17:43:30 +00:00
drh
8ae11aac93 Add the "Pragma_list" pragma. Put all three pragmas created on this branch
inside of #ifdef SQLITE_INTROSPECTION_PRAGMAS.

FossilOrigin-Name: 2f3c3781ef3d66ecafef083d7144287ff23eea5a6d93b014dfeb2a8ac71f757e
2017-07-07 17:33:07 +00:00
mistachkin
e60092b90c Improve clarity in the Win32 VFS for lsm1.
FossilOrigin-Name: 9c7a9e805d95d3d4a3f7e2d608280b7ca0dda01114e32cd366b1deb14e6e6839
2017-07-07 16:46:08 +00:00
mistachkin
baebf3cc4b Add support for LSM_DEBUG_MEM to the MSVC makefile for lsm1.
FossilOrigin-Name: 3340de83df8c4fb19f729e6ff0838a9a03a1e701cdb40cb830e76f294198024a
2017-07-07 16:29:37 +00:00
dan
45158fa5d9 Remove a block from the Win32 VFS for lsm1 that is now superfluous.
FossilOrigin-Name: 5f726f2830dcf91f5e5c010b10761757f746d39b9dd2b8c9770452ce65bb1652
2017-07-07 16:27:43 +00:00
dan
3bc909b0af In lsmtest, use an empty string instead of ":memory:" when requesting a
temporary database from SQLite. This prevents other test code from trying to
unlink() ":memory:", which fails on win32.

FossilOrigin-Name: 281ad505d7a112c5524ea9fb195dfc46f819a58f79f42b37b12fbfe46a089ff2
2017-07-07 16:09:24 +00:00
mistachkin
5bd9e61f05 Remove a block from the Win32 VFS for lsm1 that is now superfluous.
FossilOrigin-Name: db4a41408eff450ee429b936847313c2c92ba1f5b1fcbadaacaff3c08bfdd589
2017-07-07 16:07:53 +00:00
mistachkin
d429ec222c Memory reallocation fix for the Win32 VFS for lsm1.
FossilOrigin-Name: 5a3140e4dedace6de4366a3c52e41b818b6d19f356fdab738c6605afc1b674fa
2017-07-07 16:06:30 +00:00
drh
40cf27cb63 Enhance the sqlite3VdbeMultiLoad() interface to automatically generate the
OP_ResultRow opcode on PRAGMA implementations, for a small reduction in the
library footprint.

FossilOrigin-Name: c46f0f076c674891e20240bad56693d891aedc43004bcf980a5d199515f23413
2017-07-07 16:00:53 +00:00
drh
ab53bb635c Add new pragmas: "function_list" and "module_list"
FossilOrigin-Name: e5f01d7fde05fdb547f35816ff15c31a92c170b31877f4c640b7bc2be3f580b3
2017-07-07 15:43:22 +00:00
drh
4676462f92 Merge recent enhancements from trunk.
FossilOrigin-Name: 73d0fc027ddcc24e55cdc8c54443a96083cc9a29e57c0abe97e8586ff8a7f4c5
2017-07-07 14:26:43 +00:00
drh
d10866798d Exploit the fact that Expr.pRight and Expr.x are never used at the same time
for a small performance gain.

FossilOrigin-Name: aacbb9a461fdb34c7f9c8ce348e44c3e96c93334f210d438d92bfac1794dc686
2017-07-07 13:59:34 +00:00
drh
c2d14a9a33 More efficient and compact implementation of walkExpr().
FossilOrigin-Name: 115d4b83392d346634866dd959bef30fca50db2e526df17eaeb3d94da7fc895e
2017-07-07 12:58:30 +00:00
drh
b98a2e351e More aggressive use of EP_Leaf on expression nodes, to help prune searches.
FossilOrigin-Name: c1a1d68c8219c8072e60af5c46a30849ae9a04fa1a6b2a8b22b82fec069d691d
2017-07-07 12:43:57 +00:00
drh
3da70a6112 Very slightly smaller and faster sqlite3WalkSelect().
FossilOrigin-Name: 9bc65635b29a4991c7821ef0939975d007f9ac23716717699353ef3246e27791
2017-07-07 11:49:48 +00:00
drh
0db5bfe5de Small adjustment to main.mk that facilitates giving non-standard compile-time
options to the shell.

FossilOrigin-Name: 7c7d53a9bbc27fde2dcc028cb7765c76cad0a784e53095b652c90d371968c53d
2017-07-06 22:43:41 +00:00
drh
a0c3927510 Change the (machine-generated) keywordhash.h file to increase the scope of the
tables used for keyword matching, so that the tables are accessible to
functions other then keywordCode().

FossilOrigin-Name: c5ed5ebdf660501fde7cc8aefaaaeae2a68e5899a64ac93f26684842a235281d
2017-07-06 16:33:14 +00:00
drh
9d8e401c2d More compact implementation of the typeof() SQL function.
FossilOrigin-Name: efb4aab0caa4145732a5438cc2a193bc12c455b4007220564d240e75900ea8ad
2017-07-06 13:51:50 +00:00
drh
ebaaa67db2 Avoid unnecessary upper-to-lower case conversion for function names when
registering the built-in functions.

FossilOrigin-Name: 06269257647db51fbc9f8cda88abac5db28b6f917a509768af7686dfa2b94511
2017-07-06 13:23:26 +00:00
drh
3b02e0f615 Small size reduction in findCollSeqEntry().
FossilOrigin-Name: 55ecd30304517acd23f89b3450fd6a5e18ac2f79aa24a4ff693f8d71a49f7837
2017-07-06 03:06:20 +00:00
drh
666e86625c Avoid unnecessary calls to sqlite3GetCollSeq() for a small performance gain.
FossilOrigin-Name: 503ba172e4c32e288abf006fc5cb53fd2b0313c4ee4c526c2d9c4c21b7178f2d
2017-07-06 02:49:26 +00:00
drh
07a3b11a50 Slightly more compact implementation of the byte-code generator for
the COMMIT and ROLLBACK commands.

FossilOrigin-Name: 4da663d9863004d8cef58259a043fdcf4f466f80d3714cf58321a52485be8766
2017-07-06 01:28:02 +00:00
drh
169a689f7b Small performance increase in sqlite3SrcListAppend().
FossilOrigin-Name: 7b2623f1994384484cf31ae9e443ee20f19b278bf2e91898dbc01828822ddf91
2017-07-06 01:02:09 +00:00
drh
a35d851892 Make the hash table implementation a little smaller and faster.
FossilOrigin-Name: f762f1effe1ce893d6b67815ad8b585bae2c1621d9199dac9c85d39dad16e774
2017-07-05 23:33:33 +00:00
dan
adea0d1c39 Have fts3 virtual table cursors free internal resources when they reach EOF,
instead of waiting until the xClose method is called.

FossilOrigin-Name: b6b14ab6c8f9758a64e5fd29203f8fa610b5c4ef917de9be51ae55e072fad4ed
2017-07-05 18:48:07 +00:00
dan
7181395a4d Fix a problem in lsmtest causing one test to fail for multi-threaded LSM
connections.

FossilOrigin-Name: 2bce64c8864b616f9ab0063f64d0ceb2f83e53e110970c6b3b11003cba5c8804
2017-07-05 14:29:04 +00:00
drh
269ba80469 Add the count-of-view optimization when compiled using
SQLITE_COUNTOFVIEW_OPTIMIZATION.

FossilOrigin-Name: d1ba200234f40b84327c7fc28c2584ed069da80e97578df71114d1a9ba9c559c
2017-07-04 19:34:36 +00:00
dan
431a53fde2 Fix further OOM handling cases in LSM.
FossilOrigin-Name: ca757c8665e27de884086b2aab2bd1db481e2d12f2afe136ec151bf5a0e65b91
2017-07-04 19:23:32 +00:00
dan
038af0bdc6 Fix a couple of problems in handling OOM conditions within LSM.
FossilOrigin-Name: 989a5c1745a7145c14c6d9b713176ecba6b99296de8bdd09f666eeef10da9c2e
2017-07-04 17:25:45 +00:00