1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00
Commit Graph

19741 Commits

Author SHA1 Message Date
drh
6693e78772 Test cases for .import, as well as minor enhancements to .import and to .check.
FossilOrigin-Name: 0252ac1c946cd2101f0084f11951b1aeea330dea23b707934c8852d9abe136b9
2025-12-28 21:37:58 +00:00
drh
c00c0a8392 If the filename argument to the .import command is of the form
"<<endmark" then the content is read from the script (or stdin) until
the first line that begins with "endmark".

FossilOrigin-Name: 6e8ab51fbe0ee918bce6ab960c9fb078764aa9721ef41d39818127eb98045d46
2025-12-28 14:32:28 +00:00
drh
38c8014940 Improvements to the .import command of the CLI.
FossilOrigin-Name: 436ed7937bcd3b5781539d883ff2957b81d74abccb75f65a2ffb7446a5944522
2025-12-28 14:01:52 +00:00
drh
35f37ec959 Change a single integer variable to 64-bit in the tokenizer to avoid
any possibility of an integer overflow.

FossilOrigin-Name: 69cf692a24d714305b2e4c8c4c40f70dc6510c26b8db7e5249f32a53e44c7e5c
2025-12-27 19:57:59 +00:00
drh
683df60dbf Enhance the omit-noop-join optimization so that it is able to omit a
chain of noop-joins.  Optimization improvement suggested by
[forum:/forumpost/11a53f2bad|forum post 11a53f2bad].

FossilOrigin-Name: 5a85b83b9f21ad88938e273bb35b398e91133424683e915836f322b69f277673
2025-12-24 14:03:15 +00:00
drh
337fce82f0 Additional changes to support the ".schema" command on builds that omit
virtual tables.

FossilOrigin-Name: 6b5c0374fa81cf069263bebf9b740573de4f82fde3c4e5796af80dcbe6a1a2e7
2025-12-23 17:24:10 +00:00
drh
f256886b8e Fix the ".schema" command in the CLI so that it works on builds that
omit virtual table support.

FossilOrigin-Name: b4e3c8170a107b2018fe5374495dbec14c851ccbf7419cd382991b2fe68c45e4
2025-12-23 16:51:49 +00:00
drh
8511ee1e19 Harmless typo fixes in shell.c
FossilOrigin-Name: 519877cdbde80071ac08f2e467ef8b9679816dc486cf6eb87ec2d9a38c819f88
2025-12-23 11:13:52 +00:00
drh
766389bd65 API documentation enhancements.
FossilOrigin-Name: 99ac94cb9a7a76312cda2d236dcc0c92b2ca269456daed06a1c2674c4f326867
2025-12-22 17:06:37 +00:00
dan
add73c831b Add the SQLITE_PREPARE_FROM_DDL flag to sqlite3_prepare_v3(). Use this to prevent fts3/4 tables in non-trusted schemas from calling unsafe SQL functions.
FossilOrigin-Name: 26f39ac806a5582fab1497e38a4ce68dad2b79df8c8aade43c4e21eed7576931
2025-12-22 15:22:02 +00:00
drh
8d41b94bb4 Fix spurious error log reports caused by [d25c8a6222d4e3f2]. See
[forum:/forumpost/d2326687662430c1|forum post d2326687662].

FossilOrigin-Name: 403dafc7790a2e8d1772537800760addc47d3e3555bda343c3991d56c1b36e70
2025-12-22 12:33:27 +00:00
drh
19a3f74bdc Remove unused thunk cases from os_win.c, so that it will (hopefully) compile
again on WinXP.

FossilOrigin-Name: eb2c020481dd591f459cf7191d18c2499aeec210fc3fc27bb35e5abc0d9cb6d8
2025-12-22 11:28:16 +00:00
drh
174dabe096 Add experimental compile-time option SQLITE_ALLOW_TRIGGERS_ON_SYSTEM_TABLES.
FossilOrigin-Name: f916bcc8657a4db2d069018751815f2ad91851499add761b1eb119f265b72a09
2025-12-19 13:17:40 +00:00
dan
65bc1f0ff4 Allow queries that use "GROUP BY e1 ORDER BY e2" where e1 and e2 are identical aprt from ASC/DESC sort-orders to be optimized using a single index. Also allow virtual tables to optimize DISTINCT in cases where the result-set of a query does not exactly match the ORDER BY clause.
FossilOrigin-Name: fba29a8b560d839e42c2a46421ab870da6e6ed6e15a17aa51f223e32ec3aa8ae
2025-12-18 18:47:49 +00:00
drh
1b7b75679a Enhance the sqlite3_load_extension() so that when the entry point is
not specified, after trying sqlite3_extension_init() and
sqlite3_X_init() where X is the alphabetic part of the base filename,
if neither or found it tries again with X as the alpha*numeric* part
of the base filename.  Hence, a shared library named "vt02.so" can be
loaded with just ".load vt02" and without having to specify the entry
point separately.

FossilOrigin-Name: acc95f24cc034408de1e9225aef4dae8bf76beec812c152bea32db95f7d2b854
2025-12-18 14:01:43 +00:00
dan
6c2f5dabf4 Fix the return value of sqlite3_vtab_distinct() in cases where a virtual table query has similar GROUP BY and ORDER BY expression lists.
FossilOrigin-Name: d017ae8640f24543ad5bf37a3e514c1e919730b8c686255c61890448ba22b3e1
2025-12-17 21:00:06 +00:00
drh
89bc8e8a34 Fix a FILE* leak in the CLI
FossilOrigin-Name: 7986a35d27fe0cfd7d9a3bfec0ee0d1c5556b24d571bb68c35dd5eb7251e423c
2025-12-17 13:10:23 +00:00
drh
93ecf30068 CLI: The .imposter command matches the index name regardless of case.
Minor fixes to .check.

FossilOrigin-Name: 989ebba9ad263abafeddaf4a0e3e1275e83a3a12d7f95c7a451ecf8cbd64a583
2025-12-16 13:43:35 +00:00
drh
6c26b5db71 CLI improvements. In the .check command, ignore leading and trailing
whitespace unless the --exact option is used.  In the .limit command, do
not print the new limit when changing the limit, but only when requesting
the current value of the limit.

FossilOrigin-Name: d72cb66d672d514822b2fbb0be8880377628599f1f8e2a219d36791c125c6242
2025-12-16 13:25:45 +00:00
dan
a1dbb7a93e Fix for optimizing "SELECT DISTINCT ...cols... FROM vtab" in cases where the virtual table implementation is able to deliver results sorted by "...cols...".
FossilOrigin-Name: 80c0d922937615422e813593ac4eb83c3040a417fad97dba18a549de50a91b72
2025-12-15 18:45:22 +00:00
drh
e2bb4cf412 Enable an ORDER BY clause to refer to columns in outer queries.
FossilOrigin-Name: ef9b4b1e4690c889c48f4e725d42127c46f60c6bf2023ae79bf1e9c6c83368ec
2025-12-15 11:59:47 +00:00
drh
76f1fe2942 Use the correct wildcard character in sqlite3_strlike() in the previous
check-in.

FossilOrigin-Name: 87bca1250c5e660debbb29c5fabb89082c2d2059fc8b5851e1b1a519c3be7fc1
2025-12-13 23:18:04 +00:00
drh
5266818aed In the CLI, if a command-line argument names a file and the filename ends
with .sql or .txt, then process that file as an SQL script.  Use this
feature for better testing.

FossilOrigin-Name: 19cc0522e2255f21f6fb6af1442c2ba122fdd4deacd9ea2c181ce9e597b88770
2025-12-13 21:11:49 +00:00
drh
ce43bf85fa Back out the --compat option from the CLI.
FossilOrigin-Name: 850d5dbfb0f1eacd1e5213759810ec7e5eba4fcc0b2718dabccd5b269b126f1c
2025-12-13 00:13:40 +00:00
drh
4f3ab29aab Get the .testcase and .check commands working in the CLI.
FossilOrigin-Name: 1ca31e1a297c0d53d068afb658ce6602887cda0f3eaf42cd629c4d1b7204f0b0
2025-12-12 18:22:07 +00:00
drh
d031267c17 Add new assert() statements designed to detect and prevent the kind
of system interface numbering errors that happened in [108691a3cb2f296f]
and that were not fixed until [fe49703034bd23fa].

FossilOrigin-Name: 4e6e551c89c4f18299b3d60369f439e80f2fe2b0e70199f649821b1dbf20c668
2025-12-12 12:06:42 +00:00
drh
48915e7c7d Omit unused entries in the aSysCall array for the Windows driver. Fix
incorrect numbering in alter entries of that array.

FossilOrigin-Name: fe49703034bd23fa8f43ffdf0e23ec9613688d957adf96b3f1ea86fb02a8d86b
2025-12-12 11:50:37 +00:00
dan
462289df52 Remove from os_win.c a reference to unused system call CreateEventExW() left over from the now removed winrt support.
FossilOrigin-Name: c68ef69ec97da0312b95375b3af159f8a06ce1a69376d042c557dcca18d3f77e
2025-12-12 11:02:18 +00:00
dan
9334b9f1b8 Fix calls to sqlite3_wal_checkpoint_v2(SQLITE_CHECKPOINT_NOOP) so that they do not return SQLITE_MISUSE.
FossilOrigin-Name: 117f4093f08e0abbde2041f70898220e237e250664f6ede6d4eb2a8a44050466
2025-12-11 11:05:26 +00:00
drh
c0160fa11a Use macros for the default values for QRF limits in the CLI, rather than
hard-coded magic numbers.

FossilOrigin-Name: 4ef66da15bfe69d940cfbeff2be2b7e13da156495b349b453d68e70f4dcca36a
2025-12-10 19:43:06 +00:00
drh
85fb541ac0 Various improvements to the .mode command of the CLI, and especially to how
it handles the --limits option.

FossilOrigin-Name: f883b854976d2aa679c87edce3b577f38b5fa518f707706320d1ddb38365e2dd
2025-12-10 19:04:49 +00:00
drh
9d5f00706f Do not show the --titlelimit setting in ".mode" setting output unless -v
is used or unless the current style is tabular or line.

FossilOrigin-Name: a9b0a3ce043fc910465d676c72bcf44c2ff6fbc1b0a832106cd2d3f97c7fb16a
2025-12-10 15:55:44 +00:00
drh
9bf37cc3eb Add the nTitleLimit option to QRF. Also change "line" style so that it
uses zColumnSep as the divider between the title and the value.

FossilOrigin-Name: d67a299c86ff80ed67857d2546b0edaf852cb23dbfbc15e24793d1c4860a2e50
2025-12-10 15:24:46 +00:00
stephan
91479c6b10 Introducing kvvfs v2 for the JS bindings. Summary: no longer hard-coded to session/localStorage, available outside of the main UI thread (non-persistently), a simpler-to-use import/export API, and adds an asynchronous event interface intended for creating page-by-page db backups.
FossilOrigin-Name: ec866b04d088e53b09764d00f5403902785328fd8f3cbf80d3affa166477711d
2025-12-08 13:06:27 +00:00
drh
4a33eed6e9 Remove #ifdefs intended to make SQLite compatible with Windows RT. WinRT
was short-lived and has been discontinued for a long time.

FossilOrigin-Name: 108691a3cb2f296f0ede06c34271ee185f299bfd76e97a1bd06c730a28d94ff4
2025-12-06 19:56:40 +00:00
drh
4ddf151841 New test cases to cover the "--quote relaxed" feature.
FossilOrigin-Name: d00d9556edc198d49cf9aa2f14e46bb5b1021ef0622aee1fa4ae585ed9a13a98
2025-12-06 11:35:30 +00:00
drh
5fb9d599ed Update test cases to work with the new box format and with --quote relaxed.
FossilOrigin-Name: e3f442d08f455e0aa260cc8db4922a5f611e17afe71b0bb251328ab4b3ad46ca
2025-12-06 11:02:14 +00:00
drh
cff66960fd New text rendering style of QRF_TEXT_Relaxed.
FossilOrigin-Name: d2049bffe6674b8840663b0e5f404a040b715640c87f022517cf11546548fda3
2025-12-06 10:07:15 +00:00
drh
e1a2674f06 Enhance the unixIsSharingShmNode() code (check-in [6385a1962c69c69c])
so that it more understandable by humans, and so that it does not trigger
false positive deadlock warnings in TSAN.

FossilOrigin-Name: aa0a28776bbeafb71b2db20ac8c16377ba07b7d3d58e46cfd11f60c694759a90
2025-12-05 12:22:23 +00:00
drh
38ba1adb36 Another fix to [e33da6d5dc964db8]: Ensure that the EXISTS-to-JOIN break
happens even if the inner loop is a "no-op" loop that never executes more
than once because it is controlled by a UNIQUE index.  This resolves the
error reported in [forum:/forumpost/7992838ba2|forum post 7992838ba2].
Test cases are in TH3.

FossilOrigin-Name: bbded6477020af4d52253c5af2d33ec9b9cd619d33f744206f7420458bd84f12
2025-12-05 01:33:23 +00:00
drh
2087fa2d97 Make the shell_exec() routine in the CLI robust against NULL SQL text.
Fix harmless compiler warnings in ext/misc/zipfile.c.

FossilOrigin-Name: 2ecba7dfd10c7d6a7a34b0ec01a387c9f1426c0504c8f20edc03e29bb9aa93c3
2025-12-04 20:22:36 +00:00
dan
5192fec123 Limit compile time value SQLITE_MAX_SQL_LENGTH to 1024 less than 2^31, or 2147482624. This is to avoid having to deal with edge cases related to 32-bit integer overflow that can only occur in custom builds.
FossilOrigin-Name: d73364555d213e443d8400ed69b134006f4e2fe0054d74fe0828ff01effe5cd2
2025-12-04 16:44:11 +00:00
drh
001f36f9af Mark an always-true conditional as such.
FossilOrigin-Name: 4f79434f5b52470291dcd09e31fdefba708d0243a2b60966536c6cb91451d203
2025-12-04 13:28:25 +00:00
drh
3749e75c68 Fix an error introduced by the previous check-in.
FossilOrigin-Name: 948e24ae3816d650be66bbe6b880bea74da643af37c4349e6cf2e207e6cf9b28
2025-12-04 13:08:59 +00:00
drh
fa7abfdf0b Performance optimization in the language grammar.
FossilOrigin-Name: 1c1ad5e39cb379250f10db5ef61f42e0bd56ace308f8e41f9bf5e08d92075521
2025-12-04 11:59:11 +00:00
drh
5ef150c223 Merge all the latest trunk enhancements and fixes into the temp-trigger-refs
branch.

FossilOrigin-Name: 8e8a27c77aa0ea5891968231e13a8caeade48b817419bbf6eda18ad217f1df63
2025-12-04 11:20:01 +00:00
drh
2121fc4141 Fix an incorrect answer that might arise if a scalar query is both
DISTINCT and contains an OFFSET clause.
[forum:/forumpost/2025-12-03T09:25:59Z|Forum post 2025-12-03T09:25:59Z].

FossilOrigin-Name: aef5397569d65d2971367b0278fe3a6f42544cf771572e7d046e2472f052364d
2025-12-04 00:05:49 +00:00
drh
5be3ac87db More aggressive optimization of IS NULL and IS NOT NULL operators.
FossilOrigin-Name: c69eec9909af40e1e22d44a6859ef52378ebe06a587373f332f9d379cb39a84d
2025-12-03 18:18:29 +00:00
drh
1e235b9b02 Create a new internal subroutine specifically designed to allocate
Expr nodes that hold a 32-bit integer.

FossilOrigin-Name: 38d06f69e516dd13becbfb735a2a0035c2f3c50ea5d661a668b109a996656523
2025-12-03 16:54:48 +00:00
dan
ab63da3f1c Fix a problem that could occur when a scalar subquery had both a DISTINCT and OFFSET clause. First reported by [forum:41bd7af485 | forum post 41bd7af485].
FossilOrigin-Name: 496bbff910b73775b16c1ccb95dadf37416d3f3032722a1140f2a9134666d7f1
2025-12-03 14:39:25 +00:00