]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoConsolidate the two sqlite3SchemaToIndex() routines. reuse-schema1
dan [Tue, 20 Nov 2018 16:02:52 +0000 (16:02 +0000)] 
Consolidate the two sqlite3SchemaToIndex() routines.

FossilOrigin-Name: dfab7170edf23de33013ea2af2f512ee978a689a6d218f6f490d46e48b9213b3

6 years agoFix a problem with virtual tables in shared schemas.
dan [Mon, 19 Nov 2018 20:41:26 +0000 (20:41 +0000)] 
Fix a problem with virtual tables in shared schemas.

FossilOrigin-Name: 84be9220db4adaf4873cf38d7259a321900608d63be4d08603e74f8b7ae120ac

6 years agoFix another name resolution problem occurring when two or more attached
dan [Sat, 17 Nov 2018 19:15:25 +0000 (19:15 +0000)] 
Fix another name resolution problem occurring when two or more attached
databases use the same Schema object.

FossilOrigin-Name: 5328f89951b34c9543a7289efd830acb252422a976819eadd036725c1553ec0f

6 years agoMerge latest trunk changes into this branch.
dan [Sat, 17 Nov 2018 18:45:43 +0000 (18:45 +0000)] 
Merge latest trunk changes into this branch.

FossilOrigin-Name: 9fdd186897abea8ebfe575b9b3ce705033a06b2b00b50beb54ebaf892543c227

6 years agoFix further problems with the feature on this branch.
dan [Sat, 17 Nov 2018 18:11:09 +0000 (18:11 +0000)] 
Fix further problems with the feature on this branch.

FossilOrigin-Name: 6d7a7e5faf1c0ff19e4b0681bc25abb909ed60998e635aea03ece5ba51a5ac52

6 years agoFix the regexp used to recognize libdl errors on OS-X.
drh [Sat, 17 Nov 2018 14:59:35 +0000 (14:59 +0000)] 
Fix the regexp used to recognize libdl errors on OS-X.

FossilOrigin-Name: 1740025307531a52e4f0641e2e74dc14715130858f2e9236be13b66924f00220

6 years agoFix harmless compiler warnings that appear with SQLITE_OMIT_EXPLAIN.
drh [Sat, 17 Nov 2018 14:26:45 +0000 (14:26 +0000)] 
Fix harmless compiler warnings that appear with SQLITE_OMIT_EXPLAIN.

FossilOrigin-Name: 5fff00b0d5eb634d40e767671d5a0e8bd263d15d88abe531f6072f01bc789568

6 years agoRemove a C++-style comment.
drh [Sat, 17 Nov 2018 14:19:34 +0000 (14:19 +0000)] 
Remove a C++-style comment.

FossilOrigin-Name: 645232f2b9ce3ee345b1d22c0db1265e39bb674bef9ab6fb10d5bee8ab696787

6 years agoFix a problem in test script e_fkey.test.
dan [Sat, 17 Nov 2018 13:08:07 +0000 (13:08 +0000)] 
Fix a problem in test script e_fkey.test.

FossilOrigin-Name: acfd0a05a8957728c1f0eb936f4121ce26f291f20dd583bd57ce2bb271617d3f

6 years agoFix a test case so that it works on windows.
drh [Fri, 16 Nov 2018 20:50:53 +0000 (20:50 +0000)] 
Fix a test case so that it works on windows.

FossilOrigin-Name: 2d92d25fae5d9757866a0d0b30427b50d635e9b05e12df9464f095419fd7ef3e

6 years agoAdd SQLITE_CONSTRAINT support to the xBestIndex methods on dbstat,
drh [Fri, 16 Nov 2018 20:18:07 +0000 (20:18 +0000)] 
Add SQLITE_CONSTRAINT support to the xBestIndex methods on dbstat,
sqlite_dbpage, and zipfile.

FossilOrigin-Name: 5cd24e552b4fed71cfb2e37929371175682f23f1430df2900a87e6a5823d138e

6 years agoUpdate the explain virtual table to make use of SQLITE_CONSTRAINT.
drh [Fri, 16 Nov 2018 19:19:58 +0000 (19:19 +0000)] 
Update the explain virtual table to make use of SQLITE_CONSTRAINT.

FossilOrigin-Name: b2d41ff7027b44ccb5dffc303c47d42f1f6fd66ce22e90450d3a666c73fe8b8e

6 years agoFix further REUSE_SCHEMA issues.
dan [Fri, 16 Nov 2018 17:04:58 +0000 (17:04 +0000)] 
Fix further REUSE_SCHEMA issues.

FossilOrigin-Name: 9780829a77a49b199a55e56d21a51d33fee50321621337afabe5a6f977a65eee

6 years agoFix the JSON table-valued functions to make use of SQLITE_CONSTRAINT.
drh [Fri, 16 Nov 2018 16:04:50 +0000 (16:04 +0000)] 
Fix the JSON table-valued functions to make use of SQLITE_CONSTRAINT.

FossilOrigin-Name: 3f34f4f561c77f8ec88906818f2984dcf8f17d1645bac175e9027595517560bc

6 years agoAdd an assert() to the generate_series virtual table to verify
drh [Fri, 16 Nov 2018 15:41:27 +0000 (15:41 +0000)] 
Add an assert() to the generate_series virtual table to verify
assumptions about the design.

FossilOrigin-Name: cd13b499a20a7d476edb8500537edef4c5151410ba0300469ebf0f7ba16964b8

6 years agoUpdate the generate_series() table-valued function to make use of the new
drh [Fri, 16 Nov 2018 15:08:31 +0000 (15:08 +0000)] 
Update the generate_series() table-valued function to make use of the new
SQLITE_CONSTRAINT return from xBestIndex.

FossilOrigin-Name: 4372ad644dda5a1fa46b6b6070092320c835439b41f598cbc041e9deef786988

6 years agoIn order to avoid exporting a symbol, use a macro instead of a function to
dan [Fri, 16 Nov 2018 14:36:42 +0000 (14:36 +0000)] 
In order to avoid exporting a symbol, use a macro instead of a function to
replace sqlite3_complete() in the shell code when SQLITE_OMIT_COMPLETE is
defined.

FossilOrigin-Name: d584a0cb512815945ef06ee3b5ebadbf2a543b008487f6d098e1e8ab79f61d2d

6 years agoEnhance the xBestIndex interface of virtual table so that if the xBestIndex
drh [Fri, 16 Nov 2018 13:56:15 +0000 (13:56 +0000)] 
Enhance the xBestIndex interface of virtual table so that if the xBestIndex
method returns SQLITE_CONSTRAINT then that particular combination of
constraints is considered unusable and does not participate further in
query planning.

FossilOrigin-Name: 684013cef6bfcfd920a4aec645df9f5d41ace8b34e75fca61759c1b4f82cc89e

6 years agoFix comments and make magic numbers into #defines in the fsdir
drh [Fri, 16 Nov 2018 13:06:30 +0000 (13:06 +0000)] 
Fix comments and make magic numbers into #defines in the fsdir
implementation.

FossilOrigin-Name: c537c9c3630ca979bdccab977275bfc11cce33ea54adb71a4bd4f46c85f65c6f

6 years agoFix a problem with virtual table "fsdir" and some join queries.
dan [Fri, 16 Nov 2018 08:36:15 +0000 (08:36 +0000)] 
Fix a problem with virtual table "fsdir" and some join queries.

FossilOrigin-Name: 7fffcee0fc3fe8d036f0d93ec17673992c3edcf2bb454dc90d80142435b37946

6 years agoImprovements to the CSV virtual table.
drh [Fri, 16 Nov 2018 01:42:26 +0000 (01:42 +0000)] 
Improvements to the CSV virtual table.

FossilOrigin-Name: 0406ecbbe75513e342040b71fdd342462222dbb3820486b5f745d7865805c00b

6 years agoFix some problems with the feature on this branch. Many problems remain.
dan [Thu, 15 Nov 2018 21:20:56 +0000 (21:20 +0000)] 
Fix some problems with the feature on this branch. Many problems remain.

FossilOrigin-Name: 31b6aee755c81d69aeaf3ae197e510d38e5e3bb83ded44c33379bcd0d4c23300

6 years agoFix typos in the previous check-in.
mistachkin [Thu, 15 Nov 2018 19:12:22 +0000 (19:12 +0000)] 
Fix typos in the previous check-in.

FossilOrigin-Name: 9b37bbf5f338dea962331e4fd73dfa0baae98ba63344a2fa737b845b90ecb0c5

6 years agoInclude geopoly in the compiler-warning script.
drh [Thu, 15 Nov 2018 16:56:33 +0000 (16:56 +0000)] 
Include geopoly in the compiler-warning script.

FossilOrigin-Name: 3d947e1ec0f0800fcad3a04e4876d5247fd1b23e51ed7f49d428fff6683e8a16

6 years agoNew fuzztest cases.
drh [Thu, 15 Nov 2018 13:51:48 +0000 (13:51 +0000)] 
New fuzztest cases.

FossilOrigin-Name: e8316ba47f566c8d2cb48d9d54308e8869743ef39d35b662a8764b0479aed9e0

6 years agoFix a potential buffer overread in the dbstat virtual table when processing
drh [Tue, 13 Nov 2018 20:21:52 +0000 (20:21 +0000)] 
Fix a potential buffer overread in the dbstat virtual table when processing
a corrupt database file.

FossilOrigin-Name: a62e6b593b59eae44d299842a4d02b9346a0c72a3e1206882f304ab40f2cd5c5

6 years agoTurn on ASAN for the dbfuzz2 utility. Fix a buffer overread associated
drh [Tue, 13 Nov 2018 19:51:41 +0000 (19:51 +0000)] 
Turn on ASAN for the dbfuzz2 utility.  Fix a buffer overread associated
with sqlite3_deserialize().

FossilOrigin-Name: 4e38f27b55030e908bd36f32101e26b30f10dbde67e12c8197d0363ee12aa06d

6 years agoNew hyperlinks in comments used to generate documentation. No changes to code.
drh [Mon, 12 Nov 2018 15:20:44 +0000 (15:20 +0000)] 
New hyperlinks in comments used to generate documentation.  No changes to code.

FossilOrigin-Name: f9755f81b1c0fd29f242dce78a2fba570fa2714d76e93b8563f426a040352513

6 years agoFix a use-after-free problem in the fts5vocab virtual table.
dan [Mon, 12 Nov 2018 13:20:00 +0000 (13:20 +0000)] 
Fix a use-after-free problem in the fts5vocab virtual table.

FossilOrigin-Name: ac69d169c61c973448b1d3eef5b8ff0de2d932d7bb74068344cb1b79bd330578

6 years agoAdd support for read-only shadow tables on virtual tables. Added the
drh [Sat, 10 Nov 2018 18:23:32 +0000 (18:23 +0000)] 
Add support for read-only shadow tables on virtual tables.  Added the
SQLITE_DEFAULT_DEFENSIVE compile-time option that can put SQLite in
defensive mode by default.

FossilOrigin-Name: 9c685171c4d7ae8615d1489c9621aba79fe4ef1f0e56b75823b88c3e70d127df

6 years agoAdd the "changesetfuzz" program. For fuzzing changeset blobs.
dan [Sat, 10 Nov 2018 17:37:39 +0000 (17:37 +0000)] 
Add the "changesetfuzz" program. For fuzzing changeset blobs.

FossilOrigin-Name: 2bae0e7c1c1393aeb0bb7234865e410c9ca0e3c31cdc8566e9503f70ca7ac64c

6 years agoMerge latest trunk changes. changesetfuzz
dan [Sat, 10 Nov 2018 17:36:55 +0000 (17:36 +0000)] 
Merge latest trunk changes.

FossilOrigin-Name: b6d549c988e765789c4a81d586170451db9f5da1973dde8aa0329445f915fbb2

6 years agoRemove a NEVER() that is reachable after all. Reverts checkin [9292d3351c40339]. read-only-shadow
drh [Sat, 10 Nov 2018 04:14:51 +0000 (04:14 +0000)] 
Remove a NEVER() that is reachable after all. Reverts checkin [9292d3351c40339].

FossilOrigin-Name: c5dc7fb873b15bd4e4f31b944c9feee78ab7ec2cb74f5fc55b615fd0e2784a88

6 years agoMerge fixes from trunk.
drh [Sat, 10 Nov 2018 03:47:40 +0000 (03:47 +0000)] 
Merge fixes from trunk.

FossilOrigin-Name: bf88efcec40036e0805940ff6371643dbc518442457d2bc18c711753607ae36c

6 years agoFix invalid use of unprotected sqlite3_value objects in the sqldiff utility,
drh [Fri, 9 Nov 2018 23:41:57 +0000 (23:41 +0000)] 
Fix invalid use of unprotected sqlite3_value objects in the sqldiff utility,
when using the --changeset option.

FossilOrigin-Name: a8d65214a567eb1afd703ee4d09d398247e060a610b46097a726364db2861001

6 years agoWhen a table is renamed using "ALTER TABLE RENAME TO", update any REFERENCES
dan [Fri, 9 Nov 2018 20:04:05 +0000 (20:04 +0000)] 
When a table is renamed using "ALTER TABLE RENAME TO", update any REFERENCES
clauses that refer to the table, unless "PRAGMA legacy_alter_table" is true
and "PRAGMA foreign_keys" is set to false (i.e. so that when "PRAGMA
legacy_alter_table" is set behaviour is still compatible with versions 3.24
and earlier).

FossilOrigin-Name: ae9638e9c0ad0c366f93c88a850f6b4cc86881e9f3f9f1e39574d9d83ddd8a6a

6 years agoMerge latest trunk changes with this branch.
dan [Fri, 9 Nov 2018 18:44:45 +0000 (18:44 +0000)] 
Merge latest trunk changes with this branch.

FossilOrigin-Name: ae88f8e1ffc33748e45308c21ba83499228ae05344df81e41dd61e14a1270588

6 years agoFix for ticket [787fa716be3a7f650cac]
drh [Fri, 9 Nov 2018 14:17:51 +0000 (14:17 +0000)] 
Fix for ticket [787fa716be3a7f650cac]

FossilOrigin-Name: 531eca6104e41e4301fa2cf58bb8fec811da31e151a0f766c93aece5521d235b

6 years agoIn the treeview.c module, break out the display of SrcList into a separate
drh [Thu, 8 Nov 2018 22:53:06 +0000 (22:53 +0000)] 
In the treeview.c module, break out the display of SrcList into a separate
subroutine, so that it can be invoked while debugging.

FossilOrigin-Name: 8c74065f0031274d9bc711d5d53c39aefcfb2b2679811105974a2c7c7a9e1dcb

6 years agoImproved documentation for SQLITE_DBCONFIG_DEFENSIVE. Add a NEVER() macro
drh [Thu, 8 Nov 2018 17:32:50 +0000 (17:32 +0000)] 
Improved documentation for SQLITE_DBCONFIG_DEFENSIVE.  Add a NEVER() macro
on an unreachable branch.

FossilOrigin-Name: 9292d3351c40339de7ad6bc26c02e7592e6cdee2592e0c790fae63ccf21ea88c

6 years agoAdd tests and a fix for program "changesetfuzz".
dan [Thu, 8 Nov 2018 14:59:51 +0000 (14:59 +0000)] 
Add tests and a fix for program "changesetfuzz".

FossilOrigin-Name: 09b90db56c2d5e3aceae59c6bf1eb07f9db9ef38da29d2162046b88d39e47b86

6 years agoMerge latest trunk changes into this branch.
dan [Wed, 7 Nov 2018 20:13:45 +0000 (20:13 +0000)] 
Merge latest trunk changes into this branch.

FossilOrigin-Name: 53cd91d00594f1bd7c0a565a35ec9cac3095a583022d6211158a369e942257b0

6 years agoFix minor issues in the changesetfuzz program.
dan [Wed, 7 Nov 2018 20:07:28 +0000 (20:07 +0000)] 
Fix minor issues in the changesetfuzz program.

FossilOrigin-Name: 5c7f024073bc93089f038b5cf122a7a9d5b933f7c1b357f6d20ae925739ffc38

6 years agoUpdate the "changesetfuzz" program to work with patchsets as well as
dan [Wed, 7 Nov 2018 17:52:29 +0000 (17:52 +0000)] 
Update the "changesetfuzz" program to work with patchsets as well as
changesets.

FossilOrigin-Name: 75b00fbe884d4bd8ba099d7c0a2e8af2f40fedfdef2d9b624dd51cb66952611c

6 years agoPerformance improvement in subroutine that decides whether or not a table
drh [Wed, 7 Nov 2018 16:46:43 +0000 (16:46 +0000)] 
Performance improvement in subroutine that decides whether or not a table
is read-only.

FossilOrigin-Name: 6e4968b00507c4fdbe7e3c91f3f9cd61c6f1848092ddcf306f9fcb101a47fce7

6 years agoMerge the onefile permutation fix from trunk.
drh [Wed, 7 Nov 2018 16:12:34 +0000 (16:12 +0000)] 
Merge the onefile permutation fix from trunk.

FossilOrigin-Name: e543bff87d1efc31a5b863085c056ce06c365cc7d9d3fef0ced7521bde536783

6 years agoMore test-case adjustments for defensive mode.
drh [Wed, 7 Nov 2018 14:41:08 +0000 (14:41 +0000)] 
More test-case adjustments for defensive mode.

FossilOrigin-Name: 911e8a17a3810cd7042e91a32aba80dc3d6be88320c208e48f7bcee8b22a0ff2

6 years agoFix a problem with the handling of SQLITE_FCNTL_PRAGMA in the test_onefile.c
dan [Wed, 7 Nov 2018 14:39:22 +0000 (14:39 +0000)] 
Fix a problem with the handling of SQLITE_FCNTL_PRAGMA in the test_onefile.c
demo.

FossilOrigin-Name: 13e21b7da8fe754e230b09ca0b9f1f69cd9aa20d4407ddd8b95ca3fb18c9abeb

6 years agoMerge the permutations fix from trunk.
drh [Wed, 7 Nov 2018 13:41:27 +0000 (13:41 +0000)] 
Merge the permutations fix from trunk.

FossilOrigin-Name: b753d849fe0524e14ae9367a47e29be76332fafb77bfe13e266aeef1ef6742ce

6 years agoPartially revert [3e1a2f661], as some test scripts require separate $presql
dan [Wed, 7 Nov 2018 11:56:23 +0000 (11:56 +0000)] 
Partially revert [3e1a2f661], as some test scripts require separate $presql
and $dbconfig variables.

FossilOrigin-Name: cbf85284beb60d068b446c52f000d694a810d4de9096ad2951523a4c88e7334c

6 years agoAdd the SQLITE_DEFAULT_DEFENSIVE compile-time option. Fix up test cases
drh [Wed, 7 Nov 2018 02:17:01 +0000 (02:17 +0000)] 
Add the SQLITE_DEFAULT_DEFENSIVE compile-time option.  Fix up test cases
so that they work with DEFENSIVE enabled.

FossilOrigin-Name: 3212733cb6d1a59516d67a86df7c7b1d2456a1b2e5d7080c26b0e87b2609c65d

6 years agoUpdate the changesetfuzz program to fuzz changeset schemas as well as data.
dan [Tue, 6 Nov 2018 20:08:03 +0000 (20:08 +0000)] 
Update the changesetfuzz program to fuzz changeset schemas as well as data.

FossilOrigin-Name: 141a93c843d501d8bb640228645ead0a83870c1c11e9d4b07ed24b296c69a0b8

6 years agoEnable DEFENSIVE mode by default for tests. This requires lots of case of
drh [Tue, 6 Nov 2018 19:26:04 +0000 (19:26 +0000)] 
Enable DEFENSIVE mode by default for tests.  This requires lots of case of
turning DEFENSIVE off in order to dodgy things to the database for testing
purposes.  No all of those cases are yet handled, so "make test" does not run
to completion.

FossilOrigin-Name: a1d6c6712c3304fd736077432c8c180692cf7d79be7f3a073510b6dab0eb951f

6 years agoTurn on defensive mode for running test scripts. Does not yet work.
drh [Tue, 6 Nov 2018 15:57:59 +0000 (15:57 +0000)] 
Turn on defensive mode for running test scripts.  Does not yet work.

FossilOrigin-Name: 1c1d24edbb732f2a2002a741c7a7afdd010b67e1b5e6d90ff36c6428897e7612

6 years agoOnly allow shadow table to be written from within a recursive SQL call.
drh [Tue, 6 Nov 2018 14:03:07 +0000 (14:03 +0000)] 
Only allow shadow table to be written from within a recursive SQL call.
Omit the SQLITE_PREPARE_SHADOW flag.  Some tests are failing because the
tests depend on being able to write to shadow tables.

FossilOrigin-Name: d890c6582524677666e6f5b5817331dec332ade16b2f744cbb8a3c7dd9b63e21

6 years agoAdd enforcement of read-only on shadow tables. This does not currently work
drh [Tue, 6 Nov 2018 13:37:20 +0000 (13:37 +0000)] 
Add enforcement of read-only on shadow tables.  This does not currently work
since some virtual tables are attempting to update shadow tables using
sqlite3_exec().

FossilOrigin-Name: f79b47c9859de597d5924870752dd7cab89c8f0608e5cceb2281f6ffb2e91930

6 years agoInitial code to make shadow tables read-only to ordinary SQL. The now
drh [Mon, 5 Nov 2018 23:01:45 +0000 (23:01 +0000)] 
Initial code to make shadow tables read-only to ordinary SQL. The now
xShadowName method is added to the sqlite3_module object and is used
to identify potential shadow tables.  The SQLITE_PREPARE_SHADOW argument
to sqlite3_prepare_v3() is defined.  It is designed to permit writing to
shadow tables, but is currently an unused placeholder.

FossilOrigin-Name: 31942b3dd3f66eb0d9977bf1cadc2f2d7be7967cce2b55784be0b939dfef1985

6 years agoAdd preliminary version of "changesetfuzz" program. For fuzzing changeset data
dan [Mon, 5 Nov 2018 20:37:33 +0000 (20:37 +0000)] 
Add preliminary version of "changesetfuzz" program. For fuzzing changeset data
without creating corrupt changesets.

FossilOrigin-Name: 81ac8745faac0bda8d68ac113f1938f0e25208642e8ceb2af452680086454cb5

6 years agoAdd the SQLITE_DBCONFIG_DEFENSIVE flag.
drh [Mon, 5 Nov 2018 19:37:30 +0000 (19:37 +0000)] 
Add the SQLITE_DBCONFIG_DEFENSIVE flag.

FossilOrigin-Name: 11d98414eac467affb0b3cf0c7e5cc3d43184fc2b6e7e898bb5277b51ea9e1fa

6 years agoEponymous virtual tables appear to exist in all schemas. This is an alternative
drh [Mon, 5 Nov 2018 16:38:10 +0000 (16:38 +0000)] 
Eponymous virtual tables appear to exist in all schemas. This is an alternative
and improved fix to the eponymous virtual table in trigger problem that
was previously addressed by checkin [1fa74930ab56171e].

FossilOrigin-Name: b8d35c4a7c99ce3753761e5b81269d52c3c910c603fa70b72549883ba68bc485

6 years agoDisable the IS NOT NULL optimization when the IS NOT NULL operator is part
drh [Mon, 5 Nov 2018 07:53:17 +0000 (07:53 +0000)] 
Disable the IS NOT NULL optimization when the IS NOT NULL operator is part
of the ON clause of a LEFT JOIN. Fix for ticket [65eb38f6e46de8c75e188a17ec].

FossilOrigin-Name: af39661e60f562b9eb10343fd83e8fe21be4d7276111e7853c1179a24cab09ce

6 years agoCorrect the internal logic for SQLITE_DBCONFIG_DEFENSIVE. dbconfig-defensive
drh [Sat, 3 Nov 2018 17:31:48 +0000 (17:31 +0000)] 
Correct the internal logic for SQLITE_DBCONFIG_DEFENSIVE.

FossilOrigin-Name: 76094345821246c887a31a234b339d03a78eddbb9fab33b06c3c20797c038349

6 years agoAdd extra defenses against strategically corrupt databases to fts3/4.
dan [Sat, 3 Nov 2018 16:51:30 +0000 (16:51 +0000)] 
Add extra defenses against strategically corrupt databases to fts3/4.

FossilOrigin-Name: d44318f59044162e229a444582692e9788f17b5c404b4eb702f4c2114b22fefe

6 years agoAdd the SQLITE_DBCONFIG_DEFENSIVE flag.
drh [Sat, 3 Nov 2018 16:09:59 +0000 (16:09 +0000)] 
Add the SQLITE_DBCONFIG_DEFENSIVE flag.

FossilOrigin-Name: af3f29d49359af2291b1d9e06e0db76fd000fbd24b4ac84d2668a0d1322efd83

6 years agoFix a assert() in the query planner that can arise when doing row-value
drh [Sat, 3 Nov 2018 13:11:24 +0000 (13:11 +0000)] 
Fix a assert() in the query planner that can arise when doing row-value
operations on a PRIMARY KEY that contains duplicate columns.
Ticket [1a84668dcfdebaf12415d].

FossilOrigin-Name: dcb8c73594ea6b12bad98dc883a585d3e6b925c2ead267dc40332b3d266db5e8

6 years agoEnhance triggers so that they can use table-valued-functions that exist in
drh [Fri, 2 Nov 2018 17:38:39 +0000 (17:38 +0000)] 
Enhance triggers so that they can use table-valued-functions that exist in
schemas outside of the schema in which the trigger is defined.

FossilOrigin-Name: 1fa74930ab56171e2e840d4a5b259abafb0ad1e0320fc3030066570a6dd10002

6 years agoDeploy the sqlite3Strlen30NN() function (argument guaranteed to be non-NULL) for
drh [Wed, 31 Oct 2018 20:52:00 +0000 (20:52 +0000)] 
Deploy the sqlite3Strlen30NN() function (argument guaranteed to be non-NULL) for
a small performance improvement.

FossilOrigin-Name: 4a6ad5190b62020d97a7de02c801544f20b7b98145ceff14af1f2834d3057f9c

6 years agoAdd support for the SQLITE_PREPARE_NORMALIZED flag and the
drh [Wed, 31 Oct 2018 19:01:13 +0000 (19:01 +0000)] 
Add support for the SQLITE_PREPARE_NORMALIZED flag and the
sqlite3_normalized_sql() when compiling with SQLITE_ENABLE_NORMALIZE.
Also remove unnecessary whitespace from Makefiles.

FossilOrigin-Name: 790ea39a6585ea9f4dad9e132e1fb0447ac1558f728196580d2c3edee84823f7

6 years agoTweaks to the test_intarray documentation and tests.
drh [Wed, 31 Oct 2018 18:24:29 +0000 (18:24 +0000)] 
Tweaks to the test_intarray documentation and tests.

FossilOrigin-Name: 7107f0dacf4467430d1ca157cb848dde984e48e529e7d67a88b7594b0f8159c9

6 years agoMerge fuzz test cases computed by dbfuzz2.
drh [Wed, 31 Oct 2018 01:12:06 +0000 (01:12 +0000)] 
Merge fuzz test cases computed by dbfuzz2.

FossilOrigin-Name: e0d30c1862884049098e1fa9b7c228ff8318a40c09e2516ef2dc8db22e2048e2

6 years agoImproved corrupt database detection in the relocatePage() routine of
drh [Wed, 31 Oct 2018 01:04:18 +0000 (01:04 +0000)] 
Improved corrupt database detection in the relocatePage() routine of
the b-tree module.

FossilOrigin-Name: d57873337a2a7a0d717dc7726cd2682b5bea594d2d1ff8f16c2485161fcd6b16

6 years agoAdd new fuzzer cases generated by dbfuzz2.
drh [Tue, 30 Oct 2018 23:45:18 +0000 (23:45 +0000)] 
Add new fuzzer cases generated by dbfuzz2.

FossilOrigin-Name: 79fdad8b42869100845eed36224602452486d0166c18cec7d343040fdac7379e

6 years agoUpdate comments in sqlite3session.c to describe the format of "rebase blobs",
dan [Tue, 30 Oct 2018 19:14:16 +0000 (19:14 +0000)] 
Update comments in sqlite3session.c to describe the format of "rebase blobs",
as well as changesets and patchsets.

FossilOrigin-Name: bf93f7b56b1d15682988daf3f1c293caf755433defdecd52ba8782fc40e92bd7

6 years agoSplit the SQLITE_WriteSchema flag in two flags, WriteSchema and
drh [Tue, 30 Oct 2018 16:25:35 +0000 (16:25 +0000)] 
Split the SQLITE_WriteSchema flag in two flags, WriteSchema and
SQLITE_NoSchemaError.  Set only WriteSchema on a VACUUM to avoid problems
when trying to vacuum a corrupt database.  With this change, the size
of the flags field on sqlite3 must grow from 32 to 64 bytes.

FossilOrigin-Name: 4f9878107a54356b7105fa1db7655ee239685d570436f6ad4d4221c9bd829b3d

6 years agoModify the CLI so that the --deserialize option is only available if it is
drh [Tue, 30 Oct 2018 15:31:22 +0000 (15:31 +0000)] 
Modify the CLI so that the --deserialize option is only available if it is
compiled with SQLITE_ENABLE_DESERIALIZE.  DESERIALIZE is now off by default
for the main.mk makefile, but on for Makefile.in and Makefile.msc.

FossilOrigin-Name: 90b2a684f775e1468d63bf950119cf0aaa62b5a449f518e7cc513c314191dd14

6 years agoImprovements to the -fsanitize=fuzzer based database file fuzzer.
drh [Tue, 30 Oct 2018 15:20:35 +0000 (15:20 +0000)] 
Improvements to the -fsanitize=fuzzer based database file fuzzer.
(Cherrypick from the rubust-against-damaged-db branch.)

FossilOrigin-Name: 3cc01a0eaf54e3d5adf206825cfcab15edf73bd5aea10dfc497efd78071a17d0

6 years agoIn the CLI, when opening a file that begins with the normal SQLite prefix,
drh [Tue, 30 Oct 2018 14:36:21 +0000 (14:36 +0000)] 
In the CLI, when opening a file that begins with the normal SQLite prefix,
open the file as a normal database even if it has a ZIP for AppendVFS record
at the end.

FossilOrigin-Name: 7989bbda70a24611c3b8af96a53114bb53d87a2e1145ec7ad4f1b4cbf8d6040c

6 years agoEnable sqlite3_deserialize() in the CLI. The --deserialize option associated
drh [Tue, 30 Oct 2018 13:19:49 +0000 (13:19 +0000)] 
Enable sqlite3_deserialize() in the CLI.  The --deserialize option associated
with opening a new database cause the database file to be read into memory
and accessed using the sqlite3_deserialize() API.  This simplifies running
tests on a database without risk of modifying the file on disk.

FossilOrigin-Name: 5e0129ee9afa7c2d707f8ac9e29ef3583c49bb1d0965085c067d58f828ac8cdf

6 years agoFix a potential assertion fault that can occur while trying to DROP a table
drh [Mon, 29 Oct 2018 21:01:28 +0000 (21:01 +0000)] 
Fix a potential assertion fault that can occur while trying to DROP a table
from a corrupted database file.

FossilOrigin-Name: 147a9429a558cf34c316ab8f87832e97caff55d92df696ab6fd045466c8c663d

6 years agoFix minor memory leak in the dbstat extension that can occur following an
drh [Mon, 29 Oct 2018 18:33:42 +0000 (18:33 +0000)] 
Fix minor memory leak in the dbstat extension that can occur following an
attempt to analyze a corrupt database file.

FossilOrigin-Name: cb874fd87384be397008e953242d5773ef5d64e07c3e1ae352a42a25d70597b4

6 years agoAdd the sqlite3_normalized_sql() API. normalized_sql
mistachkin [Mon, 29 Oct 2018 17:53:23 +0000 (17:53 +0000)] 
Add the sqlite3_normalized_sql() API.

FossilOrigin-Name: 592b66e8058dd03a056a036e2606247c9efdb06d15eebe9bcc455f7f55e30ae6

6 years agoIn the sessions module, avoid collecting rebase data if the user has not
dan [Mon, 29 Oct 2018 17:08:27 +0000 (17:08 +0000)] 
In the sessions module, avoid collecting rebase data if the user has not
requested it.

FossilOrigin-Name: de72a773dd3ad58a7f2233e1fc06bf60deb8892a2719ea8e9b42e7d592c1279f

6 years agoHarden the dbstat extension against corrupt database files.
drh [Mon, 29 Oct 2018 16:07:10 +0000 (16:07 +0000)] 
Harden the dbstat extension against corrupt database files.

FossilOrigin-Name: a0d47f25ae7bdf98f5b853f23776b3bf86bea7c0dda386664c1e3b1c363c518f

6 years agoImprovements to the dbfuzz2.c test module.
drh [Sat, 27 Oct 2018 21:06:44 +0000 (21:06 +0000)] 
Improvements to the dbfuzz2.c test module.

FossilOrigin-Name: d60eff493b875366981c5a25000bb65cde9f6e628192914910790acc562c17b9

6 years agoAdd an entry in Makefile.in to build dbfuzz2 using clang-6.0 with
drh [Sat, 27 Oct 2018 16:02:16 +0000 (16:02 +0000)] 
Add an entry in Makefile.in to build dbfuzz2 using clang-6.0 with
-fsanitize=fuzzer,undefined.

FossilOrigin-Name: a4a083ed8cdb106af661d2ee0203e21c576f5c2304419ce603826e4f2851c2e0

6 years agoInitial code for a fuzzing tool on database file that works with the
drh [Sat, 27 Oct 2018 00:47:33 +0000 (00:47 +0000)] 
Initial code for a fuzzing tool on database file that works with the
-fsanitize=fuzzer option of clang.

FossilOrigin-Name: 90d12094d36957fbded71545add8a5dc206798fdacc17d4d161d715569a7f991

6 years agoAdd the sqlite3session_config() interface. For configuring global parameters
dan [Fri, 26 Oct 2018 17:05:00 +0000 (17:05 +0000)] 
Add the sqlite3session_config() interface. For configuring global parameters
belonging to the sessions module.

FossilOrigin-Name: 1e69f3ff057b0be27a9e79842de2485f8299799f309e89bfa7597dd688e0975b

6 years agoPrevent an == constraint specified using the table-valued-function argument
dan [Fri, 26 Oct 2018 15:36:53 +0000 (15:36 +0000)] 
Prevent an == constraint specified using the table-valued-function argument
syntax from being used to optimize any scan not related to the virtual table
for which it was specified as an argument.

FossilOrigin-Name: 4d46685f282409f7154be288719cbea4b743d7ea5315a55a91462003497469f7

6 years agoIn the WHERE-constraint propagation optimization, if there are duplicate
drh [Thu, 25 Oct 2018 14:15:37 +0000 (14:15 +0000)] 
In the WHERE-constraint propagation optimization, if there are duplicate
constraint, make sure only one of them propagates.  Proposed fix for
ticket [cf5ed20fc8621b165].

FossilOrigin-Name: 5d5b596f152bb2781011a05f75f9e200774d4f69d648ef68de577b4ace973e07

6 years agoAdd the ENABLE_GEOPOLY case to the compile_options pragma.
drh [Wed, 24 Oct 2018 23:55:41 +0000 (23:55 +0000)] 
Add the ENABLE_GEOPOLY case to the compile_options pragma.

FossilOrigin-Name: de940296d227c96db4d0cf913fc5c0e5138729eda7cda0a0ac6b704cce1e1e1e

6 years agoFix a problem with using window functions in compound (UNION, INTERSECT etc.)
dan [Tue, 23 Oct 2018 13:48:19 +0000 (13:48 +0000)] 
Fix a problem with using window functions in compound (UNION, INTERSECT etc.)
queries.

FossilOrigin-Name: 059ff53a46c7f1e4bf3e7dc558312beef67826c2753e2ab7e4e7df498b37b617

6 years agoAdd the sqlite3changeset_start_v2() - a new version of _start() that accepts a flags...
dan [Sat, 20 Oct 2018 13:48:09 +0000 (13:48 +0000)] 
Add the sqlite3changeset_start_v2() - a new version of _start() that accepts a flags parameter - and a streaming equivalent to the sessions module. Also add the SQLITE_CHANGESETSTART_INVERT flag, used with start_v2() to invert a changeset while iterating through it.

FossilOrigin-Name: cbedcb9aaefdfe00453efbdf0eac6c15e1f53bbe8fff2e7d534a5adf23be04f5

6 years agoTake steps to avoid a potential integer overflow in sessionBufferGrow().
dan [Thu, 18 Oct 2018 15:17:18 +0000 (15:17 +0000)] 
Take steps to avoid a potential integer overflow in sessionBufferGrow().

FossilOrigin-Name: f7affa2e708d1b4c7c47157bcb18e9f79611ca45a93ebc88de6dc96f84a677e7

6 years agoAdd the SQLITE_CHANGESETAPPLY_INVERT flag to sessions. For inverting and applying...
dan [Thu, 18 Oct 2018 14:59:21 +0000 (14:59 +0000)] 
Add the SQLITE_CHANGESETAPPLY_INVERT flag to sessions. For inverting and applying a changeset in a single step.

FossilOrigin-Name: d4b6406e7f5ba06ac73ab9fdef57232b2459e0af12420ed946ebed6aef46f0b1

6 years agoTest case modifications to support SEE.
drh [Fri, 12 Oct 2018 15:01:56 +0000 (15:01 +0000)] 
Test case modifications to support SEE.

FossilOrigin-Name: 02b6f8f2778c371130c512e980c3db07c7e76dcf7dd92a878b86e4b6a47ca307

6 years agoAdd the textkey and textrekey pragmas.
drh [Thu, 11 Oct 2018 18:41:50 +0000 (18:41 +0000)] 
Add the textkey and textrekey pragmas.

FossilOrigin-Name: f03164d45450cd7ff2162999aa9e51eec7fb5e7cab1fa83d876b544f8f841097

6 years agoFix harmless compiler warnings in the CLI.
drh [Thu, 11 Oct 2018 16:53:37 +0000 (16:53 +0000)] 
Fix harmless compiler warnings in the CLI.

FossilOrigin-Name: 1916d2912a4ef5c251853de3c9d66417e20f0c0fc8ddfbc84c131dfd798439f6

6 years agoAlways reset the pager before changing the codec.
drh [Thu, 11 Oct 2018 16:38:56 +0000 (16:38 +0000)] 
Always reset the pager before changing the codec.

FossilOrigin-Name: 0bf0fd242b93c3bd308ab46db1be9edef141b89db07a0f5a4ed8b23c963da0d5

6 years agoOn the first connection to a WAL-mode database that was not cleanly shut down
drh [Thu, 11 Oct 2018 13:51:48 +0000 (13:51 +0000)] 
On the first connection to a WAL-mode database that was not cleanly shut down
and contains a left-over -shm file, truncate the -shm file to 3 bytes instead
of to 0 bytes. Avoiding a truncation to 0 means that system monitoring tools
can better detect if a process illegitimately tries to truncate a -shm file.
Such a rogue process might think it is being helpful by cleaning up old files,
but there is a race condition that can cause damage to the database.

FossilOrigin-Name: 90cf32cde072a305f30c75a71665d1f9e23e805c0a49f5306f015c056dd70f0c

6 years agoIn the CLI, fix a file descriptor leak following OOM and a missing va_end()
drh [Thu, 11 Oct 2018 10:37:24 +0000 (10:37 +0000)] 
In the CLI, fix a file descriptor leak following OOM and a missing va_end()
call.

FossilOrigin-Name: ec36d15a9e349f4295a9e2215dea0a18e9276e0e4ce2d05021e6b467ab7763bb