]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Thu, 21 Apr 2022 19:14:23 +0000 (19:14 +0000)]
larrybr [Wed, 20 Apr 2022 22:41:10 +0000 (22:41 +0000)]
For CLI, fix how columnar mode fills in empty portions of wrapped row outputs.
FossilOrigin-Name:
77aed89192bdbad819ac17bf5d08728278a9b8cbbbef1d805df230caff79b417
dan [Wed, 20 Apr 2022 16:42:57 +0000 (16:42 +0000)]
Fix a problem with using multiple SQLITE_SUBTYPE function as window functions in a single query.
FossilOrigin-Name:
9430ead7ba433cbfce99f4f364a0c08499230e3a04f167326b0f131f098ffa09
dan [Tue, 19 Apr 2022 20:47:18 +0000 (20:47 +0000)]
Fix a problem in ALTER TABLE with handling "table.*" expressions within SELECT statements in triggers.
FossilOrigin-Name:
24755fd0657252e49793bb1fe906973a2dd84a1bde03bea9a762de36cc96c2d2
dan [Mon, 18 Apr 2022 15:56:58 +0000 (15:56 +0000)]
Avoid an assert() failure in allocateSpace() triggered by a corrupt database. dbsqlfuzz
f022eb0ce64d27808574d1dcde5cf7d002dabde8 .
FossilOrigin-Name:
2de7f8cc7fe18f0828bb53f1fd11f5eb828faf4d6dfaf39693dff4f8926c1c7a
drh [Mon, 18 Apr 2022 14:15:07 +0000 (14:15 +0000)]
Improved comment field in the bytecode generated for OP_Column and OP_Rowid.
FossilOrigin-Name:
1b2c5cef9560123344db391cd065090d1914724715ec6643d2d9b5fac2051a21
larrybr [Sat, 16 Apr 2022 17:53:25 +0000 (17:53 +0000)]
Make shell auto-column work with lots of columns when log() is missing.
FossilOrigin-Name:
82366436ef74838dae1f379f3e5b8ad187225a30ec58fb49f047ab7c08a263cf
dan [Sat, 16 Apr 2022 15:46:23 +0000 (15:46 +0000)]
Fix a problem with "ON DELETE RESTRICT" and "ON UPDATE RESTRICT" foreign keys in attached databases scanning child tables in the wrong schema.
FossilOrigin-Name:
04d5b637f087520cd58211505f9b5c086ff96d864a1908f60464b6fe22c62b7d
drh [Thu, 14 Apr 2022 19:48:32 +0000 (19:48 +0000)]
Cherry pick subroutine indentation improvements and the hardening of
OP_Gosub from the right-join branch back into trunk.
FossilOrigin-Name:
12645f100d902690630a2925674aedbb01d41a53426a26a2f56de5b8fdec955f
drh [Wed, 13 Apr 2022 10:49:50 +0000 (10:49 +0000)]
Fix an assert() in btree.c that might not be true for a corrupt database file.
FossilOrigin-Name:
dbd8e2e46cfb2de0ebdbb62cda2fe669df3eda98f5d6112d541f581995b1361d
dan [Tue, 12 Apr 2022 17:02:27 +0000 (17:02 +0000)]
dan [Tue, 12 Apr 2022 11:02:06 +0000 (11:02 +0000)]
Modify utility function sqlite3SetString() so that it may be used safely on Parse.zErrMsg. Fuzzer test case "crash-
1604e5d76c92574e21e437049dab9b672e06b767 .txt".
FossilOrigin-Name:
09c5a4ec13b02efd6207e26dab7beaf184f0d8ccea0bd0dfe94fc803fe5636ce
drh [Mon, 11 Apr 2022 11:25:28 +0000 (11:25 +0000)]
Rename the Expr.w.iRightJoinTable to just Expr.w.iJoin, so that the words
"RightJoin" in the former name do not lead readers to believe that this has
something to do with RIGHT JOINs in particular.
FossilOrigin-Name:
e8c00442d2daedec079748d13147bf73b0ec3c3cf432bce2cdccb706bdff2853
larrybr [Sat, 9 Apr 2022 18:51:49 +0000 (18:51 +0000)]
Fix .import bug reported at https://sqlite.org/forum/forumpost/
14db09d7e765b819 . zAutoColumn made to deliver characters, not bytes.
FossilOrigin-Name:
21e96600d90c1cda84777abe22a11058eba46c9faefeb05f8c31bc0e7fa84b19
drh [Sat, 9 Apr 2022 03:06:01 +0000 (03:06 +0000)]
The sqlite3WhereMalloc() routine allocates memory that is automatically
deleted when the corresponding WhereInfo object is destroyed.
FossilOrigin-Name:
f237e1d8cc41b937f34288daebfacf5f7b0990a807a805e0cb6b45bc730192d6
drh [Fri, 8 Apr 2022 17:01:29 +0000 (17:01 +0000)]
Enhance the sqlite_dbpage fix at [/info/
642a0b4752743216 |check-in
642a0b4752743 ]
from about a month ago such that it still takes a transaction on all attached
databases, but it only starts a read transaction for read-only operations,
rather than starting a write transaction for everything.
FossilOrigin-Name:
8efd61e8518594e3e9c84681fc35796a78fe8885a97ad4dd19f1573ee8065b18
drh [Fri, 8 Apr 2022 15:11:10 +0000 (15:11 +0000)]
Improved explanation and commentary on the sqlite3JoinType() routine. One
of the error messages changes slightly, but besides that everything works
the same.
FossilOrigin-Name:
48f2e5a1fbaa8ceb32e08066766be74233b0c67ab430bbf7adfdff42cdb7b8ec
drh [Thu, 7 Apr 2022 20:45:38 +0000 (20:45 +0000)]
Fix two unreachable branches introduced by the recent
sqlite3TriggersExist() optimization.
FossilOrigin-Name:
1b5475d212cf9de0bff69eee8c607b4fcd8e04bf4df72171429e7609c4153951
drh [Thu, 7 Apr 2022 19:06:31 +0000 (19:06 +0000)]
Enhance the EXPLAIN output formatting in the CLI so that the subroutine that
implements the loop body for the multi-index OR optimization is indented.
FossilOrigin-Name:
c2965fea9df7076b235d3eadaf84f0a36242476d0329030b0e57557b66e2540c
drh [Thu, 7 Apr 2022 18:17:56 +0000 (18:17 +0000)]
The ".testctrl optimizations 0x400000" command disables the generation of
OP_ReleaseReg opcodes. OP_ReleaseReg opcodes are usually only generated for
SQLITE_DEBUG builds and are used to verify that registers are descoped
propertly. But they can get in the way of code understanding when studying
bytecode dumps. So this new optimization setting is provided to
temporarily turn OP_ReleaseReg opcodes off.
FossilOrigin-Name:
fa5276725f246cef9d58b27c1e617ee3f873f7a9b88284a4e8fc453ebda338bc
drh [Thu, 7 Apr 2022 14:13:32 +0000 (14:13 +0000)]
Fix the parsing of C-style comments in Lemon, as reported by
[forum:/forumpost/
b6edc69548 |forum post
b6edc69548 ]. This has no affect
on SQLite itself.
FossilOrigin-Name:
201569e09b000919ccb463bd581fb2ecd5320e7f584fdb1bc2aaba111061d5c3
drh [Thu, 7 Apr 2022 14:03:07 +0000 (14:03 +0000)]
Optimization to sqlite3TriggersExist() saves over 700K CPU cycles.
FossilOrigin-Name:
5043a3507e0781878e0e1bea5095a33273958820baead4af8fc2929e9d7c07ee
drh [Thu, 7 Apr 2022 13:48:34 +0000 (13:48 +0000)]
Avoid compiler warnings about the new sqlite3Show() debugging routines
begin "defined but not used".
FossilOrigin-Name:
47ddc26974fbad8233c953d435e79d4f5dd5e09fbd684ea5f4ad32f4cae6cae6
drh [Thu, 7 Apr 2022 12:10:00 +0000 (12:10 +0000)]
Omit an unnecessary initialization in tokenExpr().
FossilOrigin-Name:
8f6ae686019c61a03fe70eb78d2b529b1cf126215b45513a97cfdf7086f82f54
drh [Thu, 7 Apr 2022 10:11:35 +0000 (10:11 +0000)]
drh [Thu, 7 Apr 2022 01:11:13 +0000 (01:11 +0000)]
Improved technique for parsing the ON and USING clauses of a join is faster
and uses less memory.
FossilOrigin-Name:
158156a3e3d50042cafc75dea3aaaa68b1f2efb9c3d178518ea6e68e32e0d21c
drh [Wed, 6 Apr 2022 19:46:20 +0000 (19:46 +0000)]
Faster parsing of the FROM clause in joins for the common case where there
is no INDEXED BY clause.
FossilOrigin-Name:
848b7a0ea99ddc52091b78313f018c07d00a0e28aa6da8c1cae709c1d03468fe
drh [Wed, 6 Apr 2022 18:30:17 +0000 (18:30 +0000)]
Improvements to the display of AST for DML statements.
FossilOrigin-Name:
84c239a071cfaf8af107646f01ef269e2915fd2384e95927d484f2e408ba6bbf
drh [Wed, 6 Apr 2022 15:41:53 +0000 (15:41 +0000)]
Attempt to show triggers in the TreeView output from DELETE, INSERT, and
UPDATE statements.
FossilOrigin-Name:
b0939d6f4d94b45dce53ace6295508a67d574cc72bd6977623bf77065b3c4e64
drh [Wed, 6 Apr 2022 12:54:41 +0000 (12:54 +0000)]
Corrections and updates to the header comment describing the
TriggerStep object. No changes to code.
FossilOrigin-Name:
abb34c0830a49d4f4e277ddd17e710529e87cba7061f3546079dbba2f82b020e
drh [Wed, 6 Apr 2022 12:25:04 +0000 (12:25 +0000)]
Add the sqlite3Show() family of debugging interfaces under SQLITE_DEBUG.
No changes to deliverable builds. Rename SQLITE_ENABLE_SELECTTRACE to
SQLITE_ENABLE_TREETRACE in ctime.c.
FossilOrigin-Name:
bc33168cf1f48caf848c2dc5c3ae15e4efff8c0378f944eb5398a245139a2b35
drh [Wed, 6 Apr 2022 11:08:38 +0000 (11:08 +0000)]
Rename debugging defines and variables from SELECTTRACE to TREETRACE (and
similar) since the functionality has how expanded to include data structures
beyond SELECT statements. Should not affect deliverable builds.
FossilOrigin-Name:
393fa32e188a017f431372b54037cb31e885030542f00d0bfd59da9d9db5c014
drh [Wed, 6 Apr 2022 10:37:44 +0000 (10:37 +0000)]
Add additional tree display routines for DELETE and UPDATE. No changes
to deliverable code.
FossilOrigin-Name:
fbd288ff3d4ea47cd324b5952e7754a465901844f2d950f0860d4488d5b6eb9f
drh [Wed, 6 Apr 2022 00:29:21 +0000 (00:29 +0000)]
Add new diagnostic "sqlite3TreeView" routines for IdList, Upsert, and for
INSERT statements. This is all debugging code. There are no changes to
release builds.
FossilOrigin-Name:
f3084122039bcb30c8617f5f432009a49be8b488235850a1f10ef862c91560b2
drh [Mon, 4 Apr 2022 20:20:22 +0000 (20:20 +0000)]
Small performance and size improvement to OP_Found.
FossilOrigin-Name:
81587a18b7c0516628453000172a0c58e74ee173c15f655d035799d84d4e2d81
drh [Mon, 4 Apr 2022 19:58:55 +0000 (19:58 +0000)]
drh [Mon, 4 Apr 2022 19:43:57 +0000 (19:43 +0000)]
Optimizations to the OP_Found opcode save about 600K cycles in speedtest1.
FossilOrigin-Name:
5c3357ad62843fe982b9c2d31dbf02018f2948ceab2c85dac917cd9ce1e97dd6
drh [Mon, 4 Apr 2022 18:17:59 +0000 (18:17 +0000)]
Use unpacked keys for OP_Found in foreign key processing.
FossilOrigin-Name:
328dc76657eb5317f0201859d2b3abe6918103b894f7beaed0aca3058a9f2b64
drh [Mon, 4 Apr 2022 15:15:45 +0000 (15:15 +0000)]
When constructing the JSON Path for the "fullpath" column of the
json_tree() and json_each() table-valued functions, be sure to quote
object labels where necessary.
FossilOrigin-Name:
0fbbe7881cadf0b3c211653c7a0797e0a90c7c24da78ecc8a27140c05f89f2ed
drh [Mon, 4 Apr 2022 14:24:14 +0000 (14:24 +0000)]
Fix the JSON Path parser so that it will accept zero-length object labels.
[forum/forumpost/
c082aeab43 |Forum thread
c082aeab43 ].
FossilOrigin-Name:
84fe95d2a5b4d232d657e3b8110027a698a9bcd597f205cc535cfa97bc299f21
drh [Mon, 4 Apr 2022 11:38:49 +0000 (11:38 +0000)]
Performance optimization and stronger assert()s in the comparison opcodes.
FossilOrigin-Name:
e0305e640b9078c7eed9ab0bcc14f4515b54e7cd9ade3306bc2d1660f05b2725
drh [Mon, 4 Apr 2022 01:12:11 +0000 (01:12 +0000)]
Only invoke sqlite3VdbeClearObject() from a single location, so that the
compiler is more likely to in-line the code. Performance increase and
size reduction.
FossilOrigin-Name:
c6947a96e61f71aa61ca3d70d9e2612d784ab04d60fa88852b03cfce86b1bf2b
drh [Sun, 3 Apr 2022 22:35:13 +0000 (22:35 +0000)]
Performance optimization in the sqlite3VdbeHalt() routine.
FossilOrigin-Name:
9564d72a0820dbcb38f905fcd42ed4c858ea8fb5f648b189ceb65380a14a785b
drh [Sun, 3 Apr 2022 20:39:48 +0000 (20:39 +0000)]
Performance optimization and size reduction in the OP_Halt opcode.
FossilOrigin-Name:
21948e6e1ccd2ce128742415d21759604ecb8902226ec4707dbd75585450f208
drh [Sun, 3 Apr 2022 19:13:40 +0000 (19:13 +0000)]
Omit the Vdbe.runOnlyOnce flag (simplifying the prepared statement
implementation) and accomplish the same result by adding an "OP_Expire 1 1"
opcode to prepared statements that would normally have runOnlyOnce set.
FossilOrigin-Name:
6e20e1c46d17ac6aba21e02b57649af51cfa415d83d0c001b30677d2fd1f1dc1
drh [Sun, 3 Apr 2022 10:42:06 +0000 (10:42 +0000)]
Performance optimization and slight size reduction in the OP_Transaction
opcode.
FossilOrigin-Name:
7bee8c195f3fc27aaab13e493ad446a4f19201de3ac064ed6d8a3cbda7c69ee1
drh [Sat, 2 Apr 2022 22:47:47 +0000 (22:47 +0000)]
Expand the getVarint32() macro in a few places, as the C-compiler seems to
be able to optimize better when that macro is expanded manually.
FossilOrigin-Name:
cd4fe34b98bf5ce26f3596c717edb73932f3b46ad6e9b4934d06b7b3c176a0d6
drh [Sat, 2 Apr 2022 20:08:48 +0000 (20:08 +0000)]
drh [Sat, 2 Apr 2022 19:21:58 +0000 (19:21 +0000)]
Ensure that a zero-blob does not cause in invocation of memcpy() with a
zero length and a NULL source pointer.
FossilOrigin-Name:
35441eb5e1447e01f2031837a4ede705bce34f87be27912278cc730abce6cf05
drh [Sat, 2 Apr 2022 15:19:02 +0000 (15:19 +0000)]
drh [Sat, 2 Apr 2022 14:30:58 +0000 (14:30 +0000)]
In-line the sqlite3VdbeSerialPut() routine into the OP_MakeRecord opcode.
This allows some duplicate comparisons to be omitted, resulting in a size
reduction and performance increase.
FossilOrigin-Name:
6f4d6f212a3558c27be6e9dcf71cec43c424d445e5889c6e91dde84a19c5a2c1
drh [Fri, 1 Apr 2022 21:01:37 +0000 (21:01 +0000)]
The putVarint32() macro does not optimize well. So expand it into in-line
code in places were performance is an issue.
FossilOrigin-Name:
390c239e53cf936a97b268dce8171f0b17050542ae64735ca8ef375fec2c9544
drh [Fri, 1 Apr 2022 20:39:40 +0000 (20:39 +0000)]
Loop optimization in the OP_MakeRecord opcode.
FossilOrigin-Name:
47a61fbd63928021098fbe492283f1afda7c293b3b2706c001192ae4ff1b2cbe
drh [Fri, 1 Apr 2022 20:19:36 +0000 (20:19 +0000)]
It is not necessary to de-ephermeralize the output registers in the
OP_ResultRow opcode. Omit that step for a size reduction and performance
increase.
FossilOrigin-Name:
8a07745aed1d0a4eead55d43f1923597b12371f307ecf5bc19c5a1db9a107a50
drh [Fri, 1 Apr 2022 19:13:39 +0000 (19:13 +0000)]
There is no need for sqlite3_step() to check for an OOM condition prior
to starting up.
FossilOrigin-Name:
44be7f46ba89289683ed0e123169ca9adb1018de03071d66de480c910a23d074
drh [Fri, 1 Apr 2022 19:04:13 +0000 (19:04 +0000)]
Omit the Vdbe.doingRerun field for a slight size reduction and performance gain.
FossilOrigin-Name:
e93297a9d775688e6274c54ba75b19fc1fe8b29b73b9b5e7f94f3f2ca37f045f
drh [Fri, 1 Apr 2022 18:45:11 +0000 (18:45 +0000)]
New macro ROUND8P() which works like ROUND8() but assumes that the input is
already a multiple of the size of a pointer. It becomes a no-op for
64-bit machines, giving a small size reduction and speed boost.
FossilOrigin-Name:
d126f304cde66ebfe21a4967c22dcba0bac27cbce56318b14bd50051e49c978c
drh [Fri, 1 Apr 2022 18:19:04 +0000 (18:19 +0000)]
Provide and use a version of sqlite3VdbeFreeCursor() that guarantees the
cursor pointer is not NULL. This saves a few bytes of code space and a
few CPU cycles.
FossilOrigin-Name:
cb5e6f8e265c91221227e5f15b95798c688773262407dd138d414103184702f6
drh [Fri, 1 Apr 2022 17:23:17 +0000 (17:23 +0000)]
Remove an unnecessary branch from sqlite3VdbeReset().
FossilOrigin-Name:
a7d79560a0efd6221ba59ce84bcb4fa94024a901ac4a45e192ddecc6e1b5c78c
drh [Fri, 1 Apr 2022 17:01:57 +0000 (17:01 +0000)]
Refactor the Vdbe.iVdbeMagic field into Vdbe.eVdbeState. Split the RUNNING
state into separate RUNNING and READY. This gives a size reduction and
performance increase.
FossilOrigin-Name:
5a50a42fde9477868fad31099f5fe976437825fac44f8b3a4cf6c739c7667bbb
drh [Fri, 1 Apr 2022 16:22:41 +0000 (16:22 +0000)]
Avoid a harmless uninitialized variable warning in PRAGMA incremental_vacuum.
FossilOrigin-Name:
6d976f90dfe4886c3f4c062151af5c5ca7454d34b71172401b8c67acd2d663a0
drh [Fri, 1 Apr 2022 15:31:58 +0000 (15:31 +0000)]
Have the sqlite3_context object carry the encoding for the prepared statement
that it represents, so that sqlite3_result() and similar can set the encoding
according to the prepared statement, even if the database encoding has
changed.
dbsqlfuzz
c409b10d0a6bccf78ab00f47e1d29d42ee5b3565
FossilOrigin-Name:
d4e19314f564126e180e091f9135c7bc55a10442edb46fbd3a4cfad21201dfa6
drh [Thu, 31 Mar 2022 21:15:09 +0000 (21:15 +0000)]
Split out the RUN state into separate READY and RUN states.
FossilOrigin-Name:
d698826b08b88e227eb83f84b3cdb19f17306b532eccfa162090abccdf3c63d8
drh [Thu, 31 Mar 2022 20:04:49 +0000 (20:04 +0000)]
Rename Vdbe.iVdbeMagic to eVdbeState. Remove unnecessary states. This is
a preliminary step toward splitting RUN_STATE out into several other states.
FossilOrigin-Name:
ff91191d232305d44ae6c0fbca2542a749422dc716fa1fd5d54f58c7d6052c14
drh [Thu, 31 Mar 2022 16:09:13 +0000 (16:09 +0000)]
drh [Thu, 31 Mar 2022 11:12:56 +0000 (11:12 +0000)]
Refinement to [
3f9887d4a58cbfdb ]: The SQLITE_CONSTRAINT error should only
be returned if the prepared statement came from sqlite3_prepare_v2(). The
legacy sqlite3_prepare() is documented to return only SQLITE_ERROR.
FossilOrigin-Name:
f2d9262e4427ab37ba26c004fc7a4790c86c1856d695a6b4ec3e72732ea54c09
drh [Wed, 30 Mar 2022 17:56:27 +0000 (17:56 +0000)]
Faster and slightly smaller implementation of sqlite3Step().
FossilOrigin-Name:
c6901a8c78838228f8135c9346b214e638b72086fd85367b9ff482273e62ece6
drh [Wed, 30 Mar 2022 17:36:40 +0000 (17:36 +0000)]
Small size reduction and performance increase in sqlite3FinishCoding().
FossilOrigin-Name:
9248ce50f57fb9c4ba67949fdf9c9567c3e626cd9dd1b41b71c602d29c77c43e
drh [Tue, 29 Mar 2022 22:57:00 +0000 (22:57 +0000)]
In setResultStrOrError(), if the input string pointer is NULL and hence the
value gets set to an SQL NULL, then the Mem.enc field is uninitialized. So
do not read it. This is a harmless OSSFuzz/ASAN found problem.
FossilOrigin-Name:
47d0b1c4cfc3d2d8f57a02079276bb70a205ffd0f18007dd39c92f813d4c87f5
drh [Tue, 29 Mar 2022 20:50:20 +0000 (20:50 +0000)]
Ensure that sqlite3VdbeMemSetStr() always leaves the value in a consistent
state even if there is an error.
FossilOrigin-Name:
c86ab289ec31ce9ae0abaf103a829b8d1e5ed632f493456f1f40607aeb91b41c
drh [Tue, 29 Mar 2022 19:19:23 +0000 (19:19 +0000)]
Reverse the order of two tests to stop a harmless initialized value
warning from MSAN - reported by OSSFuzz.
FossilOrigin-Name:
800b8fdad73b67105e416b4b5c6a5c5ded7d6a43b4eacd6b67d690cab7584b0b
drh [Tue, 29 Mar 2022 13:16:32 +0000 (13:16 +0000)]
Avoid unnecessary calls to balance() from sqlite3BtreeDelete().
FossilOrigin-Name:
d0966d1bdd474e27cb048884d340184f0e81a4fab65eb6b74682b20630caddf8
drh [Tue, 29 Mar 2022 01:43:09 +0000 (01:43 +0000)]
Fix the sqlite3_result_xxxxx() routines so that they all check for and
perform any necessary text encoding conversions and check for oversize
strings and BLOBs. Thus those checks can be done where they are most
efficient and avoided in cases like OP_Function where they are more
expensive.
FossilOrigin-Name:
d50b162b2f2e320af0889b931351f9443580465a933f6657fa98f437b6579277
drh [Mon, 28 Mar 2022 18:34:40 +0000 (18:34 +0000)]
Further size and performance optimizations for sqlite3VdbeMemSetStr().
FossilOrigin-Name:
310a3e102d8eedf92ee63ffffb48621abfb1e2736b96bd2a676d63cca0f40598
drh [Mon, 28 Mar 2022 17:34:46 +0000 (17:34 +0000)]
Slightly smaller and faster sqlite3VdbeMemSetStr().
FossilOrigin-Name:
06928e745c7bcb26ec46a17989f30efe3536fd48a74c8a1cd423cc9ff6feccb5
drh [Mon, 28 Mar 2022 15:06:36 +0000 (15:06 +0000)]
Performance increase in the loop that frees an opcode array.
FossilOrigin-Name:
4ccebb86aae178dbce905d782f04d98211f8fce9aacd71c12b8694c92a4f5c40
drh [Mon, 28 Mar 2022 14:56:47 +0000 (14:56 +0000)]
Another small performance gain by using sqlite3DbFreeNN().
FossilOrigin-Name:
daa924af987253345bdb1c71b13378681bd252521e94d01f5d4629601232c352
drh [Mon, 28 Mar 2022 14:18:03 +0000 (14:18 +0000)]
Use sqlite3DbFreeNN() instead of sqlite3DbFree() in a few hot spots for
better performance.
FossilOrigin-Name:
b12de0ecc78a4f654c8e7b2b17cc2201688808a4f516908e9563a216677e655c
drh [Mon, 28 Mar 2022 13:22:54 +0000 (13:22 +0000)]
Performance optimization in the memsys5 memory allocator.
FossilOrigin-Name:
949133231f8f751aa86518d0d3f6f03d7827fec085bfef3929fa3d57369d0216
drh [Fri, 25 Mar 2022 01:23:37 +0000 (01:23 +0000)]
Fix the Bloom-filter optimization so that it does not use IS NULL or
IS NOT NULL constraints from the WHERE clause when operating on a LEFT JOIN.
[forum:/forumpost/
031e262a89b6a9d2 |Forum thread
031e262a89b6a9d2 ].
FossilOrigin-Name:
1a6328f2a5b4973094e5f85787145d652119822c86ec01a61f3f985c9d2903f2
drh [Thu, 24 Mar 2022 14:01:55 +0000 (14:01 +0000)]
The "PRAGMA writable_schema=ON" flag should not allow OOM errors to pass
while parsing the schema.
dbsqlfuzz
9cc49e1a53e1cef8e3a1496a88c683aa20483163 .
FossilOrigin-Name:
a7abb725c7c783331e73837597917e25e5ff692aac8ec97a0a8c0e30db62d68b
drh [Wed, 23 Mar 2022 10:04:52 +0000 (10:04 +0000)]
Use trickery to code the UTF-8 BOM for the --bom option on .output, .once,
and .excel in the CLI, to work around a warning in some Microsoft compilers.
[https://fossil-scm.org/forum/forumpost/
bd0844268f0fab71 |Fossil forum post
bd0844268f0fab71 ].
FossilOrigin-Name:
43143ad131f17734fd2eff849e0a1bc2e26daf6a28c7e07d697d38732e6af5fc
drh [Tue, 22 Mar 2022 23:33:20 +0000 (23:33 +0000)]
Ensure that database corruption does not cause the cursor passed into
sqlite3BtreeDelete() to be invalid.
dbsqlfuzz
209bf3de9ee11ae440848ab9bc9c13858f9be2e4 .
FossilOrigin-Name:
a85126f96614c53b030c6e6c43ff239eae458048597a10e9a0361fcec8628ecf
drh [Tue, 22 Mar 2022 19:41:55 +0000 (19:41 +0000)]
Harden the xShmLock method of both the unix and Windows VFSes so that they
are robust against being invoked when the SHM file is not open.
FossilOrigin-Name:
67d8b434f628d44c4a90ce8ff5ab2e381f500bb42bdbfab9a17d21925a2ec6cd
drh [Tue, 22 Mar 2022 11:22:55 +0000 (11:22 +0000)]
Make the sqlite3_serialize() and sqlite3_deserialize() interfaces accessible
to loadable extensions.
FossilOrigin-Name:
81f8746bc65828fb91e170393f22f1f4e9c587a8938e8c11b72315fcd6131403
larrybr [Tue, 22 Mar 2022 03:03:13 +0000 (03:03 +0000)]
expose sqlite3_{deserialize,serialize}() in sqlite3ext.h
FossilOrigin-Name:
da874180d35aacdeb9c06f5b425e8909d833e2765179c4337854d56b8a624fd5
larrybr [Tue, 22 Mar 2022 02:53:34 +0000 (02:53 +0000)]
Create new branch named "extapi-serializing"
FossilOrigin-Name:
a1220a2170a09075a42d1d6c4b502ffa7cc92856779b9eb2ecb9e05c09ccedac
drh [Mon, 21 Mar 2022 20:08:13 +0000 (20:08 +0000)]
Do not allow an #ifdef inside of an assert(), as gcc tells us that is
not portable.
FossilOrigin-Name:
c7a2047e93df36c172be0be773f9a04150dafe7ba1773269d74016418d262fc4
drh [Mon, 21 Mar 2022 18:48:31 +0000 (18:48 +0000)]
Some branches are no longer reachable after the previous change. Mark them
accordingly. Also improve comments.
FossilOrigin-Name:
88d69f60cceb22bde42cfe43c23259c7bad47b8e06f918a79bd089a77b480d46
drh [Mon, 21 Mar 2022 18:17:09 +0000 (18:17 +0000)]
Strengthen the defenses against corrupt databases in the
sqlite3BtreeInsert() function of the btree module.
[forum:/forumpost/
c7ec29905f |Forum post
c7ec29905f ].
FossilOrigin-Name:
4df301c8610c4c36b4eb360d49ccaef873c63ea719ccb14b357754ff0b3ea5ef
drh [Mon, 21 Mar 2022 15:42:42 +0000 (15:42 +0000)]
The previous assert() fix was not correct when building with
-DSQLITE_ENABLE_OFFSET_SQL_FUNC. This is the fix.
FossilOrigin-Name:
c0a4767fef27cfe4fdc1d8a29342998095894769a63d84e37ec47ced7ce4e5f7
drh [Mon, 21 Mar 2022 13:47:15 +0000 (13:47 +0000)]
Fix the assert() that attempts to verify that the table-reference to
index-reference translator finds all required translations.
[forum:/forumpost/
929168fdd6 |Forum post
929168fdd6 ].
FossilOrigin-Name:
fa9bd1fce47e8db1cfc4cd8efd2c09f8711ea917ce7d116dc7226c575cb9a6d4
drh [Mon, 21 Mar 2022 11:32:45 +0000 (11:32 +0000)]
Fix an assert() in sqlite3TableAffinity() that might have been false if there
was a prior syntax error in the query.
FossilOrigin-Name:
23fdb169ca1622369cd44fd641946c37fef09071625838b3b9c86c31244ed205
drh [Sat, 19 Mar 2022 15:19:35 +0000 (15:19 +0000)]
In the CLI, disable the zipfile and sqlar extensions in --safe mode.
FossilOrigin-Name:
d8b65a2dab97392ff81bcc33ff707b4e626a10d84a258c6452e45f90cd2c7f45
drh [Sat, 19 Mar 2022 12:48:14 +0000 (12:48 +0000)]
Fix the zipfile extension so that it knows that a zero-length BLOB returns
a NULL pointer.
[forum:/forumpost/
ae86934905 |Forum post
ae86934905 ].
FossilOrigin-Name:
5f6d56737caefa78e542a7af2f95646e3a818e0ecdd8e838f3c2978500ce960c
drh [Thu, 17 Mar 2022 23:49:58 +0000 (23:49 +0000)]
Change a conditional into an assert() due to the change in
[
387ab17b8a0a4b87 ].
FossilOrigin-Name:
13b584869f40ea6aa2190dbac64709695ee8d72b27bc5afb8b39ab3763b9c46a
drh [Thu, 17 Mar 2022 22:09:17 +0000 (22:09 +0000)]
Add a 4th output code (value 3) from the sqlite3_vtab_distinct() interface
that indicates that SQLite wants distinct results that are sorted.
FossilOrigin-Name:
135d8b97b01f9b5204f486f828c274c2d779c17723e79171ca61f738746adf8e
drh [Thu, 17 Mar 2022 18:03:08 +0000 (18:03 +0000)]
drh [Thu, 17 Mar 2022 11:23:13 +0000 (11:23 +0000)]
Another fix for a corner-case in sqlite_offset() - this one having to
do with computed virtual columns in a WITHOUT ROWID table.
FossilOrigin-Name:
84ddd19bcec99f04b43b1a823477457758a2d93ea9beda43598e1234ea07776c
dan [Wed, 16 Mar 2022 19:28:18 +0000 (19:28 +0000)]