drh
e0f20b46fb
Performance improvement on the OP_Variable opcode.
...
FossilOrigin-Name: 1dc7993bb6957587a6c63142e97b8e4137c3d81bbfd724f86048e0894bcb429b
2019-04-01 20:57:11 +00:00
drh
16d7e87caa
Further simplifications to sqlite3VdbeMemSetStr().
...
FossilOrigin-Name: 1d212957079a2caa30f3c9d80f43464781bc9634c2b5181a5814efbddae31711
2019-02-08 17:28:20 +00:00
drh
6ff7427733
Change the sqlite3VdbeMemGrow() routine so that it no longer guarantees a
...
minimum size of 32 bytes. That minimum is no longer required, and without
the extra check for the minimum size, the routine runs faster.
FossilOrigin-Name: 5c499da8a4d0babc56883aa362ae124772fd9214a51169a88a5dee523d051658
2019-02-08 15:59:20 +00:00
drh
53d30dd371
Early detection of implausibly sized records to avoid unnecessary
...
large memory allocations.
FossilOrigin-Name: 2c8769c69f301307db6663adb8b7c0b89f5959516bf6110cb8ff4b21bd903f70
2019-02-04 21:10:24 +00:00
dan
c2ea77e5b2
Fix a segfault that could follow an OOM when querying a table that has one or more columns with default values "true" or "false".
...
FossilOrigin-Name: 202f9919c222ee933924c63c15ad36ec4481457b1e4d9179af14c9f284117c0c
2019-01-25 17:26:59 +00:00
dan
b4738ddb20
Fix an assert() in vdbemem.c that could fire if the database was corrupt.
...
FossilOrigin-Name: a70958cd7d5cf750c293537856918e5789013b70f6a827f724d83559b38629c8
2019-01-23 20:31:56 +00:00
drh
7301e77402
Deploy the sqlite3Strlen30NN() function (argument guaranteed to be non-NULL) for
...
a small performance improvement.
FossilOrigin-Name: 4a6ad5190b62020d97a7de02c801544f20b7b98145ceff14af1f2834d3057f9c
2018-10-31 20:52:00 +00:00
drh
9d67afc421
Also free up the MEM_RowSet bit in the Mem.flags field and have RowSet objects
...
be destroyed using Mem.xDel. This change results in faster code.
FossilOrigin-Name: f48e9feb3fca514e4e586932e6d19a5e34a384204effeba553006dcddf5f13d2
2018-08-29 20:24:03 +00:00
drh
72f56ef95d
Free up the MEM_Frame bit in Mem.flags object. Store VdbeFrame objects
...
as MEM_Blob with a special Mem.xDel pointer instead.
FossilOrigin-Name: 62db5fd47660bbc4fcf2c6d4a6c5a3077f12c6442a128d22b66b789a0409ef32
2018-08-29 18:47:22 +00:00
mistachkin
ed5e7722b2
Fix harmless compiler warnings only seen with STAT4 enabled.
...
FossilOrigin-Name: 6f5e84bafcaf425cb664c7db8179c9c09a13c96aaf057551c04a919ca554d057
2018-08-17 21:14:28 +00:00
drh
c6ed275fcb
Remove more column-cache residue: The OP_SetColTab and OP_VerifyColTab
...
opcodes and the associated SQLITE_DEBUG_COLUMNCACHE logic.
FossilOrigin-Name: 80236e81cefdf3d3cda3dbdb6de1575c38e4e248cc4b72ca9ee96d3aa0464bfd
2018-08-04 16:54:53 +00:00
drh
8f26da6c5b
Use separate opcodes, OP_AggValue and OP_AggInverse, for the new callbacks
...
associated with Window Functions, for improved readability of EXPLAIN
output.
FossilOrigin-Name: fa6538050938ffeb042fbee31512514d6d3ace514b2a3dfd8365bbeb13f35a78
2018-07-05 21:22:57 +00:00
dan
67a9b8eded
Omit all window-function related code when building with SQLITE_OMIT_WINDOWFUNC.
...
FossilOrigin-Name: 5f04b016467342b5a796bf702ed25b621eb86f2961c1e703d276c93f2cb6aa89
2018-06-22 20:51:35 +00:00
dan
9a94722d48
Fix problem with window functions min() and max() when used with a PARTITION
...
clause and a frame starting point other than "UNBOUNDED PRECEDING".
FossilOrigin-Name: 43eb1e75a4d7ac0973ed8589bbaf379c24cdc8eacc4e613610d2d4c24d385dc1
2018-06-14 19:06:36 +00:00
dan
09882a75c4
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: 5cf5f1808a51f9c2cfc98dd49b4f1ce860b53e935287f89868ce2fdbace8eb06
2018-06-14 14:30:51 +00:00
drh
58773a533c
Improvements to SCopy correctness tracking when SQLITE_DEBUG is enabled.
...
FossilOrigin-Name: b2973f2357a2c5e22e0d612c970adbc6d51cbc5e4ff7ac6d2b678722e553e8ec
2018-06-12 13:52:23 +00:00
drh
299bf7c2f0
Add the OP_SetTabCol and OP_VerifyTabCol opcodes, only when compiling with
...
SQLITE_DEBUG, to do run-time verification of the column cache.
FossilOrigin-Name: b37614a3670770919a7c7f8157c5fd6578d736447998640b52e5cef8174cadc2
2018-06-11 17:35:02 +00:00
drh
8d7b212c4c
Strengthen the sqlite3VdbeMemAboutToChange() run-time verification mechanism
...
to better detect missed calls to AboutToChange().
FossilOrigin-Name: 793e942205a12eedb7ecc5ad8a27e3e52bbd4e1d50a0d1453d04a83ba728884e
2018-06-11 13:10:45 +00:00
dan
2b1287cf44
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: 83d6416a868fac81a78c9507185a48d00920e4322276245e285946f760915f4a
2018-06-04 08:28:18 +00:00
drh
9201184711
Store application-defined function names as lower-case to avoid the need
...
for case conversions before calling xFindFunction on virtual tables.
Avoid using lookaside to store the destructors for application defined
functions, as lookaside should be reserved for transient allocations.
FossilOrigin-Name: 777189ce88799f93f393fd14fd716111c85bcdcb23690fd561f78ea2bd2ce5da
2018-05-26 16:00:26 +00:00
dan
86fb6e1738
Start of experimental implementation of SQL window functions. Does not yet
...
work.
FossilOrigin-Name: 3781e520854808fe02ad3fe77dd11fc917448c58ff1fd79123289dd91937decd
2018-05-16 20:58:07 +00:00
drh
3bc431550a
Enhance ALTER TABLE ADD COLUMN to support "DEFAULT true" and "DEFAULT false".
...
FossilOrigin-Name: 594ebc69557095c9262db39129dd50a3dbf038556a3d2a3ea69b82ed4c61e2b9
2018-04-18 11:35:35 +00:00
drh
1fcfa7240f
Always interpret non-zero floating-point values as true even if their
...
integer part is zero. Fix for ticket [36fae083b450e3af857a459e20].
FossilOrigin-Name: a983fa857048c748112c2f805f13aadeae43b43b3d27fa55433a3699b51c9a0e
2018-02-26 15:27:31 +00:00
drh
563ddbe54d
New assert() statements to help ensure that no other errors similar
...
to [343634942dd54ab57b7] ever appear in the code.
FossilOrigin-Name: 5a70af1e9c567f12c997d25d0a305a8d42bf2cc92f2811e9d5fdde720665e213
2018-02-01 15:57:00 +00:00
drh
d15046ac08
Work around a problem with GCC on 32-bit machines that cause the CAST
...
operator to generate a floating-point result for strings that could be
represented as very large integers.
FossilOrigin-Name: 1b02731962c21bb097a88801ece76ff441bf882519a821a246da84f4e2a33455
2018-01-23 17:33:42 +00:00
drh
ce2fbd1b02
Add the experimental sqlite3_value_nochange() interface usable by xUpdate
...
methods of virtual tables to see if a column has actually changed values.
FossilOrigin-Name: 8b7be15ece9e2e83959bb0e21e240106fe1077431242c3cc6b81f1baa2382f40
2018-01-12 21:00:14 +00:00
drh
84a6c85c64
In valueFromExpr() only generate a OOM fault if there have been now prior
...
faults.
FossilOrigin-Name: 3765aaf712998af5ffb6bc680a0c1419f2b5deb47ecbc1835ba5879127c4dbe3
2017-12-13 23:47:55 +00:00
drh
01f6b2dc2d
Fix an unreachable branch in cases when SQLITE_ENABLE_STAT4 is not defined.
...
FossilOrigin-Name: 6a55bd67720451cdf316155cf348103bfce1056a78bcddf0029b45ff0fdbcc71
2017-12-06 20:50:08 +00:00
dan
7ac2d48eba
Fix a faulty NEVER assert() that could fail for SQLITE_ENABLE_STAT4 builds
...
that use foreign keys.
FossilOrigin-Name: 465350e55ddaf30cfba7874653301de7238a9dc2bc5e1f800fc95de9360679f6
2017-11-27 17:56:14 +00:00
drh
9d9c41e25e
Remove unnecessary NEVER() and ALWAYS() conditionals.
...
FossilOrigin-Name: 1c80c75d4be2f3d44fb18bb4c07eccac2aba79b688215a741317dfc47dc7c2ce
2017-10-31 03:40:15 +00:00
drh
24ddadfa3b
Partial backout of check-in [e0af9a904076]. It turns out we do need some
...
extra space at the end of the record blob as an overrun area to use when
decoding a maliciously malformed record.
FossilOrigin-Name: 403b88a894d877b85bcc33133abad06c3c576e4928de4a4b0c091f74c4015355
2017-09-22 12:52:31 +00:00
drh
c07df4c3b9
Revert one performance improvement changes from check-in [3b3e32d4cd07] as
...
it was causing a reference to an uninitialized value.
FossilOrigin-Name: f8b1c64d3eeb8413ca149f34cc00f9154a5446d06ad33bbffa69118e6110f81d
2017-09-21 01:04:30 +00:00
drh
762dffa54a
Size and performance optimization on sqlite3VdbeMemGrow().
...
FossilOrigin-Name: 4b3f7eacb862fbb5b75cf50b72fb60dfbd0acb5818e9f83383a6a63c8bbeacdf
2017-09-20 18:47:51 +00:00
drh
63d1632f1e
The BLOB returned by sqlite3VdbeMemFromBtree() does not need to be
...
zero-terminated.
FossilOrigin-Name: e0af9a9040768adf8bba42a8780adeb6304bc442afb1f35d239d019db1624f40
2017-09-20 18:07:50 +00:00
drh
97397a70e4
Small size and performance optimization in the bytecode engine.
...
FossilOrigin-Name: 3b3e32d4cd07a1d2d1708fffa47819345ae6b39205a9f548280d499c8f481d64
2017-09-20 17:49:12 +00:00
drh
84d4f1a328
Improved resolution of large integer values in "CAST(x AS NUMERIC)".
...
FossilOrigin-Name: 7f2bd4ff45fba29528c18cac6da983bd9b164303525d3965056f5b40f85dc83f
2017-09-20 10:47:10 +00:00
drh
b32c18bf42
Minor optimization to sqlite3VdbeMemSetStr().
...
FossilOrigin-Name: 6538ef7b6b56c7a6629a0bb7418910c64c8b2e73af2296a116c073ecf2e0d429
2017-08-21 02:05:22 +00:00
drh
a485ad191f
In the KeyInfo object, refactor the nField and nXField elements into
...
nKeyField and nAllField, which are more useful and run a little faster.
FossilOrigin-Name: aea5990eab5e85f92df966aa641db2271c81052010ad2d80982475c4275a1284
2017-08-02 22:43:14 +00:00
drh
a0024e6c99
Improved implementation of the destructor on pointer-passing interfaces.
...
FossilOrigin-Name: 601ad6795927fff8c3cc1711a2fd90912499573e94aa5bc8f18cbd4b89778f58
2017-07-27 15:53:24 +00:00
drh
22930062d5
Add a destructor argument to sqlite3_bind_pointer()
...
and sqlite3_result_pointer().
FossilOrigin-Name: 3d9e841f6011480ebb8a6d860da72af7fa545983e08835ddef2cac96e5f5cd4b
2017-07-27 03:48:02 +00:00
drh
9a541c0361
Improve the sqlite3_result_pointer() interface so that it cannot be faked
...
using sqlite3_result_null() and sqlite3_result_subtype().
FossilOrigin-Name: c13264d5ef0470fb24e09f7bc12f19be3b77eab06d41f55607b38dddb532a132
2017-07-17 11:39:46 +00:00
drh
ae3ec3f920
Add an experimental "pointer type" parameter to sqlite3_bind_pointer(),
...
sqlite3_result_pointer(), and sqlite3_value_pointer(). The pointer type is
a string that must compare equal using strcmp() or else the pointer comes
through as a NULL.
FossilOrigin-Name: 211cce04e97d2e325a6ea3e99738fc71115d673dc13daeffb03ac3140deb11de
2017-07-17 00:40:19 +00:00
drh
3a96a5d919
Add APIs for binding pointers that can be used by app-defined functions.
...
FossilOrigin-Name: d9f4a831ba957ead3890b36d0e33e30cfa4c79b7de6400e623b9746a0a5a02d0
2017-06-30 23:09:03 +00:00
drh
7df7475d0d
Make sure sqlite3VdbeSetVarmask() is never invoked when QPSG is enabled.
...
FossilOrigin-Name: ebcfa73e1c8ebb4fc371a6dcf77f97b6e06e405a299c66182aa4b20423d519ec
2017-06-26 14:46:05 +00:00
drh
169dd928c5
Add the SQLITE_DBCONFIG_ENABLE_QPSG option to activate the query planner
...
stability guarantee. This involves refactoring the sqlite3.flags bitvector
to carve out a free bit to use.
FossilOrigin-Name: 7076e8283ebae1b45a5d85d9538b49b6da399d38c3c6935de100f948f814f6a9
2017-06-26 13:57:49 +00:00
drh
6e3bccd5c9
Fix the processing of double-negatives in WHERE clause constraints with
...
STAT4. Ticket [cfa2c908f2182]
FossilOrigin-Name: 35b34bdf0843b49be39e13ed212e918c2d45afdb8374b5cd02ba6d2d5b16b3b9
2017-06-13 04:31:54 +00:00
drh
e2bc6552fe
Do not allow a Mem object to be both NULL and some other type at the same time.
...
FossilOrigin-Name: e698db1956bb3aba32cd3ec633ec20f5d19b1a10bc68d3772903bca3c87ee158
2017-04-17 20:50:34 +00:00
drh
cbae543a5c
Add an ALWAYS() around an unreachable condition in sqlite3VdbeMemGrow().
...
FossilOrigin-Name: 0f3eb61f44c94234ffc14c3a493a27ec62c0d1e2bb62798f36eafa98ddcdc58e
2017-04-11 12:20:54 +00:00
drh
4c6463cc29
Slightly smaller and faster sqlite3VdbeMemGrow().
...
FossilOrigin-Name: efd1702ae8da8e0dd3d2ee7bd5a1bd8aeff2b370498e404041fcb406fdaf72e4
2017-04-10 20:27:54 +00:00
drh
dbd6a7dc06
Split off sqlite3DbFreeNN() from sqlite3DbFree() and use it in cases where
...
we know that the argument to be freed is never NULL.
FossilOrigin-Name: ad90e8bb5e47945607c8fb47b6ade8cfc52a9b684805cc40132629be0ecc14cc
2017-04-05 12:39:49 +00:00