1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-11 01:42:22 +03:00
Commit Graph

531 Commits

Author SHA1 Message Date
drh
bdb00225ab Omit NOT NULL checks on unchanging columns in an UPDATE.
FossilOrigin-Name: 6a3aaedfb41735996470abbae6d3cd1be1f508b3
2016-02-10 16:03:20 +00:00
drh
1a606f8246 Merge enhancements and fixes from trunk.
FossilOrigin-Name: f040a5bb62f3473fba6450c97c68f538d1df21ef
2016-02-09 15:44:18 +00:00
drh
2fade2f791 Make sure every co-routines has its own set of temporary registers and does
not share temporaries, since a co-routine might expect the content of a
temporary register to be preserved across an OP_Yield.
Proposed fix for ticket [d06a25c84454a].

FossilOrigin-Name: ca72be8618e5d466d6f35819ca8bbd2b84269959
2016-02-09 02:12:20 +00:00
drh
0ac7cfaf99 Merge enhancements from trunk.
FossilOrigin-Name: a533608cb0de3cbc1e28a794aab99864b8c249f4
2016-02-05 14:15:34 +00:00
drh
575fad6500 Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority
cases where db is guaranteed to be not NULL.

FossilOrigin-Name: 0a802e96ab06e2643834b83671fa8353da1a348d
2016-02-05 13:38:36 +00:00
drh
4a642b6060 Improvements to the way that OOM errors are processed.
FossilOrigin-Name: c3ef03478a5788c855b3aef385d43ae7f494f440
2016-02-05 01:55:27 +00:00
drh
1b32554b80 Enhance the internal sqlite3VdbeAddOpList() interface to automatically update
jump destinations.  Use this feature to simplify the AUTOINCREMENT code
generator.

FossilOrigin-Name: ae8b9d2edf1b5aef6108e729754911db7682b6a3
2016-02-03 01:55:44 +00:00
drh
33c1eb6477 Merge all recent enhancements from trunk.
FossilOrigin-Name: f3f9200115caf4b356f90ec97c351d1afbcb9bf6
2016-02-02 02:22:30 +00:00
drh
b89aeb6aa2 Add assert() statements on the nExtraDelete variable in vdbe.c to try to verify
that the FORDELETE and IDXDELETE flags are being generated correctly.  Those
flags are not currently generated correctly, and so the assert()s trip on this
check-in.

FossilOrigin-Name: dde1db0dd2e2cf04706117629756c352b178ebb8
2016-01-27 15:49:32 +00:00
drh
20f272c96f Merge recent enhancements from trunk.
FossilOrigin-Name: 327af5f644a49b2f41d5456958f9d61a2b704e1c
2016-01-20 11:33:37 +00:00
drh
9b34abee30 Use sqlite3VdbeAddOp4() rather than a separate sqlite3VdbeChangeP4() call, for
a slightly smaller and faster binary.

FossilOrigin-Name: a4258cd4613c55acacb5c7b61faa3de7eb0759d2
2016-01-16 15:12:35 +00:00
drh
8de1d77c60 Merge the latest enhancements from trunk.
FossilOrigin-Name: c0be246a740c8f33a7c07e1414688364dee56ece
2016-01-01 13:25:06 +00:00
drh
f19aa5fa6f Changes to the way that the default BINARY collating sequence is recorded
result in a slightly smaller and slightly faster executable.  More work could
be done to make this cleaner.

FossilOrigin-Name: 2081d75767dc590b4c8457e5f8e5f18ba5f8eaa7
2015-12-30 16:51:20 +00:00
drh
0472af91ec Simplification to the xfer-optimization logic.
FossilOrigin-Name: f35ba018da843897acca58f70541b940598bc271
2015-12-30 15:18:16 +00:00
drh
1c75c9d7f1 Ensure that the Expr objects that describe indexed expressions are not modified
by code generation.  Fix for an assert() problem found by Jon Metzman using AFL.

FossilOrigin-Name: 34073ce87d88a02313217023ae92e15939192cd9
2015-12-21 15:22:13 +00:00
drh
769dc6e2a2 Merge the latest enhancements from trunk.
FossilOrigin-Name: 7d6cfc79e7e5534ebacd980479917bc528a638f7
2015-11-19 19:40:40 +00:00
dan
aaea31439d Fix a problem with VACUUM and __hidden__ columns.
FossilOrigin-Name: 13995756ad8b80568aa2f74387788a8cab1123ef
2015-11-19 18:09:05 +00:00
dan
ba68f8f3f5 Fix problems with INSERT INTO ... SELECT ... statements that write to tables with __hidden__ columns.
FossilOrigin-Name: 59bd0ec7d4327852ee8c0206b2c59d0a12484db8
2015-11-19 16:46:46 +00:00
drh
1a1d3cd2f3 Create the new TK_ASTERISK token to represent the "*" in "SELECT *". Formerly
that operator was TK_ALL, which was also used for UNION ALL.  Less confusion if
they operator symbols are distinct.

FossilOrigin-Name: 201ac6d449431dadc6b29faecd68b559bd64bc9f
2015-11-19 16:33:31 +00:00
drh
03d69a6826 Only support the magic "__hidden__" column name prefix interpretation when
compiled with SQLITE_ENABLE_HIDDEN_COLUMNS.

FossilOrigin-Name: 5490646b2eb74ea8bd5ab2690f69b9c707a0165f
2015-11-19 13:53:57 +00:00
drh
b1daa3f469 Get the __hidden__ column mechanism working on views with INSTEAD OF triggers.
FossilOrigin-Name: 20c1e9ce75cc0b5f7456379f35a4fe24edd98088
2015-11-18 21:22:02 +00:00
drh
f0c9145a36 If a table column name begins with "__hidden__" then do not include that
column in "*" expansions in SELECT statements, nor fill in that column in
an INSERT INTO that omits the column list.  <b>This branch is a 
proof-of-concept only and is not intended to ever be merged into trunk.</b>

FossilOrigin-Name: 2dbffb3a3b20dba7d7d86c8ad2e34633f616c78a
2015-11-18 18:43:15 +00:00
drh
d286b9fb7d Merge all the latest enhancements from trunk.
FossilOrigin-Name: 395a153ff7b3c7a72f3d02b6fe76d72383f4e480
2015-10-30 16:50:00 +00:00
dan
fd261ec67e Modifications to pass a flag to internal routine sqlite3BtreeCursor() when a cursor that is used solely for deleting b-tree entries, or for obtaining the components of keys to delete from other b-trees, is opened.
FossilOrigin-Name: cdc92919e600007cae5eb61223684f48a65babc0
2015-10-22 20:54:33 +00:00
drh
fed7ac6f04 Add the OP_IntCopy opcode - an optimized version of OP_SCopy that only works
for integer values.

FossilOrigin-Name: 3a2f73a4924860fde8ee41ad646e7a02d29ad9d5
2015-10-15 18:04:59 +00:00
drh
4918480252 Pull in the latest 3.9.0 tweaks from trunk.
FossilOrigin-Name: ed174ccf0ae615647ba026fed649d26dc9a98640
2015-10-10 20:35:10 +00:00
drh
728e0f91bb Compiler warning fixes: Rename some local variables from "j1" to avoid a
name collision with the j1() bessel function in the math library.  Omit a
dummy initializer that gcc 4.6.3 does not like.

FossilOrigin-Name: 9ddef84d432813f3ece8012047d08441caa3315d
2015-10-10 14:41:28 +00:00
drh
32af5eda6a Merge recent enhancements from trunk, and especially the fix for
ticket [1b266395d6bc10].

FossilOrigin-Name: b2face9aa95ade96a5666c70b6b31064c1ad0977
2015-09-30 14:50:39 +00:00
drh
4b92f98ccc Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2)
magic numbers in Index.aiColumn[].  Add asserts to help verify that
Index.aiColumn[] is always used correctly.  Fix one place in FK processing
where Index.aiColumn[] was not being used correctly.

FossilOrigin-Name: 7d272aa62cd4cbbf4b5d04e3b918de27671e8301
2015-09-29 17:20:14 +00:00
drh
c149f18f4d Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level
VDBE is being coded (versus a trigger) and use that interface.

FossilOrigin-Name: 59662cd2b65255a30e1a420331c07c51b644621a
2015-09-29 13:25:15 +00:00
dan
438b881540 Merge the latest trunk enhancements with this branch.
FossilOrigin-Name: b7469c44be77358e02892a3abc696f7caa0dcd3b
2015-09-15 15:55:15 +00:00
drh
b77ebd828b Reformat some code to make it easier to merge with sessions. No logic changes.
FossilOrigin-Name: eade355fafec558fc13dc4b08ca0b07713a2cd84
2015-09-15 13:42:16 +00:00
drh
b0264eeca1 Use symbolic names ONEPASS_OFF, ONEPASS_SINGLE, and ONEPASS_MULTI for the
various modes of the one-pass optimization.

FossilOrigin-Name: 16e56bdadef903c6439a487f2683388aeeb0c625
2015-09-14 14:45:50 +00:00
drh
91762f2d18 Merge the latest trunk enhancements.
FossilOrigin-Name: 22ce9218fb2bb56cc5dd4e32077a16f669250d5f
2015-09-14 10:47:29 +00:00
dan
f0ee1d3c12 Experimental change to use a single-pass approach for DELETE statements on non-virtual tables that do not fire triggers or require foriegn-key processing.
FossilOrigin-Name: eaeb2b80f6f8f83679c8323a81bb39570ec946fe
2015-09-12 19:26:11 +00:00
drh
6b86881788 Merge recent trunk enhancements.
FossilOrigin-Name: 6a513c05850949900f396c7a61accb97cc6d2af5
2015-09-03 14:48:25 +00:00
drh
34de0c8c5e Merge enhancements from trunk.
FossilOrigin-Name: 1ab10cbf27245961b40eda1ce70f35646f0a9966
2015-09-03 14:18:12 +00:00
drh
076e85f59c Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help
with code generation, especially on PRAGMAs.  Rename sqlite3VdbeAddGoto()
to just sqlite3VdbeGoto().

FossilOrigin-Name: 847387ec8e6fef283899578fb232b2c23b00ee5b
2015-09-03 13:46:12 +00:00
drh
2991ba050b Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for
sqlite3VdbeAddOp2(v,OP_Goto,0,i).

FossilOrigin-Name: be78f413df1b0d874b44a866ef6bf17543d7e8a2
2015-09-02 18:19:00 +00:00
drh
5969c657ae Merge recent enhancements from trunk.
FossilOrigin-Name: cb77236673e30af1e8749d984dedecc8f901b255
2015-09-01 18:52:35 +00:00
drh
6860e6fa6f Activate the ability to use expressions in indexes in a query. There are some
test failures, but mostly this seems to work.

FossilOrigin-Name: 42f93f582eccd8a778189aa6c113874f995ab751
2015-08-27 18:24:02 +00:00
drh
e14796085a Merge enhancements from trunk.
FossilOrigin-Name: ec6ddb3d481d005c304a26c948c9c808586750e9
2015-08-26 18:04:23 +00:00
drh
567cc1e407 Move sqlite3IndexColumnAffinity() inside of SQLITE_ENABLE_STAT3_OR_STAT4.
FossilOrigin-Name: b3732a4e1b42a86675d89766cb8089914e2fab9a
2015-08-25 19:42:28 +00:00
drh
760b32dff2 Merge trunk enhancements.
FossilOrigin-Name: e8b02902c48f3668dcff7b1767347ac7ef3c971e
2015-08-25 19:24:11 +00:00
drh
e910769817 Use the sqlite3IndexColumnAffinity() routine to quickly and correctly find the
affinity of an index column.

FossilOrigin-Name: 1ee089a72d789002a0a377347fc51e08ab32fb14
2015-08-25 19:20:04 +00:00
drh
1f9ca2c84c Add code to maintain indexes with expression arguments across DELETE, INSERT,
and UPDATE statements.  Legacy tests pass, but the new code paths are still
largely untested.  The query planner currently makes no effort to use
expression indexes.

FossilOrigin-Name: efaabdb71626bdc03768e87e186c72f6f3da75b2
2015-08-25 16:57:52 +00:00
drh
fea870be38 Remove some redundant code: Call sqlite3ResolveExprListNames() rather than
calling sqlite3ResolveExprNames() in a loop - in two places.

FossilOrigin-Name: bdaf66465b6b1bdad10c08d9527b98e7000a41e4
2015-08-24 20:54:06 +00:00
drh
89a10b2d53 Merge recent trunk enhancements, include table-valued functions.
FossilOrigin-Name: e9196d566690de0e9815f8cd85be7844322b5a79
2015-08-20 23:54:25 +00:00
drh
41b9ca2519 Fix the xfer optimization for WITHOUT ROWID tables so that it correctly
updates the change count returned by sqlite3_changes().

FossilOrigin-Name: eff43715d1a3a9ce3fe5da194dbb76ec0c06e13c
2015-07-28 18:53:37 +00:00
drh
60c97e6aa8 Merge recent trunk enhancements and fixes.
FossilOrigin-Name: c39cb0e2571f58c87053de009e2c135d71b2c3af
2015-06-11 18:01:29 +00:00