Documentation Source Text

Check-in [832ea9eb72]
Login

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

Overview
Comment:Fixed some typos and spelling mistakes.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 832ea9eb7226449273e7e13aeb00549c5e89943e
User & Date: shaneh 2009-03-05 21:46:31
Context
2009-03-06
04:13
Added a few more FAQ entries. Minor update and corrections. check-in: 4072a11193 user: shaneh tags: trunk
2009-03-05
21:46
Fixed some typos and spelling mistakes. check-in: 832ea9eb72 user: shaneh tags: trunk
2009-03-04
12:20
Fix spelling of precede and preceding in a few places. Cvs ticket 3700. check-in: 67c02fcc03 user: dan tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/changes.in.

155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
...
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
...
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
...
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
...
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
...
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
...
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
...
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
...
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
<li>Fix for a bug in the SELECT DISTINCT logic that was introduced by the
    prior version.</li>
<li>Other minor bug fixes</li>
}

chng {2008 Aug 30 (3.6.2)} {
<li>Split the pager subsystem into separate pager and pcache subsystems.</li>
<li>Factor out indentifier resolution procedures into separate files.</li>
<li>Bug fixes</li>
}

chng {2008 Aug 6 (3.6.1)} {
<li>Added the [lookaside memory allocator] for a speed improvement in excess
    of 15% on some workloads.  (Your mileage may vary.)</li>
<li>Added the [SQLITE_CONFIG_LOOKASIDE] verb to [sqlite3_config()] to control
................................................................................
<li>Added verbs [SQLITE_STATUS_PAGECACHE_SIZE] and
    [SQLITE_STATUS_SCRATCH_SIZE] to the [sqlite3_status()] interface.
<li>Modified [SQLITE_CONFIG_PAGECACHE] and [SQLITE_CONFIG_SCRATCH] to remove
    the "+4" magic number in the buffer size computation.
<li>Added the [sqlite3_db_config()] and [sqlite3_db_status()] interfaces for
    controlling and monitoring the lookaside allocator separately on each
    [database connection].</li>
<li>Numerious other performance enhancements</li>
<li>Miscellaneous minor bug fixes</li>
}

chng {2008 July 16 (3.6.0 beta)} {
<li>Modifications to the [sqlite3_vfs | virtual file system] interface
    to support a wider range of embedded systems.
    See [35to36 | 35to36.html] for additional information.
................................................................................
    incompatible changes to the new VFS interface in future releases.</i></li>

<li>Fix a bug in the handling of [SQLITE_FULL] errors that could lead
    to database corruption.  [Ticket #2686].
<li>The test_async.c drive now does full file locking and works correctly
    when used simultaneously by multiple processes on the same database.
<li>The CLI ignores whitespace (including comments) at the end of lines
<li>Make sure the query optimizer checks dependences on all terms of
    a compound SELECT statement.  [Ticket #2640].
<li>Add demonstration code showing how to build a VFS for a raw
    mass storage without a filesystem.
<li>Added an output buffer size parameter to the xGetTempname() method
    of the VFS layer.
<li>Sticky [SQLITE_FULL] or [SQLITE_IOERR] errors in the pager are reset
    when a new transaction is started.
................................................................................
<li>The [sqlite3_release_memory()], [sqlite3_soft_heap_limit()],
    and [sqlite3_enable_shared_cache()] interfaces now work cross all
    threads in the process, not just the single thread in which they
    are invoked.
    <font color="red">*** Potentially incompatible change ***</font>
<li>Added the [sqlite3_open_v2()] interface.  
<li>Reimplemented the memory allocation subsystem and made it 
    replacable at compile-time.
<li>Created a new mutex subsystem and made it replacable at
    compile-time.
<li>The same database connection may now be used simultaneously by
    separate threads.
}


chng {2007 August 13 (3.4.2)} {
................................................................................
    applications that use SQLite in the extreme, which is why the current
    release is 3.4.0 instead of 3.3.18.</li>
<li>Added support for [sqlite3_blob_open|Incremental BLOB I/O].</li>
<li>Added the [sqlite3_bind_zeroblob()] API</a>
    and the <a href="lang_expr.html#zeroblob">zeroblob()</a> SQL function.</li>
<li>Added support for <a href="pragma.html#pragma_incremental_vacuum">
    Incremental Vacuum</a>.</li>
<li>Added the SQLITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to suppport
    ARM7 processors with goofy endianness.</li>
<li>Removed all instances of sprintf() and strcpy() from the core library.</li>
<li>Added support for <a href="http://www.icu-project.org/">
    International Components for Unicode (ICU)</a> to the full-text search
    extensions.
</ul><p>
<ul type="circle">
<li>In the Windows OS driver, reacquire a SHARED lock if an attempt to
    acquire an EXCLUSIVE lock fails.  [Ticket #2354]</li>
<li>Fix the REPLACE() function so that it returns NULL if the second argument
    is an empty string.  [Ticket #2324].</li>
<li>Document the hazards of type coversions in
    [sqlite3_column_blob()]
    and related APIs.  Fix unnecessary type conversions.  [Ticket #2321].</li>
<li>Internationalization of the TRIM() function.  [Ticket #2323]</li>
<li>Use memmove() instead of memcpy() when moving between memory regions
    that might overlap.  [Ticket #2334]</li>
<li>Fix an optimizer bug involving subqueries in a compound SELECT that has
    both an ORDER BY and a LIMIT clause.  [Ticket #2339].</li>
................................................................................
<li>Keep the full precision of integers (if possible) when casting to
    NUMERIC.  [Ticket #2364]</li>
<li>Fix a bug in the handling of UTF16 codepoint 0xE000</li>
<li>Consider explicit collate clauses when matching WHERE constraints
    to indices in the query optimizer.  [Ticket #2391]</li>
<li>Fix the query optimizer to correctly handle constant expressions in 
    the ON clause of a LEFT JOIN.  [Ticket #2403]</li>
<li>Fix the query optimizer to handle rowid comparisions to NULL
    correctly.  [Ticket #2404]</li>
<li>Fix many potental segfaults that could be caused by malicious SQL
    statements.</li>
}

chng {2007 April 25 (3.3.17)} {
<li>When the "write_version" value of the database header is larger than
    what the library understands, make the database read-only instead of
    unreadable.</li>
................................................................................
<li>Add a makefile target "sqlite3.c" that builds an amalgamation containing
    the core SQLite library C code in a single file.</li>
<li>Get the library working correctly when compiled 
    with GCC option "-fstrict-aliasing".</li>
<li>Removed the vestigal SQLITE_PROTOCOL error.</li>
<li>Improvements to test coverage, other minor bugs fixed,
    memory leaks plugged,
    code refactored and/or recommented in places for easier reading.</li>
}

chng {2007 February 13 (3.3.13)} {
<li>Add a "fragmentation" measurement in the output of sqlite3_analyzer.</li>
<li>Add the COLLATE operator used to explicitly set the collating sequence
used by an expression.  This feature is considered experimental pending
additional testing.</li>
................................................................................
<li>Fix another bug in the implementation of the new 
<a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API.
We'll get it right eventually...</li>
<li>Fix a bug in the IS NULL optimization that was added in version 3.3.9 -
the bug was causing incorrect results on certain LEFT JOINs that included
in the WHERE clause an IS NULL constraint for the right table of the
LEFT JOIN.</li>
<li>Make AreFileApisANSI() a no-op macro in winCE since winCE does not
support this function.</li>
}

chng {2007 January 9 (3.3.10)} {
<li>Fix bugs in the implementation of the new 
<a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API
that can lead to segfaults.</li>
................................................................................
clauses that sort on the integer primary key</li>
<li>Use an index to satisfy an IS NULL operator in the WHERE clause</li>
<li>Fix a bug that was causing the optimizer to miss an OR optimization
opportunity</li>
<li>The optimizer has more freedom to reorder tables in the FROM clause
even in there are LEFT joins.</li>
</ul>
<li>Extension loading supported added to winCE</li>
<li>Allow constraint names on the DEFAULT clause in a table definition</li>
<li>Added the ".bail" command to the command-line shell</li>
<li>Make CSV (comma separate value) output from the command-line shell
more closely aligned to accepted practice</li>
<li>Experimental FTS2 module added</li>
<li>Use sqlite3_mprintf() instead of strdup() to avoid libc dependencies</li>
<li>VACUUM uses a temporary file in the official TEMP folder, not in the







|







 







|







 







|







 







|
|







 







|











|







 







|

|







 







|







 







|







 







|







155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
...
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
...
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
...
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
...
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
...
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
...
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
...
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
...
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
<li>Fix for a bug in the SELECT DISTINCT logic that was introduced by the
    prior version.</li>
<li>Other minor bug fixes</li>
}

chng {2008 Aug 30 (3.6.2)} {
<li>Split the pager subsystem into separate pager and pcache subsystems.</li>
<li>Factor out identifier resolution procedures into separate files.</li>
<li>Bug fixes</li>
}

chng {2008 Aug 6 (3.6.1)} {
<li>Added the [lookaside memory allocator] for a speed improvement in excess
    of 15% on some workloads.  (Your mileage may vary.)</li>
<li>Added the [SQLITE_CONFIG_LOOKASIDE] verb to [sqlite3_config()] to control
................................................................................
<li>Added verbs [SQLITE_STATUS_PAGECACHE_SIZE] and
    [SQLITE_STATUS_SCRATCH_SIZE] to the [sqlite3_status()] interface.
<li>Modified [SQLITE_CONFIG_PAGECACHE] and [SQLITE_CONFIG_SCRATCH] to remove
    the "+4" magic number in the buffer size computation.
<li>Added the [sqlite3_db_config()] and [sqlite3_db_status()] interfaces for
    controlling and monitoring the lookaside allocator separately on each
    [database connection].</li>
<li>Numerous other performance enhancements</li>
<li>Miscellaneous minor bug fixes</li>
}

chng {2008 July 16 (3.6.0 beta)} {
<li>Modifications to the [sqlite3_vfs | virtual file system] interface
    to support a wider range of embedded systems.
    See [35to36 | 35to36.html] for additional information.
................................................................................
    incompatible changes to the new VFS interface in future releases.</i></li>

<li>Fix a bug in the handling of [SQLITE_FULL] errors that could lead
    to database corruption.  [Ticket #2686].
<li>The test_async.c drive now does full file locking and works correctly
    when used simultaneously by multiple processes on the same database.
<li>The CLI ignores whitespace (including comments) at the end of lines
<li>Make sure the query optimizer checks dependencies on all terms of
    a compound SELECT statement.  [Ticket #2640].
<li>Add demonstration code showing how to build a VFS for a raw
    mass storage without a filesystem.
<li>Added an output buffer size parameter to the xGetTempname() method
    of the VFS layer.
<li>Sticky [SQLITE_FULL] or [SQLITE_IOERR] errors in the pager are reset
    when a new transaction is started.
................................................................................
<li>The [sqlite3_release_memory()], [sqlite3_soft_heap_limit()],
    and [sqlite3_enable_shared_cache()] interfaces now work cross all
    threads in the process, not just the single thread in which they
    are invoked.
    <font color="red">*** Potentially incompatible change ***</font>
<li>Added the [sqlite3_open_v2()] interface.  
<li>Reimplemented the memory allocation subsystem and made it 
    replaceable at compile-time.
<li>Created a new mutex subsystem and made it replicable at
    compile-time.
<li>The same database connection may now be used simultaneously by
    separate threads.
}


chng {2007 August 13 (3.4.2)} {
................................................................................
    applications that use SQLite in the extreme, which is why the current
    release is 3.4.0 instead of 3.3.18.</li>
<li>Added support for [sqlite3_blob_open|Incremental BLOB I/O].</li>
<li>Added the [sqlite3_bind_zeroblob()] API</a>
    and the <a href="lang_expr.html#zeroblob">zeroblob()</a> SQL function.</li>
<li>Added support for <a href="pragma.html#pragma_incremental_vacuum">
    Incremental Vacuum</a>.</li>
<li>Added the SQLITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to support
    ARM7 processors with goofy endianness.</li>
<li>Removed all instances of sprintf() and strcpy() from the core library.</li>
<li>Added support for <a href="http://www.icu-project.org/">
    International Components for Unicode (ICU)</a> to the full-text search
    extensions.
</ul><p>
<ul type="circle">
<li>In the Windows OS driver, reacquire a SHARED lock if an attempt to
    acquire an EXCLUSIVE lock fails.  [Ticket #2354]</li>
<li>Fix the REPLACE() function so that it returns NULL if the second argument
    is an empty string.  [Ticket #2324].</li>
<li>Document the hazards of type conversions in
    [sqlite3_column_blob()]
    and related APIs.  Fix unnecessary type conversions.  [Ticket #2321].</li>
<li>Internationalization of the TRIM() function.  [Ticket #2323]</li>
<li>Use memmove() instead of memcpy() when moving between memory regions
    that might overlap.  [Ticket #2334]</li>
<li>Fix an optimizer bug involving subqueries in a compound SELECT that has
    both an ORDER BY and a LIMIT clause.  [Ticket #2339].</li>
................................................................................
<li>Keep the full precision of integers (if possible) when casting to
    NUMERIC.  [Ticket #2364]</li>
<li>Fix a bug in the handling of UTF16 codepoint 0xE000</li>
<li>Consider explicit collate clauses when matching WHERE constraints
    to indices in the query optimizer.  [Ticket #2391]</li>
<li>Fix the query optimizer to correctly handle constant expressions in 
    the ON clause of a LEFT JOIN.  [Ticket #2403]</li>
<li>Fix the query optimizer to handle rowid comparisons to NULL
    correctly.  [Ticket #2404]</li>
<li>Fix many potential segfaults that could be caused by malicious SQL
    statements.</li>
}

chng {2007 April 25 (3.3.17)} {
<li>When the "write_version" value of the database header is larger than
    what the library understands, make the database read-only instead of
    unreadable.</li>
................................................................................
<li>Add a makefile target "sqlite3.c" that builds an amalgamation containing
    the core SQLite library C code in a single file.</li>
<li>Get the library working correctly when compiled 
    with GCC option "-fstrict-aliasing".</li>
<li>Removed the vestigal SQLITE_PROTOCOL error.</li>
<li>Improvements to test coverage, other minor bugs fixed,
    memory leaks plugged,
    code refactored and/or recommended in places for easier reading.</li>
}

chng {2007 February 13 (3.3.13)} {
<li>Add a "fragmentation" measurement in the output of sqlite3_analyzer.</li>
<li>Add the COLLATE operator used to explicitly set the collating sequence
used by an expression.  This feature is considered experimental pending
additional testing.</li>
................................................................................
<li>Fix another bug in the implementation of the new 
<a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API.
We'll get it right eventually...</li>
<li>Fix a bug in the IS NULL optimization that was added in version 3.3.9 -
the bug was causing incorrect results on certain LEFT JOINs that included
in the WHERE clause an IS NULL constraint for the right table of the
LEFT JOIN.</li>
<li>Make AreFileApisANSI() a no-op macro in WinCE since WinCE does not
support this function.</li>
}

chng {2007 January 9 (3.3.10)} {
<li>Fix bugs in the implementation of the new 
<a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API
that can lead to segfaults.</li>
................................................................................
clauses that sort on the integer primary key</li>
<li>Use an index to satisfy an IS NULL operator in the WHERE clause</li>
<li>Fix a bug that was causing the optimizer to miss an OR optimization
opportunity</li>
<li>The optimizer has more freedom to reorder tables in the FROM clause
even in there are LEFT joins.</li>
</ul>
<li>Extension loading supported added to WinCE</li>
<li>Allow constraint names on the DEFAULT clause in a table definition</li>
<li>Added the ".bail" command to the command-line shell</li>
<li>Make CSV (comma separate value) output from the command-line shell
more closely aligned to accepted practice</li>
<li>Experimental FTS2 module added</li>
<li>Use sqlite3_mprintf() instead of strdup() to avoid libc dependencies</li>
<li>VACUUM uses a temporary file in the official TEMP folder, not in the

Changes to pages/download.in.

104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
...
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
...
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
  An analysis program for database files compatible with SQLite 
  version VERSION and later.
}

Heading {Precompiled Binaries For Windows}

Product sqlite-V3.zip {
  A command-line program for accessing and modifing SQLite databases.
  See <a href="sqlite.html">the documentation</a> for additional information.
}
Product tclsqlite-V3.zip {
  Bindings for <a href="http://www.tcl.tk/">Tcl/Tk</a>.
  You can import this shared library into either
  tclsh or wish to get SQLite database access from Tcl/Tk.
  See <a href="tclsqlite.html">the documentation</a> for details.
................................................................................


Heading {Source Code}

Product {sqlite-amalgamation-V3.zip} {
  This ZIP archive contains all preprocessed C code combined into a
  single source file (the <a href="amalgamation.html">amalgamation</a>).
  This is the <b>recommented</b> way of acquiring the SQLite
  source code.  It is suggested that you use this packing option
  unless you have a compelling reason to use one
  of the other packaging options below.
}

Product {sqlite-amalgamation-V3.tar.gz} {
  A tarball containing the <a href="amalgamation.html">amalgamation</a>
  together with an configure script and makefile
  for building it.  This is the <b>recommended</b> source distribution for all
  Unix and unix-like platforms.
}


Product {sqlite-V3-tea.tar.gz} {
  A tarball of preprocessed source code together with a
  <a href="http://www.tcl.tk/doc/tea/">Tcl Extension Architecture (TEA)</a>
  compatible configure script and makefile.
................................................................................
  SQLite.
}

Product {sqlite-V3.tar.gz} {
  A tarball of the complete source tree for SQLite version VERSION
  as extracted from the version control system.  <i>The Makefile and
  configure script in this tarball are not supported</i>.  Their use
  is <b><u>not</u> recommented</b>. The SQLite developers do not use them.  
  You should not use them either.  If you want a configure script and
  an automated build, use either the amalgamation tarball or TEA tarball
  instead of this one.
  To build from this tarball, hand-edit one of the template Makefiles
  in the root directory of the tarball and build using your own customized
  Makefile.
}

Product {sqlite-source-V3.zip} {
  This ZIP archive contains preprocessed C code for the SQLite library as
  individual source files.  The use of this source distribution is
  <b><u>not</u> recommented</b>.  Use one of the amalgamation packages above
  unless you have a compelling reason not to.
}

Product {sqlite-V3.src.rpm} {
  An RPM containing complete source code for SQLite version VERSION
}








|







 







|









|







 







|











|







104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
...
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
...
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
  An analysis program for database files compatible with SQLite 
  version VERSION and later.
}

Heading {Precompiled Binaries For Windows}

Product sqlite-V3.zip {
  A command-line program for accessing and modifying SQLite databases.
  See <a href="sqlite.html">the documentation</a> for additional information.
}
Product tclsqlite-V3.zip {
  Bindings for <a href="http://www.tcl.tk/">Tcl/Tk</a>.
  You can import this shared library into either
  tclsh or wish to get SQLite database access from Tcl/Tk.
  See <a href="tclsqlite.html">the documentation</a> for details.
................................................................................


Heading {Source Code}

Product {sqlite-amalgamation-V3.zip} {
  This ZIP archive contains all preprocessed C code combined into a
  single source file (the <a href="amalgamation.html">amalgamation</a>).
  This is the <b>recommended</b> way of acquiring the SQLite
  source code.  It is suggested that you use this packing option
  unless you have a compelling reason to use one
  of the other packaging options below.
}

Product {sqlite-amalgamation-V3.tar.gz} {
  A tarball containing the <a href="amalgamation.html">amalgamation</a>
  together with an configure script and makefile
  for building it.  This is the <b>recommended</b> source distribution for all
  Unix and Unix-like platforms.
}


Product {sqlite-V3-tea.tar.gz} {
  A tarball of preprocessed source code together with a
  <a href="http://www.tcl.tk/doc/tea/">Tcl Extension Architecture (TEA)</a>
  compatible configure script and makefile.
................................................................................
  SQLite.
}

Product {sqlite-V3.tar.gz} {
  A tarball of the complete source tree for SQLite version VERSION
  as extracted from the version control system.  <i>The Makefile and
  configure script in this tarball are not supported</i>.  Their use
  is <b><u>not</u> recommended</b>. The SQLite developers do not use them.  
  You should not use them either.  If you want a configure script and
  an automated build, use either the amalgamation tarball or TEA tarball
  instead of this one.
  To build from this tarball, hand-edit one of the template Makefiles
  in the root directory of the tarball and build using your own customized
  Makefile.
}

Product {sqlite-source-V3.zip} {
  This ZIP archive contains preprocessed C code for the SQLite library as
  individual source files.  The use of this source distribution is
  <b><u>not</u> recommended</b>.  Use one of the amalgamation packages above
  unless you have a compelling reason not to.
}

Product {sqlite-V3.src.rpm} {
  An RPM containing complete source code for SQLite version VERSION
}

Changes to pages/faq.in.

185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
  was relaxed somewhat in [version 3.3.1].  With that and subsequent
  versions, it is safe to move a connection handle across threads
  as long as the connection is not holding any fcntl() locks.  You
  can safely assume that no locks are being held if no
  transaction is pending and all 
  [sqlite3_stmt|statements] have been [sqlite3_finalize|finalized].</p>

  <p>Under UNIX, you should not carry an open SQLite database across
  a fork() system call into the child process.  Problems will result
  if you do.</p>
}

faq {
  How do I list all tables/indices contained in an SQLite database
} {







|







185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
  was relaxed somewhat in [version 3.3.1].  With that and subsequent
  versions, it is safe to move a connection handle across threads
  as long as the connection is not holding any fcntl() locks.  You
  can safely assume that no locks are being held if no
  transaction is pending and all 
  [sqlite3_stmt|statements] have been [sqlite3_finalize|finalized].</p>

  <p>Under Unix, you should not carry an open SQLite database across
  a fork() system call into the child process.  Problems will result
  if you do.</p>
}

faq {
  How do I list all tables/indices contained in an SQLite database
} {

Changes to pages/lang.in.

2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
....
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
quotes (ex: <b>'key'</b> or <b>'glob'</b>) is used in a context where
an identifier is allowed but where a string literal is not allowed, then
the token is understood to be an identifier instead of a string literal.
</p></li>

<li><p>If a keyword in double
quotes (ex: <b>"key"</b> or <b>"glob"</b>) is used in a context where
it cannot be resolved to an indentifier but where a string literal
is allowed, then the token is understood to be a string literal instead
of an identifer.</p></li>
</ul>

<p>Programmers are cautioned not to use the two exceptions described in
the previous bullets.  We emphasize that they exist only so that old
and ill-formed SQL statements will run correctly.  Future versions of
................................................................................
In the list of keywords that follows, those that can be used as identifiers
are shown in an italic font.  Keywords that must be quoted in order to be
used as identifiers are shown in bold.</p>

<p>
SQLite adds new keywords from time to time when it takes on new features.
So to prevent your code from being broken by future enhancements, you should
normally quote any indentifier that is an English language word, even if
you do not have to.
</p>

<p>
The following are the keywords currently recognized by SQLite:
</p>








|







 







|







2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
....
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
quotes (ex: <b>'key'</b> or <b>'glob'</b>) is used in a context where
an identifier is allowed but where a string literal is not allowed, then
the token is understood to be an identifier instead of a string literal.
</p></li>

<li><p>If a keyword in double
quotes (ex: <b>"key"</b> or <b>"glob"</b>) is used in a context where
it cannot be resolved to an identifier but where a string literal
is allowed, then the token is understood to be a string literal instead
of an identifer.</p></li>
</ul>

<p>Programmers are cautioned not to use the two exceptions described in
the previous bullets.  We emphasize that they exist only so that old
and ill-formed SQL statements will run correctly.  Future versions of
................................................................................
In the list of keywords that follows, those that can be used as identifiers
are shown in an italic font.  Keywords that must be quoted in order to be
used as identifiers are shown in bold.</p>

<p>
SQLite adds new keywords from time to time when it takes on new features.
So to prevent your code from being broken by future enhancements, you should
normally quote any identifier that is an English language word, even if
you do not have to.
</p>

<p>
The following are the keywords currently recognized by SQLite:
</p>