Documentation Source Text

Check-in [e3685f5763]
Login

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

Overview
Comment:Add new result codes to the rescode.in document. Mention the new sqlite3_vtab_collation() interface in the change log.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: e3685f57634f91b990c95e8612fe86fce8a35137e2bb62c6574002c91c0399e3
User & Date: drh 2018-01-16 21:01:46.609
Context
2018-01-18
19:07
Update the size and speed spreadsheet. Simplifications to text in the CLI document. (check-in: 2fac94a5a3 user: drh tags: trunk)
2018-01-16
21:01
Add new result codes to the rescode.in document. Mention the new sqlite3_vtab_collation() interface in the change log. (check-in: e3685f5763 user: drh tags: trunk)
17:07
Fix typo in the CSV documentation. (check-in: a1a35a2b71 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/changes.in.
26
27
28
29
30
31
32

33
34
35
36
37
38
39
     run within a trigger.
<li> Add the ability to read from [WAL mode] databases even if the application 
     lacks write permission on the database and its containing directory, as long as
     the -shm and -wal files exist in that directory.
<li> Added the [rtreecheck()] scalar SQL function to the [R-Tree extension].
<li> Added the [sqlite3_vtab_nochange()] and [sqlite3_value_nochange()] interfaces
     to help virtual table implementations optimize UPDATE operations.

<li> Added support for the [FTS5 initial token|"&#94;" initial token syntax] in FTS5.
<li> New extensions:
<ol type='a'>
  <li> The [Zipfile virtual table] can read and write a 
       [https://en.wikipedia.org/wiki/Zip_(file_format)|ZIP Archive].
  <li> Added the fsdir(PATH) [table-valued function] to the
       [https://sqlite.org/src/file/ext/misc/fileio.c|fileio.c] extension,







>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
     run within a trigger.
<li> Add the ability to read from [WAL mode] databases even if the application 
     lacks write permission on the database and its containing directory, as long as
     the -shm and -wal files exist in that directory.
<li> Added the [rtreecheck()] scalar SQL function to the [R-Tree extension].
<li> Added the [sqlite3_vtab_nochange()] and [sqlite3_value_nochange()] interfaces
     to help virtual table implementations optimize UPDATE operations.
<li> Added the [sqlite3_vtab_collation()] interface.
<li> Added support for the [FTS5 initial token|"&#94;" initial token syntax] in FTS5.
<li> New extensions:
<ol type='a'>
  <li> The [Zipfile virtual table] can read and write a 
       [https://en.wikipedia.org/wiki/Zip_(file_format)|ZIP Archive].
  <li> Added the fsdir(PATH) [table-valued function] to the
       [https://sqlite.org/src/file/ext/misc/fileio.c|fileio.c] extension,
Changes to pages/rescode.in.
701
702
703
704
705
706
707







































708
709
710
711
712
713
714
RESCODE SQLITE_WARNING_AUTOINDEX       {SQLITE_WARNING | (1<<8)} {
  The SQLITE_WARNING_AUTOINDEX result code is
  passed to the callback of
  [sqlite3_log()] whenever [automatic indexing] is used.
  This can serve as a warning to application designers that the
  database might benefit from additional indexes.
}








































#############################################################################
# Code to process the RESCODE values
#
# Convert formula RESCODE values into numerics
set nResCode 0
set nPrimCode 0







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
RESCODE SQLITE_WARNING_AUTOINDEX       {SQLITE_WARNING | (1<<8)} {
  The SQLITE_WARNING_AUTOINDEX result code is
  passed to the callback of
  [sqlite3_log()] whenever [automatic indexing] is used.
  This can serve as a warning to application designers that the
  database might benefit from additional indexes.
}

RESCODE SQLITE_ERROR_MISSING_COLLSEQ  {SQLITE_ERROR | (1<<8)} {
  The SQLITE_ERROR_MISSING_COLLSEQ result code means that an SQL
  statement could not be prepared because a collating sequence named
  in that SQL statement could not be located.
  <p>
  Sometimes when this error code is encountered, the
  [sqlite3_prepare_v2()] routine will convert the error into
  [SQLITE_ERROR_RETRY] and try again to prepare the SQL statement
  using a different query plan that does not require the use of
  the unknown collating sequence.
}
RESCODE SQLITE_ERROR_RETRY {SQLITE_ERROR | (2<<8)} {
  The SQLITE_ERROR_RETRY is used internally to provoke [sqlite3_prepare_v2()]
  (or one of its sibling routines for creating prepared statements) to
  try again to prepare a statement that failed with an error on the
  previous attempt.
}
RESCODE SQLITE_READONLY_CANTINIT {SQLITE_READONLY | (5<<8)} {
  The SQLITE_READONLY_CANTINIT result code originates in the xShmMap method
  of a [VFS] to indicate that the shared memory region used by [WAL mode]
  exists buts its content is unreliable and unusable by the current process
  since the current process does not have write permission on the shared
  memory region.  (The shared memory region for WAL mode is normally a
  file with a "-wal" suffix that is mmapped into the process space.  If
  the current process does not have write permission on that file, then it
  cannot write into shared memory.)
  <p>
  Higher level logic within SQLite will normally intercept the error code
  and create a temporary in-memory shared memory region so that the current
  process can at least read the content of the database.  This result code
  should not reach the application interface layer.
}
RESCODE SQLITE_READONLY_DIRECTORY {SQLITE_READONLY | (6<<8)} {
  The SQLITE_READONLY_DIRECTORY result code indicates that the database
  is read-only because process does not have permission to create
  a journal file in the same directory as the database and the creation of
  a journal file is a prerequisite for writing.
}

#############################################################################
# Code to process the RESCODE values
#
# Convert formula RESCODE values into numerics
set nResCode 0
set nPrimCode 0
771
772
773
774
775
776
777
778
779
780
781
#
foreach val [lsort -int [array names valtoname]] {
  set name $valtoname($val)
  regsub {sqlite_} [string tolower $name] {} tag
  hd_puts "<!--------------------------------------------------------------->\n"
  hd_fragment $tag --override $name
  hd_puts "<h3>($val) $valtoname($val)</h3>\n"
  hd_resolve $resdesc($name)\n\n
}

</tcl>







|



810
811
812
813
814
815
816
817
818
819
820
#
foreach val [lsort -int [array names valtoname]] {
  set name $valtoname($val)
  regsub {sqlite_} [string tolower $name] {} tag
  hd_puts "<!--------------------------------------------------------------->\n"
  hd_fragment $tag --override $name
  hd_puts "<h3>($val) $valtoname($val)</h3>\n"
  hd_resolve <p>$resdesc($name)\n\n
}

</tcl>