Commit Graph

5445 Commits

Author SHA1 Message Date
drh
4977ccf143 Fix an off-by-one error (really off-by-2 in this case) in the buffer
resize logic of json1.

FossilOrigin-Name: d2a027372a5a6efc0f9b6f605093d865ae1c6788
2015-09-19 11:57:26 +00:00
drh
4cbc54b042 Do not allow rowid in a UNIQUE or PRIMARY KEY constraint. (This restores the
same behavior exhibited by all prior releases.)

FossilOrigin-Name: b1278301e37220a075c1bae88c0fcca2ef7a7d5c
2015-09-19 03:07:30 +00:00
drh
e63e8a6c78 Fix a crash that can occur with a skip-scan on an index with
expressions when SQLITE_ENABLE_EXPLAIN_COMMENTS is defined.

FossilOrigin-Name: 25f34cb9b576a2d4250a06a7dbf88010b1c11675
2015-09-18 18:09:28 +00:00
drh
e5c61f81c3 Adjustments to the spellfix2.test module so that it works reliably on
windows.

FossilOrigin-Name: 09a313fb7f2c16b0253a439edb901a7bb201d7d3
2015-09-18 15:38:07 +00:00
drh
bec9d65da4 Adjust two test cases so that they conform to the current code.
FossilOrigin-Name: 228e3d7c8f37c722aee3b589bdd5cfaa4b1f6f03
2015-09-18 15:35:16 +00:00
drh
59de9c0080 Fix sqlilimits.test module so that it knows that the SELECT in a CREATE VIEW
is not checked until the view is actually used.

FossilOrigin-Name: acf5d87f9456a1d0d69fe0ebc753211e1be07eaf
2015-09-18 15:13:29 +00:00
dan
ad41f5eda3 Ensure that "PRAGMA integrity_check" reports an error if the free-list count header field contains a value smaller than the actual number of pages on the database free-list.
FossilOrigin-Name: 26f64986d1ed59c554a7cb9e00e86a7f148f1fc6
2015-09-18 14:45:01 +00:00
drh
3a84411fc4 Fix the orderby9.test case so that it works with 32-bit versions of TCL
FossilOrigin-Name: 4b6af7743034546a407a3e4722645945a4efc8a1
2015-09-18 14:42:48 +00:00
drh
9df5ad58bb Remove a test made obsolete by the ONEPASS DELETE optimization.
FossilOrigin-Name: c88b62c28cc7ac31b93f7df0c732e0bb6ca24f65
2015-09-18 14:22:34 +00:00
dan
2e8f5517f7 Avoid passing (signed char) values directly to isspace(), isalnum() or isdigit() in json1.c. Cast the value to (unsigned char) first.
FossilOrigin-Name: 6713e35b8a8c997aa2717e86ce6dcd63bb993477
2015-09-17 17:21:09 +00:00
drh
d9dfeb575e Add a "flush" to force incremental output to releasetest-out.txt while running
the test/releasetest.tcl. script.

FossilOrigin-Name: 0f3de2d337a3113dbd0765aa5545bb586b780121
2015-09-16 17:46:11 +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
b3366b99c8 Update evidence marks due to wording changes in requirements text. No
changes to code.

FossilOrigin-Name: 86781093bdb4c4fdedd228cb1c8961db48a483bb
2015-09-11 20:54:44 +00:00
drh
e98b6fab47 More test cases in test/json102.test corresponding to new examples in the
json1 documentation.

FossilOrigin-Name: f599a42e190b4b89d74055402143c5487985cd90
2015-09-11 15:32:33 +00:00
drh
12b3b89542 Updates to the sqlite3_value_subtype() and sqlite3_result_subtype()
documentation and to test cases for json1 dealing with those interfaces.

FossilOrigin-Name: d6cadbe9fefce9a7af6b2d0cb83362f967d7d89a
2015-09-11 01:22:41 +00:00
drh
f5ddb9c214 Take out the goofy '$$' path syntax. Instead, use subtypes to communicate when
a string is JSON.  Add the json() function that validates and minifies the
JSON and sets the appropriate subtype.

FossilOrigin-Name: 8a80d6459e246ec1b38325e1cbd1e862157138b3
2015-09-11 00:06:41 +00:00
drh
bcdf78a61c Experimental implementation of sqlite3_result_subtype() and
sqlite3_value_subtype() interfaces.

FossilOrigin-Name: 7b5be299c617a3d3ed327ed30ef0a66a62c85b1f
2015-09-10 20:34:56 +00:00
drh
e6f5278c9a Disable tests for json_each() and json_tree() on builds where
virtual tables are not supported

FossilOrigin-Name: bb8ee3b140a0a8b7c89f5debf22369f204ceef0b
2015-09-10 15:22:35 +00:00
drh
b1031f05e0 Fix the --help option on test/releasetest.tcl. Also fix the final error
count so that it includes a count of subtest crashes.

FossilOrigin-Name: 9ecf684dfe0cd7e3b058d208aca7eb600bf1d21b
2015-09-10 15:20:49 +00:00
drh
852944eb9b Fix the json_tree() scan for the case when a path is supplied. Add new
json1 test cases.

FossilOrigin-Name: 6adc7de76acee6cfb5ff761739e7a8de7b5bf4b2
2015-09-10 03:29:11 +00:00
drh
3c03afd3f5 When running a CREATE TABLE AS, make the initial temporary sqlite_master entry
for the new table a real record rather than a NULL, in case the query after 
the AS actually tries to read the sqlite_master table.
Fix for ticket [acd12990885d9276].

FossilOrigin-Name: 4a18d8bd4cc66eb08c6198cdf6e14f1bce0ec05a
2015-09-09 13:28:06 +00:00
drh
b4d472f609 Eponymous virtual tables exist in the "main" schema only. Enforce this rule.
FossilOrigin-Name: 06f90bb274c4bb0c30585024c8d365d43c4162f2
2015-09-08 20:26:09 +00:00
drh
0b8d255c37 Omit all use of Expr nodes for TK_AS, as those nodes no longer served a useful
purpose and in fact interferred with the query planner.

FossilOrigin-Name: 7ab0b258eabfcfb7f1b0bd1b12e166d2f267823d
2015-09-05 22:36:07 +00:00
drh
aac39e1ded Merge trunk enhancements, and espeically the fix for allowing strings
as column identifers in CREATE INDEX statements.

FossilOrigin-Name: 5ff855293865c244ac632c630e8e7e8d7c05a5f6
2015-09-04 13:02:21 +00:00
drh
edb04ed946 Continue to support the (broken) legacy syntax of allowing strings for
column names in CREATE INDEX statements and in UNIQUE and PRIMARY KEY
constraints.

FossilOrigin-Name: 3d3df79bfaf9dbc7aa711c08a19d2f6dbe744b32
2015-09-04 12:54:01 +00:00
drh
8b57642259 Fix a bug in error reporting when a UNIQUE index on expressions fails its
uniqueness test.

FossilOrigin-Name: 5a2c0e90a1933545b4768d91d8f7c42c8f391019
2015-08-31 23:09:42 +00:00
drh
390b88a448 Case should not be significant when comparing function names.
FossilOrigin-Name: e2f1caf117b0a9632d52246717ab202852982339
2015-08-31 18:13:01 +00:00
drh
1d85e405e6 Make the distinction between truly deterministic functions and date/time
functions which only return the same answer for a single query.  Only truly
deterministic functions are allowed in indexes.  Add new expression index
test cases.

FossilOrigin-Name: c77554b5c42327106a7b90334e9cc3c07b007c76
2015-08-31 17:34:41 +00:00
drh
47991425cb Improved analysis and usage of indexed expressions in the query planner.
FossilOrigin-Name: f8893696387cba9d293a05a68dc38228077b3dc5
2015-08-31 15:58:06 +00:00
drh
087f83b662 Merge the latest enhancements from trunk.
FossilOrigin-Name: 7bde6d4d8cf05e1beb9bdf20b85760dc3e7a76c9
2015-08-31 14:27:29 +00:00
drh
20b3b6109b New test cases for the json1 extension.
FossilOrigin-Name: daff4832af963f98bcc1d2c2f84bd815d384f850
2015-08-29 18:30:30 +00:00
drh
d1f0068d19 Do not consider an empty string to be valid JSON. Add some additional
JSON test cases.

FossilOrigin-Name: fd19ff029f128f478f69910352a6f8b84262ce1d
2015-08-29 16:02:37 +00:00
drh
f2df7e71d6 Back out the json_check() routine. Instead, throw an error if the input to
a json function (other than json_valid()) is not valid JSON.

FossilOrigin-Name: dc9ce7b18cbe23d065317757234ef9fb8792da7a
2015-08-28 20:07:40 +00:00
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
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
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
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
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