Commit Graph

5409 Commits

Author SHA1 Message Date
dan
8f9ea2dc70 Merge latest trunk into this branch.
FossilOrigin-Name: ab93024da7bd577d8850b417aff8597a8b3807fc
2015-08-28 15:50:24 +00:00
drh
f6ec8d4f4c Add the json_check() function, which returns its argument if the argument
is well-formed JSON or which throws an error otherwise.

FossilOrigin-Name: 64abb65d4df11e5b3bcc4afc8e7c18e907c6080a
2015-08-28 03:48:04 +00:00
drh
ecb5fedb3f Enhance the json_insert(), json_replace(), and json_set() functions with the
ability to add JSON instead of text if the argument is text and if the PATH
begins with '$$' instead of just '$'.

FossilOrigin-Name: 44f103d8862abc2d5613bac04dc2ea8e625b1f40
2015-08-28 03:33:50 +00:00
drh
2dc292930d Fix the OR-optimization so that it always ignores subplans that do not
use an index.

FossilOrigin-Name: 66f92a16866e5825363636b9cc4b8f9b29d9e84d
2015-08-27 23:18:55 +00:00
drh
5579d59fb3 Evaluate expressions only once when the same expression is used in both the
result set and in the ORDER BY clause.

FossilOrigin-Name: c2f3bbad778504681b39ab9399a1eb3c1a35ab3f
2015-08-26 14:01:41 +00:00
drh
108aa00a87 Enhances the parser so that it accepts arbitrary expressions for the arguments
of an index, though the code generator still rejects everything other than
simple column names.  The sqlite3RestrictColumnListSyntax() routine is removed
since that feature is now handled by the parser.

FossilOrigin-Name: bed42116addabcf3dfdc2e2d51ae183965704988
2015-08-24 20:21:20 +00:00
drh
8981b904b5 Enhance the CREATE VIEW syntax so that the names of columns of the view can
be specified after the view name.

FossilOrigin-Name: d794b34da6f9c77dfe17773b0b17b22de72cce7f
2015-08-24 17:42:49 +00:00
drh
bc622bc045 Disallow the use of COLLATE clauses and the ASC and DESC keywords within
foreign key constraints and in the argument list to common table expressions.

FossilOrigin-Name: 83cbc4d8761498647794affffa961a4fca311be7
2015-08-24 15:39:42 +00:00
drh
38978dd4ed Do not apply the WHERE-clause pushdown optimization to terms that originate
in the ON or USING clause of a LEFT JOIN.  Fix for ticket
[6df18e949d3676290].

FossilOrigin-Name: 351bc22fa9b5a2e50da3583a882c5aa390bda19f
2015-08-22 01:32:29 +00:00
drh
6fd5c1e0e8 Fixes for compiler warnings and errors in the makefiles. Rename the
one test script to json101.test.

FossilOrigin-Name: 9ff6ccde5f26f18073587c320290570854ffc833
2015-08-21 20:37:12 +00:00
drh
a7781dc0bb Merge in trunk fixes for table-valued functions.
FossilOrigin-Name: 67375f32d931351964d75d20671c4a6d8a294d7d
2015-08-21 17:16:22 +00:00
drh
1f2fc28134 Fix a corner-case bug in table-valued functions. Update the generate_series()
virtual table to increase the performance estimate penalty for being
underspecified.

FossilOrigin-Name: 552bc9cb88bbe54b4cf5fdf66d1217e7a2047110
2015-08-21 17:14:48 +00:00
drh
6842952429 Merge the latest changes from trunk, including the table-valued function
implementation.

FossilOrigin-Name: 10c444322f05ea8b83247f96a140bf3dbc4e9448
2015-08-20 23:39:38 +00:00
drh
d8b1bfc6bf Fix corner-case memory management issues in table-valued functions. Change
virtual table handling so that if xDestroy is missing the table is
eponymous only even if xCreate is present.

FossilOrigin-Name: 774e6a14b124bbae4da0e188b62aee9ffb8c3745
2015-08-20 23:21:34 +00:00
drh
d10dbad5e1 Correctly handle empty function argument lists on table-valued functions.
FossilOrigin-Name: a7acc7878b8bb8e27a0da67b2dbb7bd51df4859b
2015-08-20 20:13:37 +00:00
drh
222cd5bee2 Merge the table-valued-function rowid fix.
FossilOrigin-Name: a06a6392bd48baa8b9bac2624869c0cc7da7e779
2015-08-19 19:26:13 +00:00
drh
509c3fc004 Fix eponymous virtual tables so that they do not automatically make the first
column the rowid.  Enhance the generate_series virtual table to support rowid.

FossilOrigin-Name: a325a08599759471047e234ef9cfcc3cb110aafd
2015-08-19 19:01:28 +00:00
drh
03726aaf7f Merge support for table-valued functions.
FossilOrigin-Name: 96a5d44d9fcb7b159c04630ad2d956fe27df5a43
2015-08-19 18:31:11 +00:00
drh
bc550df32f Improved comments on the generate_series virtual table. Test cases for
ORDER BY rowid DESC with generate_series.

FossilOrigin-Name: fef44c37f31ca9fd7891cecdbe95cc46a987067b
2015-08-19 18:19:49 +00:00
drh
01d230ce05 A list of arguments following a table name translates into equality
constraints against hidden columns in that table.

FossilOrigin-Name: 40e12cfe4c29475417ba89fb637b4c763cf74016
2015-08-19 17:11:37 +00:00
drh
8a48b9c0b1 Minor refactor of the SrcList object so that it is able to hold the argument
list to a table-valued-function in the FROM clause.

FossilOrigin-Name: b919376147597c4b73421abe5788f893baf1560b
2015-08-19 15:20:00 +00:00
drh
398f872d1f Virtual table modules with a null xCreate method act as eponymous-only modules -
they cannot be used in a CREATE VIRTUAL TABLE statement.  Add the series.c
extension that implements a postgres-like generate_series virtual table to
demonstrate this capability.

FossilOrigin-Name: c58426dbd5ea8b8440ebcc1214f79fa63d658216
2015-08-19 13:54:20 +00:00
dan
c1e63be360 Add test file spellfix2.test, which should have been checked in some time ago.
FossilOrigin-Name: 8599402092537ab3df8926eb900661c12d738d4c
2015-08-18 19:09:28 +00:00
drh
e31dc59b4c Duplicate the output of releasetest.tcl into releasetest-out.txt
FossilOrigin-Name: 5e06a9c186f4b7478c73155613de219d702e0241
2015-08-14 12:53:37 +00:00
dan
6df003c7a5 Avoid reading frames that have already been checkpointed from the wal file.
FossilOrigin-Name: 5669ac4a40429abc3f44540fc9d2f3b79b404bdf
2015-08-12 19:42:08 +00:00
drh
2032d60793 Add the json_object() function.
FossilOrigin-Name: 414a95f3b79359f167858b2325fd2be223569c66
2015-08-12 17:23:34 +00:00
drh
5fa5c10784 Begin adding an extension that provides JSON SQL functions.
FossilOrigin-Name: dde8afdd8dba1d92560326dca7c1cdfedbe5e070
2015-08-12 16:49:40 +00:00
drh
cf599b6ade Enhance the query planner so that it is able to use partial indexes that use
AND-connected terms in the WHERE clause.

FossilOrigin-Name: 065765902d2774d7432b9c00ea2efed26e0aaa5e
2015-08-07 20:57:00 +00:00
dan
dca929040a Fix some problems in test code detected by cppcheck.
FossilOrigin-Name: c9ff4ca4a0b44bbb8d6676144ddf77b04426e619
2015-08-05 08:01:46 +00:00
drh
fa4620b6f5 Allow a VIEW to reference undefined tables and functions when initially
created.  The error report is deferred until the VIEW is used.  This allows
views to be created before subviews and tables that the view references.

FossilOrigin-Name: 70b57dafb3216feb21091883196831fa1252e7bf
2015-08-03 13:44:45 +00:00
drh
8ff2587b66 Fix the sqlite3_stmt_busy() interface so that it always returns FALSE after
the statement has returned SQLITE_DONE, even for ROLLBACK statements.
Clarify the documentation.

FossilOrigin-Name: 047d3475e93d08cf172ad02404a690d5b0c1b833
2015-07-31 18:59:56 +00:00
drh
36c25f7686 Fix the releasetest.tcl script so that it ignore cast overflow errors that
recent versions of clang generate but which are unavoidable given the test
input.

FossilOrigin-Name: a0020c57859fd452a2b5c943f9c5cf5ec6f997e3
2015-07-29 20:24:39 +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
dan
d1f9ffeb5f Fix the rowallock.test script so that it works with builds that do not support mmap mode.
FossilOrigin-Name: 7efed5786bb6a7a452f5aece9d6c6a09e6930939
2015-07-25 14:26:17 +00:00
drh
06b5a224c0 Fix the wal3.test module so that it works with the memsubsys1 permutation.
FossilOrigin-Name: af85b01d93d3043f2e1a38d289ca00a5ef24520c
2015-07-25 14:12:26 +00:00
dan
8adbb17cb5 Fix a test script problem in memsubsys2.test.
FossilOrigin-Name: 70885729b7488474e7294212f9b334382675b112
2015-07-25 12:03:57 +00:00
drh
7416f2edd9 Disable the page cache bulk allocation for the shrink.test and wal.test
modules.

FossilOrigin-Name: 3418f1f165a0746cdf130e6a19fa0e1eb56df1d4
2015-07-25 03:10:12 +00:00
drh
c6edb3acf9 Fix the zeroblob.test script so that it works even on builds where the
SQLITE_MAX_LENGTH has been raised to 2147483645.

FossilOrigin-Name: db129149812cb4eadb4cd79ad293d14962d2638d
2015-07-24 23:28:05 +00:00
drh
e045d483f8 Fix the pragma2.test module so that it works with
SQLITE_ENABLE_MEMORY_MANAGEMENT.

FossilOrigin-Name: de281a4fac0de3700e754c17976a8497587ca797
2015-07-24 19:56:44 +00:00
dan
d716c39c76 Fix a test script bug introduced by [562687d9].
FossilOrigin-Name: a343745d99cf4bccb2f5582735cc2f88b03e847d
2015-07-24 18:22:29 +00:00
dan
80c0302228 Add the sqlite3_bind_zeroblob64() API.
FossilOrigin-Name: 1997ee548b2e569a39e73319b661c1a78dfe5dae
2015-07-24 17:36:34 +00:00
dan
a4d5ae8fa2 Add the sqlite3_result_zeroblob64() API. Use it in the SQL zeroblob() function.
FossilOrigin-Name: c6445b9fb4d7d1a8479436d7d183bad754a01615
2015-07-24 16:24:37 +00:00
drh
53e66c3cda More robust handling of zeroblob() with oversized arguments. Fix fuzzcheck
so that it can be run with limited heap memory.

FossilOrigin-Name: 4e3e516a42059c97f42a7eb59bdf5cded0ff843a
2015-07-24 15:49:23 +00:00
dan
03bc525a51 Modify a few test scripts to avoid leaving the sqlite3Config structure in a non-default state.
FossilOrigin-Name: 562687d9f56bf4bb0f5f07f97cbbb7649c81faf8
2015-07-24 14:17:17 +00:00
drh
cfb8f8d6a9 Change the name of the OTA extension to RBU: Resumable Bulk Update.
FossilOrigin-Name: 017c5019e1ce042025d4f327e50ec50af49f9fa4
2015-07-23 20:44:49 +00:00
drh
d3e3f0b46e The sqlite3ExprCodeGetColumn() is not guaranteed to put the result in the
register requested.   Fix the skip-scan code generator for WITHOUT ROWID
tables so that it always checks the register and copies the result if it
lands in the wrong register.  Fix for ticket [8fd39115d8f46ece70e7d4b3].

FossilOrigin-Name: 793e206f9032d9205bdb3f447b136bed9a25fa22
2015-07-23 16:39:33 +00:00
drh
63abdc59dd More adjustments to the malloc5.test module so that it works correctly with
the new pcache1 bulk allocation.

FossilOrigin-Name: 2a7b3a440f74019f154496b2f95aa852a46e04fc
2015-07-17 12:42:53 +00:00
drh
957026ac78 Defer the bulk pcache1 memory allocation until the first page allocation
request.  Limit the size of the pcache1 bulk allocation to the cache_size
setting.  Deallocate the bulk allocation on a sqlite3_db_release_memory()
request, if the bulk allocation is completely unused.

FossilOrigin-Name: b79a4affe44bd0c8e155cae19f3f62c715684cd6
2015-07-16 18:18:19 +00:00
drh
3cf9c12008 Fix the fuzz3.test script so that it works with the new bulk pagecache
allocation feature.

FossilOrigin-Name: 829a2dbaf17413743b58ce0533d556031a14195a
2015-07-15 13:56:34 +00:00
drh
201e0c68f7 Always invoke the profile callback even if the statement does not run to
completion.

FossilOrigin-Name: 202479aa0a62067343e724487960b8a039e2e978
2015-07-14 14:48:50 +00:00