drh
077efc2730
Optimize the argument to the octet_length() function so that it does not
...
attempt to read content from disk.
FossilOrigin-Name: 8b8ea4e3f52d96cc217bd1fb27ca4a83489ef1f250756ed2f790d1b0ee529a3a
2023-06-22 21:19:37 +00:00
drh
d6c671e626
Merge recent trunk enhancements into the octet_length branch.
...
FossilOrigin-Name: d35c214811aac7dec0000ca2aa77231f74a7963dd0c53cf25a65ade5ef0f8dc0
2023-06-22 13:01:02 +00:00
drh
d4170ac0eb
Simplification to the getAndInitPage() routine that results in improved
...
performance.
FossilOrigin-Name: 2e9734c2335d8c06fedc9f4cca02baaf326f7fa276bd464f3214f383715a48d6
2023-06-22 01:03:39 +00:00
drh
71aac8763f
Improved comment on the getAndInitPage() in btree.c. No code changes.
...
FossilOrigin-Name: dc468cfdb825083b3a4b6cb95c913961e9312e22103c5a0cd923b75c83c65e13
2023-06-21 21:47:09 +00:00
drh
3a202be6f1
Add the --pcachetrace option to the CLI.
...
FossilOrigin-Name: 61dfa92b44ad38a7aac76a09e167819ce5d0acace3e06ba9ed17b3264cc043c1
2023-06-21 14:11:25 +00:00
drh
40ee72947e
Omit unnecessary calls to table locking routines in the common case when
...
there is no shared cache.
FossilOrigin-Name: f94f3021cde1d46373ee8fc8e5028d7507a937240c59cf0d0d19ab22acbd3c41
2023-06-20 17:45:19 +00:00
drh
c439b9e0c6
Avoid unnecessary calls to sqlite3DeleteTable() with NULL pointers.
...
FossilOrigin-Name: 4a35f391995a88757d7b46f52bf241f523ee2a6a7b6726df00cddaec8cee7080
2023-06-20 16:26:52 +00:00
drh
f6e04b6e29
Avoid unnecessary calls to sqlite3CodeRowTrigger().
...
FossilOrigin-Name: 27c174dbd0e7ba029d13fb005fc950ac99eb6aee31903ee3acfc88c262d13f6a
2023-06-20 15:48:24 +00:00
drh
bcc76bd419
Performance optimization in sqlite3VdbeAddOp4Int().
...
FossilOrigin-Name: 456a24324bd42e1e3384ffa8474b7d0760b27df95be0e92ddce5eb87339f6272
2023-06-20 11:46:32 +00:00
drh
f82c8cb0d5
Avoid unnecessary NULL pointer checks on calls to sqlite3WalkExpr().
...
FossilOrigin-Name: 73d86a12fb068456a884c030fddd87020d6ec9d56376de541cf082b2104174d3
2023-06-19 23:27:22 +00:00
drh
1e24dc987a
Small performance improvement and size reduction by recognizing that no
...
SQL keywords have less than 2 characters.
FossilOrigin-Name: 6b3d25b7982623ab4b25161aff9ab44778e136069043ab425543597c42c98ae5
2023-06-19 20:54:49 +00:00
drh
1be61ad278
Fix large integer constants so that they work on older C compilers.
...
FossilOrigin-Name: 3c94f87806a8b408d8204fc7deec16d01c085ee199ff21a1f20b6346ce816cfe
2023-06-19 13:09:16 +00:00
drh
8e5cef7bca
Fix harmless compiler warnings that show up on 32-bit RaspberryPI builds.
...
FossilOrigin-Name: bc4d20f362925e4ce5c79f0d7a27a8e9bbac92525bd4cea2ae983798e3f8c37d
2023-06-17 15:42:44 +00:00
drh
0587a1a8bb
In date/time functions, fix the rendering of "subsecond" and the
...
computeHMS() routine to better deal with floating point
rounding errors that arise on some 32-bit systems.
FossilOrigin-Name: e46a00ae880dd12df090105498a85017d1367f88bf27d86f0b0200cf0536a906
2023-06-17 15:22:00 +00:00
drh
56a410741b
Address various harmless compiler warnings from
...
[forum:/forumpost/d526da8ee4|forum post d526da8ee4].
FossilOrigin-Name: 365caf2f97e8f15842f52536e8d05d359e9d6e863182e020ce14a9a9f27ee057
2023-06-16 14:39:21 +00:00
drh
2e4d526996
Fix the pager such that if the xOpen() message sends back the SQLITE_OPEN_MEMORY
...
flag, the pager is opened in journal-mode MEMORY, even if compiled with
SQLITE_OMIT_DESERIALIZE. No changes to the logic as long as that OMIT flag
is omitted. We need to better document the behavior of xOpen to describe this.
FossilOrigin-Name: da1252b29852191eccbea98e0314408c75bb83a51f9d68d589705d4971a23850
2023-06-16 11:05:49 +00:00
drh
0c04f2e576
Work around what appears to be a GCC 32-bit optimization problem in the
...
computeHMS() routine of the date/time logic.
FossilOrigin-Name: aebdbcbebff1319dd00551c9fb9ad4b08859f10e87f097295d564ae1ba188c02
2023-06-14 12:19:07 +00:00
drh
e30ecbfb84
Improved sqlite3_error_offset() values for bare column errors on '*' and
...
'table.*' expressions in SELECT statements.
FossilOrigin-Name: 118fe600876686273f85d0a080a21267e83c11826365f3220336b1bd39562518
2023-06-13 18:10:52 +00:00
drh
d34ce81867
Extended the time-diff format so that it can have a 5-digit year. This enables
...
time differences to span the full range of dates supported by SQLite. Also
fix some inaccuracies in the computation of time differences and add new
test cases.
FossilOrigin-Name: d57ddbf4eeeb3ccfe31871f098045b9e58634153a3c3030f597cb58c1177218a
2023-06-13 16:55:24 +00:00
dan
16702ec69d
Fix a problem causing bloom filters to be used less efficiently than they might be. Problem reported by forum post [forum:/info/06c3f01da6 | 06c3f01da6].
...
FossilOrigin-Name: 56d9bb7aa63043f5db4a1e5e8eefe46762dba433145807c6e27a8316f1d03d7a
2023-06-12 13:49:37 +00:00
drh
997670f997
Check-in [70e12efd1b189560] left a path through lockBtree() that failed to
...
set the BTS_PAGESIZE_FIXED flag. That omission is fixed by this check-in.
dbsqlfuzz 02c9ab74eb0619c9ae3b894ce157fae1d7f94645
FossilOrigin-Name: 30dcc872eb1c9549708009c86357826c4f15ffa17e379dab5cd4aec596643728
2023-06-12 13:31:20 +00:00
drh
26d71f03fc
Make sure temporary sqlite3_value objects used by STAT4 are reset to NULL prior
...
to being reused, to prevent a memory leak associated with
the custom xDel string value destructor.
dbsqlfuzz 65209ab5d5730e4fd14fff9d024325a77239036e.
FossilOrigin-Name: 88be7075cdc7000d3a1e84e49064cf8c28fc7caca9c464f44a83265223961b51
2023-06-11 21:58:20 +00:00
drh
b102d62749
Defer setting the BTS_PAGESIZE_FIXED flag until after we are certain there
...
are no errors and the page size has been set.
FossilOrigin-Name: 70e12efd1b189560e07f59db03a20b8c1ab19224aae4fc3d7c0bdfd2568064ea
2023-06-10 19:33:02 +00:00
drh
26e136bb9a
Fix an assert that can go bad if STAT4 content is corrupt. This is a
...
follow-up to the previous check-in.
FossilOrigin-Name: ac1d3860af4eb30e4a7444b01d7b5afc91a4b1f5e3fe5414a491c6edc7ff1631
2023-06-10 18:40:20 +00:00
drh
04b92471f7
Extra space to prevent a buffer overread on corrupt STAT4 records.
...
dbsqlfuzz 7128d1b41ce9df2c007f9c24c1e89e2f1b2590ca.
FossilOrigin-Name: b99135288b157044e2319833e8632c89483778f876aa45ee66e46ffb6ae42ab2
2023-06-10 17:05:05 +00:00
drh
7520116441
Simplify a memcpy() in defragmentPage(). It now might copy more content than
...
is strictly necessary, but runs faster and uses less code space. Possible
reasons for the improved performance:
(1) the copy is now always 8-byte aligned,
(2) fewer intermediate results are required which means less register
pressure which helps the compiler to optimize the subroutine.
FossilOrigin-Name: 6e5607ae4d872954483a8d7a5c866aa41e4af70fae9652fb7eb211b316ab724d
2023-06-09 15:54:18 +00:00
larrybr
55be21647e
Fix straggler misspellings and tidy the custom dictionary. Also include pickups from [forum:/info/c61fb09afd|forum post c61fb09afd].
...
FossilOrigin-Name: 8c291d99946eb32b20b743921202f9c7cfb716268ff526817b27adbb7942e40b
2023-06-07 17:03:22 +00:00
drh
c5a5a54c51
Remove additional traces of FTS1 and FTS2 that were missed by [2bb50d5aedef0fd2]
...
FossilOrigin-Name: 9a12bac5d24c7a8364d2127fd12c3409a53ef83e408d10f344ddd311cdba98af
2023-06-07 15:00:54 +00:00
larrybr
bc91738e66
Add a C-source spell-checking facility. make misspell (on Nix)
...
FossilOrigin-Name: 26c1bb4bd9e9f56613c3aa87407a7f562fd4ebde5bfd6dece02078001d9a45f8
2023-06-07 08:40:31 +00:00
drh
b3d7f1c2db
Prototype implementation of the octet_length() SQL function.
...
FossilOrigin-Name: 2db989c8635f7e89b3ea58d1fde94787fced039ac1a118d9b6362811eda73f87
2023-06-03 11:22:30 +00:00
larrybr
f1967a7018
Clarify sqlite3_is_interrupted() return. No code change.
...
FossilOrigin-Name: b6c2d3d203100a34335aeba23a8fb82a13297b65eed494d5044ade3bed683bc3
2023-06-02 21:31:15 +00:00
drh
038158e94a
Restore the LEFT JOIN strength reduction that was partially lost in
...
[d747afda5683ca5f] when strength reduction was generalized to all OUTER JOINs.
FossilOrigin-Name: 2d962b84dd8ac2d0968f0283f8f082c1c2a7a1f99b59053b2ad8f58745396447
2023-06-02 18:05:54 +00:00
larrybr
a3f943942c
Do that last CLI fix more simply, using established means.
...
FossilOrigin-Name: a1823b297616bc2bd64eda9df4850fb460d8da8959ae3728195db896d1f89e7b
2023-06-02 13:31:12 +00:00
larrybr
4e8a0eb4e7
Fix CLI fault on missing -nonce reported by [forum:/info/f8c14a1134|forum post f8c14a1134].
...
FossilOrigin-Name: cd24178bbaad4a1dafc3848e7d74240f90030160b5c43c93e1e0e11b073c2df5
2023-06-02 12:56:32 +00:00
drh
4ffcce88ad
Fix the OUTER JOIN strength reduction theorem prover's handling of the CASE
...
operator.
FossilOrigin-Name: 73d7b14b1713d93c4ae07995e9aa6485cbad90bd6125584dbaeccb0cc9410ea3
2023-06-02 00:03:28 +00:00
drh
179c32cb57
Generalize the LEFT JOIN strength reduction optimization so that it works for
...
RIGHT and FULL JOIN as well. Rename it to the "OUTER JOIN strength reduction"
optimization.
FossilOrigin-Name: d747afda5683ca5feb92866a14ccc4c5127d3378ece5cad2c3da819f2477b457
2023-06-01 20:38:22 +00:00
drh
39a7a1a9be
If the filename argument to sqlite3_load_extension() is an empty string, then
...
raise an error. It turns out that if dlopen() is called with an empty
filename, it tries to load the current executable. And then if the caller
requests some other function from the current executable, mischief can result.
FossilOrigin-Name: d01688554715eb4aaa1b1fd1a6b660b84e930edb0e062156ecf5228ee81ca754
2023-06-01 16:40:28 +00:00
drh
f96148c4c6
Add an ALWAYS() on an unreachable branch.
...
FossilOrigin-Name: a00928d48061c1169d5564996e19e7d7c2b962842100bb119846d0f696123c23
2023-06-01 00:28:11 +00:00
drh
e411b69537
Fix the LEFT JOIN strength reduction for IN operators in the WHERE clause.
...
Further simplifications and refinement of the algorithm.
FossilOrigin-Name: 96c72dde79d4069f6c2f81467a35b617633f86f7a7dcafbda991affdaa1f8537
2023-06-01 00:01:20 +00:00
drh
d8cf688469
Add a comment to explain why both sides of an AND must be non-null-row in order
...
for the overall expression to be non-null-row. No code changes.
FossilOrigin-Name: 8396032ce14a75f408f0a75bcb36a6504d5188f20886e275746a2c336a74296f
2023-05-31 18:52:46 +00:00
drh
29e70da4a4
Improved detection of when the LEFT JOIN strength reduction optimization
...
can be applied.
FossilOrigin-Name: f544a8e47cdd5ad7233887a558489983f4f305a39391ff463c43e2e4157da087
2023-05-31 18:35:12 +00:00
drh
d3b54d624f
Minor enhancement to the sqlite3_trace_v2() documentation. No code
...
changes.
FossilOrigin-Name: fba97230e38276f2a02fc24353c3d911dfa24f3a4f75f691de9461d4daf3ae54
2023-05-31 12:42:09 +00:00
drh
7d65f1bec0
Simplifications to the new timediff() logic.
...
FossilOrigin-Name: d6954259bd3f8475f3804fd02a1591d037efa9df54da45776863c024ff90e596
2023-05-30 14:46:30 +00:00
drh
30bb082d3a
All date/time modifiers of the form (+/-)YYYY-MM-DD without the following
...
HH:MM:SS.SSS.
FossilOrigin-Name: fa9237a8ab803ca3f67fe753516b7bdb98be3d625e8e241ddf9b02509210e225
2023-05-30 11:13:56 +00:00
drh
36a5f1e90c
Problems fixed. All tests are passing now.
...
FossilOrigin-Name: cff293b0a79107def7bfe54fd60ac4a721c5098c85229d9b46a4e2c4cbf34a6a
2023-05-30 02:50:32 +00:00
drh
6abbef89e6
Improvements to the timediff() function. Test cases added. Not all test
...
cases are passing.
FossilOrigin-Name: 2cf6518140d61e2123dc20f39d7e97e7bce17e7641405df7fd63e1cdda444ae0
2023-05-30 02:16:33 +00:00
drh
1936a1933c
New date/time modifier: (+|-)YYYY-MM-DD HH:MM(:SS.SSS)?
...
FossilOrigin-Name: 3832b8a9ef84d9b53b48dfce9c1e724897cd7b3e05711e01675419655f894eac
2023-05-29 20:33:33 +00:00
drh
0cbc2143b9
Prototype implementation of a proposed "timediff(X,Y)" SQL function.
...
FossilOrigin-Name: 054a195125a273bab026ada5f07cc7c32818007027a1fd028ca59d2f179276d4
2023-05-29 18:01:42 +00:00
dan
583a5cf5d2
Avoid performing aggregate processing more than once for a single expression. [forum:/info/36ff78b2a3|Forum post 36ff78b2a3].
...
FossilOrigin-Name: 367b4cc549a14222d54530538e692e9d1a365002c1b8c4ef80ddc0523bfdb3a2
2023-05-23 17:35:18 +00:00
drh
ddf6b27579
When converting an aggregate expression to AGG_COLUMN, be sure to remove
...
the EP_Unlikely flag if it is present.
[forum:/info/fbfe330a2009d036|Forum post fbfe330a2009d036].
FossilOrigin-Name: 48e65f18b2ebbe786e84e208f2c6c68de6067ba86912fea5a120fd41d0af2184
2023-05-23 15:16:20 +00:00