Commit Graph

24498 Commits

Author SHA1 Message Date
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 31a5d34283 Fix the OR-optimization so that it always ignores subplans that do not use an index.
FossilOrigin-Name: cf452028d1be2c5578a07f6e21b4d8b613373eb8
2015-08-27 23:42:43 +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 c7c4680ffd Fix EXPLAIN QUERY PLAN output for indexed-expressions. Fix another
obscure fault in the WHERE term scanner.

FossilOrigin-Name: 73d361ce9e4d72c943def8b0b3caa227f9199aed
2015-08-27 20:33:38 +00:00
drh 29d03f6517 Fix problems in the indexed-expression handling in the optimizer.
FossilOrigin-Name: 03375017691d5b480e73d712c4318632e835060c
2015-08-27 19:56:49 +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 b377020ca9 Merge changes from trunk.
FossilOrigin-Name: c80e9e8e8cc1e7676d7c782ee0827726875db79e
2015-08-27 16:07:02 +00:00
drh bb52308f3d Adjustments to the WHERE term scanning, to better handle scanning terms of
an index.

FossilOrigin-Name: 5611130a595e7f0b6d5f21d76f2755e9c09c7810
2015-08-27 15:58:51 +00:00
drh a3f108e93d Reduce the size of the WhereScan object by 24 bytes while also clarifying its
operation.

FossilOrigin-Name: cbc3c9a8bf169ae0b21f26855038502c6cc25cfe
2015-08-26 21:08:04 +00:00
drh e14796085a Merge enhancements from trunk.
FossilOrigin-Name: ec6ddb3d481d005c304a26c948c9c808586750e9
2015-08-26 18:04:23 +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 0576bc59a7 Refactor With.a.zErr into With.a.zCteErr. No logic changes.
FossilOrigin-Name: 58ba73630ecc4bc58b03a7962dd45b305ef605ef
2015-08-26 11:40:11 +00:00
drh 1c4505de91 Update the TreeView output for compound SELECT statements so that all entries
are shown vertically aligned rather than each successive entry being indented.

FossilOrigin-Name: 65a8918776aa395009a690fa86bfc7d99eb973f9
2015-08-26 11:34:31 +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 f8febc1b05 Fix a memory leak that might occur when compiling with SQLITE_OMIT_CHECK.
FossilOrigin-Name: 8f1d9f1f308518522ebb1eaebb9b184b4ac30924
2015-08-25 00:34:54 +00:00
drh a514b8eb0c Changes toward being abld to process indexes on expressions. Not there yet -
this check-in is just movement in that direction.  Some tests are failing.

FossilOrigin-Name: 0ad0f8d77d8f95ca2ffb7745d18219f5e87dc89c
2015-08-25 00:27:06 +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 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
mistachkin a09767b230 Enhancements to the batch build tool for MSVC.
FossilOrigin-Name: a1ae20cd97456a1126cfa1a9bedce0bac0940ad6
2015-08-24 17:18:43 +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 80d874083b Improvements to JSON string dequoting.
FossilOrigin-Name: 196d66d34d9783622e6f2f79eafea1488fc6f5cf
2015-08-24 12:42:41 +00:00
drh 442a7c6015 Fix corner-case problems in the type and atom columns of json_each() and
json_tree().

FossilOrigin-Name: f0aba0e120074430cd7ad93291fcc97b8a25a054
2015-08-24 02:32:04 +00:00
drh e792b5b420 Fix a comment typo on sqlite3ExprAlloc(). No code changes.
FossilOrigin-Name: 518d6220a12fb1289f699ef0821e6adfcd286ed0
2015-08-23 20:48:29 +00:00
drh c3722b2103 Fix minor glitches in the json1.c extension, mostly having to do with OOM
behavior.

FossilOrigin-Name: cc5204149c4053b9e529a72102d8df0925ad1ea1
2015-08-23 20:44:59 +00:00
drh 8784eca17f Fixes to json_each() and json_tree(). Improved json_parse() debugging output.
FossilOrigin-Name: fc1b24f316af07a64672f6edc14ebcff487dffbb
2015-08-23 02:42:30 +00:00
drh bc8f092ca1 Add the json_valid() function to the json1.c extension. Fix various minor
problems in the json1.c extension.

FossilOrigin-Name: 380a97345b446214843a63ccc017d49a52d884da
2015-08-22 19:39:04 +00:00
drh be9474ee05 Fix a couple instances of OOM handling in the json extension.
FossilOrigin-Name: 213a6c5ccbcfe4495d45e3608e99a6398751aeed
2015-08-22 03:05:54 +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 1fa97b3ec8 Add extension functions for processing JSON.
FossilOrigin-Name: 178f9a352c6c9e15e809e1a47530c6592d18578d
2015-08-21 20:43:32 +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 f28ed795db Change the name of the json loadable extension to "json1.c", in anticipation
of having future major changes to the interface.

FossilOrigin-Name: d0d4bec9e3d8829a2d488f2742f1650214fa716a
2015-08-21 20:12:43 +00:00
drh 4af352d47e Add the fullkey column to both json_each() and json_tree().
FossilOrigin-Name: 15dd99431e9ddd0fbdbb8dcc921687b0c6d26a29
2015-08-21 20:02:48 +00:00
drh b1b124d482 Merge header file fixes from trunk.
FossilOrigin-Name: 7c2713e98ffb5f0d96eb7de9514eab43f0712011
2015-08-21 19:56:45 +00:00
drh cfe05d882f Add a missing #define for sqlite3_vsnprintf to sqlite3ext.h.
FossilOrigin-Name: da3c9df09c46564353218d0163e378b880a3ce62
2015-08-21 19:53:06 +00:00
drh 180872fef9 Reserve the SQLITE_IOERR_VNODE error code name.
FossilOrigin-Name: 53b593fcae178f2e08f758ae6fd100869f771bfd
2015-08-21 17:39:35 +00:00
drh 505ad2ca41 Add the json_tree() virtual table.
FossilOrigin-Name: 08c36e45f0d3a7b89caf823652d7543b76ac802a
2015-08-21 17:33:11 +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 0dfbe064de Fix typo in comment. No changes to code.
FossilOrigin-Name: 7b8d17dd840f64dac9a018a4547a97de799e94ab
2015-08-21 12:37:49 +00:00
drh 89a10b2d53 Merge recent trunk enhancements, include table-valued functions.
FossilOrigin-Name: e9196d566690de0e9815f8cd85be7844322b5a79
2015-08-20 23:54:25 +00:00
drh c1bd84124b Merge recent enhancements from trunk, including table-valued expressions.
FossilOrigin-Name: b9927c876c1d4e146cb6a603d82cd2489594084d
2015-08-20 23:45:59 +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 0fee5969c8 Compiler-warning fixes in the sqldiff.exe utility.
FossilOrigin-Name: 64d13339d44d1b7ec6768a33421f2138cb7872d8
2015-08-20 23:33:09 +00:00
drh c743579e59 Fix a couple C99-isms that cause compile errors on MSVC.
FossilOrigin-Name: bc577fe6cbbe5385d81d6fa0f3c34bb1c833f0d6
2015-08-20 23:28:18 +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