Documentation Source Text

Check-in [af1be7762c]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Minor updates to json1 and table-valued function documentation.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: af1be7762c1d496f0c779e2898e802d4e587ded1
User & Date: drh 2015-09-11 16:14:34
Context
2015-09-11
17:17
Improvements and fixes to the eponymous virtual table documentation. check-in: a8cbed7cc9 user: drh tags: trunk
16:14
Minor updates to json1 and table-valued function documentation. check-in: af1be7762c user: drh tags: trunk
15:36
Still more typo corrections and clarification for the json1 documentation. check-in: 854fe12156 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/json1.in.

160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
...
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
and BLOBs.  It is not possible add a sixth "JSON" type.

<p>
The json1 extension does not (currently) support a binary encoding
of JSON.  Experiments have so far been unable to find a binary encoding
that is significantly smaller or faster than a plain text encoding.
(The present implementation parses JSON text at over 300 MB/s.)
The current implementation of the various JSON functions
always errors out if it see a BLOB argument, because BLOBs are reserved
for a future enhancement in which BLOBs will store the binary encoding
for JSON.

<p>
The "1" at the end of the name for the json1 extension is deliberate.
The designers anticipate that there will be future incompatible JSON
extensions building upon the lessons learned from json1.
................................................................................

<p>
However, if a <i>value</i> argument come directly from the result of another
json1 function, then the argument is understood to be actual JSON and
the complete JSON is inserted rather than a quoted string.

<p>
For example, in the following call to json_object(), the first <i>value</i>
argument looks like a well-formed JSON array.  But because it is just an
ordinary SQL text value it is interpreted as a literal string and added to the
result as a quoted string:

<tcl>
jexample {json_object('ex','[52,3.14159]')} {'{"ex":"[52,3.14159]"}'}
</tcl>

<p>







|
|







 







|
|
|







160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
...
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
and BLOBs.  It is not possible add a sixth "JSON" type.

<p>
The json1 extension does not (currently) support a binary encoding
of JSON.  Experiments have so far been unable to find a binary encoding
that is significantly smaller or faster than a plain text encoding.
(The present implementation parses JSON text at over 300 MB/s.)
All json1 functions currently throw an error if any of their
arguments are BLOBs because BLOBs are reserved
for a future enhancement in which BLOBs will store the binary encoding
for JSON.

<p>
The "1" at the end of the name for the json1 extension is deliberate.
The designers anticipate that there will be future incompatible JSON
extensions building upon the lessons learned from json1.
................................................................................

<p>
However, if a <i>value</i> argument come directly from the result of another
json1 function, then the argument is understood to be actual JSON and
the complete JSON is inserted rather than a quoted string.

<p>
For example, in the following call to json_object(), the <i>value</i>
argument looks like a well-formed JSON array.  But because it is just
ordinary SQL text it is interpreted as a literal string and added to the
result as a quoted string:

<tcl>
jexample {json_object('ex','[52,3.14159]')} {'{"ex":"[52,3.14159]"}'}
</tcl>

<p>

Changes to pages/vtab.in.

451
452
453
454
455
456
457
458

459
460
461
462
463
464
465
466

<p>A [virtual table] that contains [hidden columns] can be used like
a table-valued function in the FROM clause of a [SELECT] statement.
The arguments to the table-valued function become constraints on 
the HIDDEN columns of the virtual table.

<p>For example, the "generate_series" extension (located in the
ext/misc/series.c file in source tree) implements an 

[eponymous virtual table] with the following schema:

<blockquote><pre>
CREATE TABLE generate_series(
  value,
  start HIDDEN,
  stop HIDDEN,
  step HIDDEN







|
>
|







451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467

<p>A [virtual table] that contains [hidden columns] can be used like
a table-valued function in the FROM clause of a [SELECT] statement.
The arguments to the table-valued function become constraints on 
the HIDDEN columns of the virtual table.

<p>For example, the "generate_series" extension (located in the
[http://www.sqlite.org/src/artifact?ci=trunk&filename=ext/misc/series.c|ext/misc/series.c]
file in the [http://www.sqlite.org/src/tree?ci=trunk|source tree])
implements an [eponymous virtual table] with the following schema:

<blockquote><pre>
CREATE TABLE generate_series(
  value,
  start HIDDEN,
  stop HIDDEN,
  step HIDDEN