aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Fix test cases so that they work with the new EXPLAIN QUERY PLAN outputdrh2018-05-02
| | | | | | format. Only some of the cases have been fixed. This is an incremental check-in. FossilOrigin-Name: 5f0e803e33aa557865d5fc830d9202d628de9a94c9757058ca48f1a560702cd3
* Improved EQP output for recursive CTEs and multi-value VALUES clauses.drh2018-05-02
| | | FossilOrigin-Name: f2f525548c65f89f55cbe91da8a21512dedc6f7b68b58b7906d653e800a2963a
* Fix a dangling-else problem that was causing recursive CTEs to malfunction.drh2018-05-02
| | | | | Begin fixing test cases to work with the new EQP output. FossilOrigin-Name: 82ca44b82fed6814c84440ba8bfaa019488ab956e84ac165180e2fcece6facb2
* Improvements to the EQP display for compound select statements.drh2018-05-02
| | | FossilOrigin-Name: 699a77e479010a331b0423f157a2fbfc373688e3d0d04ae5e64376c00cb3d488
* Begin reengineering the EXPLAIN QUERY PLAN function to provide moredrh2018-05-02
| | | | | intuitive output. FossilOrigin-Name: 70b48a7972dfbb44af3ccd8ccd830e984bec88d80a78b3566a5de86a16e7fc14
* The SQLITE_ALLOW_SQLITE_MASTER_INDEX compile-time option allows a CREATE INDEXdrh2018-05-01
| | | | | | statement against the sqlite_master table. Once created, the index works, and is usable by legacy instances of SQLite. FossilOrigin-Name: 853f3163597b9946c0cbeb808ea6fd33a0cf48ae6b8f4459c4165db377f33a9e
* Add the SQLITE_DBCONFIG_RESET_DATABASE control as a replacement fordrh2018-04-28
| | | | | | the reset_database pragma. Resetting the database should be hard enough to do that it cannot be done by accident. FossilOrigin-Name: ff836cb8b0377c5970ecb2b797702e2b5d208eda443ecbd55f4c238a3094b28a
* Merge updates from trunk.drh2018-04-28
|\ | | | | FossilOrigin-Name: 94877e495c563f101b51cd8891ca7665c7aab87ff526157f1dc1781e0a2a5d87
| * Prevent deep recursions on nested COLLATE operators.drh2018-04-28
| | | | | | FossilOrigin-Name: 6e098ee415f1a530e17a942c9ba51d67c25a3ebff6b97377b7858d0b10bcec92
| * Add comments about the intended use of the sqlite3_data_directory variable ↵mistachkin2018-04-28
| | | | | | | | | | as it pertains to the sqlite3_win32_set_directory function. FossilOrigin-Name: d11c419756ce28fcc1f58df6bbe59a3d8d19d0441970aa7bfa216ba915ceddf5
| * Document and expose sqlite3_win32_set_directory() function for use on Win32.mistachkin2018-04-27
| | | | | | FossilOrigin-Name: cbce7180ee664367ee8fc1f8af703eb7845bb58ade6870cc3b7608dcbe5952b3
* | Add the "PRAGMA reset_database=ON|OFF" command. When on, it causes thedrh2018-04-28
|/ | | | | | database to appear to be empty, causing the next transaction to reset it to an empty database. FossilOrigin-Name: 02e1a13c1f04bb72599b98f51240c78d0d050de264fef5808fd97db3f4c16dac
* The previous fix for ticket [d85fffd6ffe856092ed8da] in check-in drh2018-04-26
| | | | | | | | | | [0a514e62ad1ebe5c12da8dae] did not completely address the probably in that it only worked for cases where the OP_SCopy that loaded the register was the last instruction in the sequence for the expression, which is not necessarily the case for expressions like CASE...END. This revision prevents the registered that will be recomputed from being cached in the first place. FossilOrigin-Name: 9fd0faf517993587d2f54212638545fc85fbbc84a031bcfae8c1e5894825d83b
* When processing an "ORDER BY ... LIMIT" that does not use an index, checkdan2018-04-26
|\ | | | | | | | | | | whether or not a record may appear in the final result set before adding it to the temp b-tree used for sorting. FossilOrigin-Name: 0fcfc36ceb820fc70136b799a0405fe92e50646e697be2872bbe9a53a05ed5a9
| * When processing an "ORDER BY ... LIMIT" that does not use an index, checkdan2018-04-26
| | | | | | | | | | | | whether or not a record may appear in the final result set before adding it to the sorter. FossilOrigin-Name: 71bf91c218334381b1b4bdba6a093e623b62e17f3e8550e154a11f0cb0b404f3
* | Ensure that new.* values of an UPDATE do not get clobbered after thedrh2018-04-26
|/ | | | | | BEFORE triggers run when unmodified columns of the row being updated are reloaded. Fix for ticket [d85fffd6ffe856092ed8da] FossilOrigin-Name: 0a514e62ad1ebe5c12da8daed429ae2f9d9910471d3c5cef3b6870bdadfefca1
* Clarification of the behavior of a BEFORE UPDATE trigger when the triggerdrh2018-04-26
| | | | | | changes the values of some of the columns used to compute new columns in the UPDATE. FossilOrigin-Name: 7bb23c2a3d37f0d5e5515b917860818906819d54a0066e1ba8e9792a82f7d279
* Improved VDBE comment on the OP_Param opcode. No substantial changes.drh2018-04-26
| | | FossilOrigin-Name: 368c14da868a843767344f6cc17c499fddd83244c0510337ed9a918e64ee2413
* Add new interfaces for accessing the list of SQL keywords:drh2018-04-25
| | | | | sqlite3_keyword_count(), sqlite3_keyword_name(), sqlite3_keyword_check(). FossilOrigin-Name: 7dd34e3776fed90a49344d54a1b68bb59f7957b5a8a1a367087b7cafb63111c1
* Add the new DO and NOTHING keywords to the keyword lists maintaineddrh2018-04-25
| | | | | by various extensions and auxiliary programs. FossilOrigin-Name: 77a98a0781cd8450e2100111e70526db6a51d7e58e3c505ea87f685388099e82
* Add the new SQLITE_SHELL_INIT_PROC compile-time entry point to the CLI. Thisdrh2018-04-25
| | | | | | is needed to work around the tighter sqlite3_config() constraints now in the CLI. FossilOrigin-Name: 3bcdbccf530e2a5aab7b91f4b9e5535cced91f242c49ff69b05a75d643b8b4a3
* Avoid many unnecessary calls to sqlite3ReadSchema() and sqlite3Init() whendrh2018-04-25
| | | | | the schema is known to be valid already. FossilOrigin-Name: 58cf812fd81329e82b3fdd61b7ad2040c9b90d2d80f592b9231e0e1902c8d577
* Add an assert() to ensure that schema mutexes are held prior to accessingdrh2018-04-25
| | | | | the DB_SchemaLoaded flag inside of sqlite3Init(). FossilOrigin-Name: d8b46290bb75c695dac523cf9a50d1b43e773802e3b95fd722feca16162ab7c5
* Remove a recently added NEVER() macro from a branch that can be taken indan2018-04-24
| | | | | obscure circumstances. FossilOrigin-Name: 2aa210030ae414782adab9291cc43a149a780f39bd3d306dc2892a8c20422a51
* Fix a problem with processing "LEFT JOIN tbl ON tbl.a = ? AND (tbl.b=? ORdan2018-04-24
| | | | | tbl.c=?)" in cases where there are indexes on both tbl(a, b) and tbl(a, c). FossilOrigin-Name: ce35e39c5cc2b00dd6b4a9ffaa9d5eb7d9b862759e87d5f053729de7643eee9c
* Do not attempt to use terms from the WHERE clause to drive indexes on thedrh2018-04-24
| | | | | right table of a LEFT JOIN. Fix for ticket [4ba5abf65c5b0f9a96a7a40cd18b] FossilOrigin-Name: aeb694e3f787f1f8b55650c17f90c197eee3f7f9b890a88f458c33e43009a082
* All the OR optimization to proceed even if the OR is also converted intodrh2018-04-24
| | | | | an IN operator. FossilOrigin-Name: e252c6540db266b93beeb47a8f7dbf3b275f8c782cd2d36ba4c00648c382f63f
* Add a hyperlink to the ticket on the code comment for the fix todrh2018-04-24
| | | | | ticket [7fa8049685b50b5aeb0c2]. FossilOrigin-Name: 45247c7f291bc0cc42600a4aa4ff7cdcd0a703fdfadcb0e12174c5250e70d503
* Do not attempt to read values from indexes-on-expressions if the index is ondan2018-04-24
| | | | | | the RHS of a LEFT JOIN. This won't work if the index cursor points at a null-row. Fix for [7fa80496]. FossilOrigin-Name: b8ef967ab1bebf2846c06c4f7200d6fa1c60e52e55711ea171c25ef1331f8a24
* Enhance the CLI to render EXPLAIN QUERY PLAN using an ASCII-art graph.drh2018-04-24
| | | | | | | This works with ".eqp" modes and when the query begins with exactly "EXPLAIN QUERY PLAN". To see the original output format, add extra space characters in between words of the initial "EXPLAIN QUERY PLAN". FossilOrigin-Name: f53716ee2ab5a6d47a5551529aae526bb39058f4a8e11e6243b32c1ddc25a19e
* In EXPLAIN QUERY PLAN output, do not show an EXECUTE LIST SUBQUERY line fordrh2018-04-24
| | | | | | IN operators where the RHS is a list and not a subquery, since in that case there is no SUBQUERY to execute. FossilOrigin-Name: 8bc0207abdeeb3ffac003703e78826759f07994698f6cdf40c89c3443ba22a47
* Fix to check-in [ca34c2dd20ee071e] - avoid a NULL pointer dereferencedrh2018-04-24
| | | | | following an OOM. FossilOrigin-Name: c7e6e848fa91f61bc980a031a17d4cd4784f93a1c9ffee35665efa1a59f2982a
* Fix a problem in sqlite3ExprCompare() associated with UPSERT.drh2018-04-23
| | | FossilOrigin-Name: 67d0b2c15299dd20bca7254ecb33e71b5eee6024e2709bfdc36f877bf2a5679f
* Fix a formatting issue in the TreeView output for bare expression lists.drh2018-04-23
| | | FossilOrigin-Name: a6356817815fe986c4d89475194e0537ebd46582d6df1034482bf08521182bdf
* Add the ".imposter off" variant of the ".imposter" dot-command in the CLI.drh2018-04-23
| | | FossilOrigin-Name: d3dad06ff1b163040c54dd215f30d6669cc2bc339001a362605f26f06eddf98c
* The ".selecttrace 0x2000" command causes just the top-level parse tree todrh2018-04-23
| | | | | | be displayed, after all transformations, and showing the EQP iSelectId at each level. FossilOrigin-Name: ca34c2dd20ee071e6f8d60f91dbf474515a688ba57949143483da1641246cb25
* The ".selecttrace 4" command now shows only a single parse tree afterdrh2018-04-23
| | | | | name resolution. FossilOrigin-Name: 5682146e8a4ebb4edc1e1b53fbf3daf77f8cb9cd9bc2aa32acb34fa5824bd518
* Do not restore the iSelectId value until after the last SELECTTRACE whendrh2018-04-23
| | | | | debugging Select processing. FossilOrigin-Name: 8088d8cac317adb96e357a8f4a196d7c1e0115af9c2335f167b4d7e7154299b0
* In the ".selecttrace" output, include the EXPLAIN QUERY PLAN iSelectId asdrh2018-04-23
| | | | | part of each Select identifier. FossilOrigin-Name: 5c6339f955eaa550c7d112488d7830e67ceacba4fbba12e1c5ce2970980159e0
* Ensure that there are no bind-parameters or incorrect schema references indrh2018-04-23
| | | | | the UPSERT portions of an INSERT within a TRIGGER. FossilOrigin-Name: d47a6bdda0ce967a7b70bc6eb56278c8b79525622381ff4adcf04525eafc1461
* Add the %extra_context directive to lemon, as an alternative to %extra_argument.drh2018-04-21
| | | | | Use this to improve the performance of the parser. FossilOrigin-Name: be47a6f5262a43f477700579512fe7112a0872faedcbbe5c3383d13a08af6440
* Fix UPSERT so that it plays nicely with AUTOINCREMENT.drh2018-04-21
| | | FossilOrigin-Name: 359725ab36339b443b7745e84f6d27991038ceb063c653805dde17f3eb5a03c5
* Fix a harmless compiler warning.drh2018-04-20
| | | FossilOrigin-Name: d2ab24f59d92527fe503fa7dc2128078fbc4dd2d2c1148effa9ea1957ab19940
* Avoid the use of statement journals on DELETEs of a single row withoutdrh2018-04-20
| | | | | triggers or foreign keys. FossilOrigin-Name: 20bf5800808ea02b2aa4bf01a380926784c0e7514a2c73ca303cac1f5c732ae0
* Avoid opening a statement journal on single-row UPDATEs without triggers ordrh2018-04-20
| | | | | FK constraints. FossilOrigin-Name: 2772404b8c570caf3c31d2b0530cf347a24f6f60e220e726c086537b38ebfa85
* Fix a VDBE comment on upsert. Provide an error message when upsert detectsdrh2018-04-20
| | | | | index corruption. FossilOrigin-Name: 279c48f6061f766f5437edd6964c0dd1e10399314eb17b6e5ee34df925a776ed
* Improved VDBE comment on UPSERT code.drh2018-04-20
| | | FossilOrigin-Name: 131ed95e1452a5b0d92341c48a5d3915b328ccfce2cf605f702428ae7ee3e21b
* Minor simplification of the previous checkin.drh2018-04-20
| | | FossilOrigin-Name: d1906689abdb685f78aa97bca4bf301204d12846016d27bc86dcc9ce2b024d24
* Avoid unnecessary cursor seeks during upsert processing.drh2018-04-20
| | | FossilOrigin-Name: 7c4b6d5475092a3e205f01a6972366e27a404568e8e7ba327f2feefac2ce2c7c
* Add test cases for UPSERT. And a fix for a "REPLACE INTO ... ON CONFLICT"dan2018-04-20
| | | | | | statement where the new row conflicts with both the IPK and the ON CONFLICT indexes. FossilOrigin-Name: d8eb9f8d9b61400c7e12f01ef5c233257b03532221f7c7a8386f7ac2db439626