summaryrefslogtreecommitdiffstats
path: root/www/rescode.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 17:28:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 17:28:19 +0000
commit18657a960e125336f704ea058e25c27bd3900dcb (patch)
tree17b438b680ed45a996d7b59951e6aa34023783f2 /www/rescode.html
parentInitial commit. (diff)
downloadsqlite3-18657a960e125336f704ea058e25c27bd3900dcb.tar.xz
sqlite3-18657a960e125336f704ea058e25c27bd3900dcb.zip
Adding upstream version 3.40.1.upstream/3.40.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--www/rescode.html1561
1 files changed, 1561 insertions, 0 deletions
diff --git a/www/rescode.html b/www/rescode.html
new file mode 100644
index 0000000..3baa4fd
--- /dev/null
+++ b/www/rescode.html
@@ -0,0 +1,1561 @@
+<!DOCTYPE html>
+<html><head>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<link href="sqlite.css" rel="stylesheet">
+<title>Result and Error Codes</title>
+<!-- path= -->
+</head>
+<body>
+<div class=nosearch>
+<a href="index.html">
+<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite" border="0">
+</a>
+<div><!-- IE hack to prevent disappearing logo --></div>
+<div class="tagline desktoponly">
+Small. Fast. Reliable.<br>Choose any three.
+</div>
+<div class="menu mainmenu">
+<ul>
+<li><a href="index.html">Home</a>
+<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a>
+<li class='wideonly'><a href='about.html'>About</a>
+<li class='desktoponly'><a href="docs.html">Documentation</a>
+<li class='desktoponly'><a href="download.html">Download</a>
+<li class='wideonly'><a href='copyright.html'>License</a>
+<li class='desktoponly'><a href="support.html">Support</a>
+<li class='desktoponly'><a href="prosupport.html">Purchase</a>
+<li class='search' id='search_menubutton'>
+<a href="javascript:void(0)" onclick='toggle_search()'>Search</a>
+</ul>
+</div>
+<div class="menu submenu" id="submenu">
+<ul>
+<li><a href='about.html'>About</a>
+<li><a href='docs.html'>Documentation</a>
+<li><a href='download.html'>Download</a>
+<li><a href='support.html'>Support</a>
+<li><a href='prosupport.html'>Purchase</a>
+</ul>
+</div>
+<div class="searchmenu" id="searchmenu">
+<form method="GET" action="search">
+<select name="s" id="searchtype">
+<option value="d">Search Documentation</option>
+<option value="c">Search Changelog</option>
+</select>
+<input type="text" name="q" id="searchbox" value="">
+<input type="submit" value="Go">
+</form>
+</div>
+</div>
+<script>
+function toggle_div(nm) {
+var w = document.getElementById(nm);
+if( w.style.display=="block" ){
+w.style.display = "none";
+}else{
+w.style.display = "block";
+}
+}
+function toggle_search() {
+var w = document.getElementById("searchmenu");
+if( w.style.display=="block" ){
+w.style.display = "none";
+} else {
+w.style.display = "block";
+setTimeout(function(){
+document.getElementById("searchbox").focus()
+}, 30);
+}
+}
+function div_off(nm){document.getElementById(nm).style.display="none";}
+window.onbeforeunload = function(e){div_off("submenu");}
+/* Disable the Search feature if we are not operating from CGI, since */
+/* Search is accomplished using CGI and will not work without it. */
+if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){
+document.getElementById("search_menubutton").style.display = "none";
+}
+/* Used by the Hide/Show button beside syntax diagrams, to toggle the */
+function hideorshow(btn,obj){
+var x = document.getElementById(obj);
+var b = document.getElementById(btn);
+if( x.style.display!='none' ){
+x.style.display = 'none';
+b.innerHTML='show';
+}else{
+x.style.display = '';
+b.innerHTML='hide';
+}
+return false;
+}
+var antiRobot = 0;
+function antiRobotGo(){
+if( antiRobot!=3 ) return;
+antiRobot = 7;
+var j = document.getElementById("mtimelink");
+if(j && j.hasAttribute("data-href")) j.href=j.getAttribute("data-href");
+}
+function antiRobotDefense(){
+document.body.onmousedown=function(){
+antiRobot |= 2;
+antiRobotGo();
+document.body.onmousedown=null;
+}
+document.body.onmousemove=function(){
+antiRobot |= 2;
+antiRobotGo();
+document.body.onmousemove=null;
+}
+setTimeout(function(){
+antiRobot |= 1;
+antiRobotGo();
+}, 100)
+antiRobotGo();
+}
+antiRobotDefense();
+</script>
+<div class=fancy>
+<div class=nosearch>
+<div class="fancy_title">
+Result and Error Codes
+</div>
+<div class="fancy_toc">
+<a onclick="toggle_toc()">
+<span class="fancy_toc_mark" id="toc_mk">&#x25ba;</span>
+Table Of Contents
+</a>
+<div id="toc_sub"><div class="fancy-toc1"><a href="#result_codes_versus_error_codes">1. Result Codes versus Error Codes</a></div>
+<div class="fancy-toc1"><a href="#primary_result_codes_versus_extended_result_codes">2. Primary Result Codes versus Extended Result Codes</a></div>
+<div class="fancy-toc1"><a href="#definitions">3. Definitions</a></div>
+<div class="fancy-toc1"><a href="#primary_result_code_list">4. Primary Result Code List</a></div>
+<div class="fancy-toc1"><a href="#extended_result_code_list">5. Extended Result Code List</a></div>
+<div class="fancy-toc1"><a href="#result_code_meanings">6. Result Code Meanings</a></div>
+</div>
+</div>
+<script>
+function toggle_toc(){
+var sub = document.getElementById("toc_sub")
+var mk = document.getElementById("toc_mk")
+if( sub.style.display!="block" ){
+sub.style.display = "block";
+mk.innerHTML = "&#x25bc;";
+} else {
+sub.style.display = "none";
+mk.innerHTML = "&#x25ba;";
+}
+}
+</script>
+</div>
+
+
+
+
+
+<h2 style="margin-left:1.0em" notoc="1" id="overview"> Overview</h2>
+
+<p>
+Many of the routines in the SQLite <a href="c3ref/intro.html">C-language Interface</a> return
+numeric result codes indicating either success or failure, and
+in the event of a failure, providing some idea of the cause of
+the failure. This document strives to explain what each
+of those numeric result codes means.
+
+</p><h1 id="result_codes_versus_error_codes"><span>1. </span>Result Codes versus Error Codes</h1>
+
+<p>
+"Error codes" are a subset of "result codes" that indicate that
+something has gone wrong. There are only a few non-error result
+codes: <a href="rescode.html#ok">SQLITE_OK</a>, <a href="rescode.html#row">SQLITE_ROW</a>, and <a href="rescode.html#done">SQLITE_DONE</a>. The term
+"error code" means any result code other than these three.
+
+<a name="pve"></a>
+
+</p><h1 id="primary_result_codes_versus_extended_result_codes"><span>2. </span>Primary Result Codes versus Extended Result Codes</h1>
+
+<p>
+Result codes are signed 32-bit integers.
+The least significant 8 bits of the result code define a broad category
+and are called the "primary result code". More significant bits provide
+more detailed information about the error and are called the
+"extended result code"
+
+</p><p>
+Note that the primary result code is always a part of the extended
+result code. Given a full 32-bit extended result code, the application
+can always find the corresponding primary result code merely by extracting
+the least significant 8 bits of the extended result code.
+
+</p><p>
+All extended result codes are also error codes. Hence the terms
+"extended result code" and "extended error code" are interchangeable.
+
+</p><p>
+For historic compatibility, the C-language interfaces return
+primary result codes by default.
+The extended result code for the most recent error can be
+retrieved using the <a href="c3ref/errcode.html">sqlite3_extended_errcode()</a> interface.
+The <a href="c3ref/extended_result_codes.html">sqlite3_extended_result_codes()</a> interface can be used to put
+a <a href="c3ref/sqlite3.html">database connection</a> into a mode where it returns the
+extended result codes instead of the primary result codes.
+
+</p><h1 id="definitions"><span>3. </span>Definitions</h1>
+
+<p>
+All result codes are integers.
+Symbolic names for all result codes are created using
+"#define" macros in the sqlite3.h header file.
+There are separate sections in the sqlite3.h header file for
+the <a href="c3ref/c_abort.html">result code definitions</a> and the <a href="c3ref/c_abort_rollback.html">extended result code definitions</a>.
+
+</p><p>
+Primary result code symbolic names are of the form "SQLITE_XXXXXX" where
+XXXXXX is a sequence of uppercase alphabetic characters. Extended
+result code names are of the form "SQLITE_XXXXXX_YYYYYYY" where
+the XXXXXX part is the corresponding primary result code and the
+YYYYYYY is an extension that further classifies the result code.
+
+</p><p>
+The names and numeric values for existing result codes are fixed
+and unchanging. However, new result codes, and especially new extended
+result codes, might appear in future releases of SQLite.
+
+
+</p><h1 id="primary_result_code_list"><span>4. </span>Primary Result Code List</h1>
+<p>The 31 result codes are
+ <a href="c3ref/c_abort.html">defined in sqlite3.h</a> and are listed in
+ alphabetical order below:
+<div class='columns' style='columns: 16em auto;'>
+<ul style='padding-top:0;'>
+<li><a href='rescode.html#abort'>SQLITE_ABORT&nbsp;(4)</a></li>
+<li><a href='rescode.html#auth'>SQLITE_AUTH&nbsp;(23)</a></li>
+<li><a href='rescode.html#busy'>SQLITE_BUSY&nbsp;(5)</a></li>
+<li><a href='rescode.html#cantopen'>SQLITE_CANTOPEN&nbsp;(14)</a></li>
+<li><a href='rescode.html#constraint'>SQLITE_CONSTRAINT&nbsp;(19)</a></li>
+<li><a href='rescode.html#corrupt'>SQLITE_CORRUPT&nbsp;(11)</a></li>
+<li><a href='rescode.html#done'>SQLITE_DONE&nbsp;(101)</a></li>
+<li><a href='rescode.html#empty'>SQLITE_EMPTY&nbsp;(16)</a></li>
+<li><a href='rescode.html#error'>SQLITE_ERROR&nbsp;(1)</a></li>
+<li><a href='rescode.html#format'>SQLITE_FORMAT&nbsp;(24)</a></li>
+<li><a href='rescode.html#full'>SQLITE_FULL&nbsp;(13)</a></li>
+<li><a href='rescode.html#internal'>SQLITE_INTERNAL&nbsp;(2)</a></li>
+<li><a href='rescode.html#interrupt'>SQLITE_INTERRUPT&nbsp;(9)</a></li>
+<li><a href='rescode.html#ioerr'>SQLITE_IOERR&nbsp;(10)</a></li>
+<li><a href='rescode.html#locked'>SQLITE_LOCKED&nbsp;(6)</a></li>
+<li><a href='rescode.html#mismatch'>SQLITE_MISMATCH&nbsp;(20)</a></li>
+<li><a href='rescode.html#misuse'>SQLITE_MISUSE&nbsp;(21)</a></li>
+<li><a href='rescode.html#nolfs'>SQLITE_NOLFS&nbsp;(22)</a></li>
+<li><a href='rescode.html#nomem'>SQLITE_NOMEM&nbsp;(7)</a></li>
+<li><a href='rescode.html#notadb'>SQLITE_NOTADB&nbsp;(26)</a></li>
+<li><a href='rescode.html#notfound'>SQLITE_NOTFOUND&nbsp;(12)</a></li>
+<li><a href='rescode.html#notice'>SQLITE_NOTICE&nbsp;(27)</a></li>
+<li><a href='rescode.html#ok'>SQLITE_OK&nbsp;(0)</a></li>
+<li><a href='rescode.html#perm'>SQLITE_PERM&nbsp;(3)</a></li>
+<li><a href='rescode.html#protocol'>SQLITE_PROTOCOL&nbsp;(15)</a></li>
+<li><a href='rescode.html#range'>SQLITE_RANGE&nbsp;(25)</a></li>
+<li><a href='rescode.html#readonly'>SQLITE_READONLY&nbsp;(8)</a></li>
+<li><a href='rescode.html#row'>SQLITE_ROW&nbsp;(100)</a></li>
+<li><a href='rescode.html#schema'>SQLITE_SCHEMA&nbsp;(17)</a></li>
+<li><a href='rescode.html#toobig'>SQLITE_TOOBIG&nbsp;(18)</a></li>
+<li><a href='rescode.html#warning'>SQLITE_WARNING&nbsp;(28)</a></li>
+</ul>
+</div>
+<a name="extrc"></a>
+
+</p><h1 id="extended_result_code_list"><span>5. </span>Extended Result Code List</h1>
+<p>The 74 extended result codes
+ are <a href="c3ref/c_abort_rollback.html">defined in sqlite3.h</a> and are
+ listed in alphabetical order below:
+<div class='columns' style='columns: 22em auto;'>
+<ul style='padding-top:0;'>
+<li><a href='rescode.html#abort_rollback'>SQLITE_ABORT_ROLLBACK&nbsp;(516)</a></li>
+<li><a href='rescode.html#auth_user'>SQLITE_AUTH_USER&nbsp;(279)</a></li>
+<li><a href='rescode.html#busy_recovery'>SQLITE_BUSY_RECOVERY&nbsp;(261)</a></li>
+<li><a href='rescode.html#busy_snapshot'>SQLITE_BUSY_SNAPSHOT&nbsp;(517)</a></li>
+<li><a href='rescode.html#busy_timeout'>SQLITE_BUSY_TIMEOUT&nbsp;(773)</a></li>
+<li><a href='rescode.html#cantopen_convpath'>SQLITE_CANTOPEN_CONVPATH&nbsp;(1038)</a></li>
+<li><a href='rescode.html#cantopen_dirtywal'>SQLITE_CANTOPEN_DIRTYWAL&nbsp;(1294)</a></li>
+<li><a href='rescode.html#cantopen_fullpath'>SQLITE_CANTOPEN_FULLPATH&nbsp;(782)</a></li>
+<li><a href='rescode.html#cantopen_isdir'>SQLITE_CANTOPEN_ISDIR&nbsp;(526)</a></li>
+<li><a href='rescode.html#cantopen_notempdir'>SQLITE_CANTOPEN_NOTEMPDIR&nbsp;(270)</a></li>
+<li><a href='rescode.html#cantopen_symlink'>SQLITE_CANTOPEN_SYMLINK&nbsp;(1550)</a></li>
+<li><a href='rescode.html#constraint_check'>SQLITE_CONSTRAINT_CHECK&nbsp;(275)</a></li>
+<li><a href='rescode.html#constraint_commithook'>SQLITE_CONSTRAINT_COMMITHOOK&nbsp;(531)</a></li>
+<li><a href='rescode.html#constraint_datatype'>SQLITE_CONSTRAINT_DATATYPE&nbsp;(3091)</a></li>
+<li><a href='rescode.html#constraint_foreignkey'>SQLITE_CONSTRAINT_FOREIGNKEY&nbsp;(787)</a></li>
+<li><a href='rescode.html#constraint_function'>SQLITE_CONSTRAINT_FUNCTION&nbsp;(1043)</a></li>
+<li><a href='rescode.html#constraint_notnull'>SQLITE_CONSTRAINT_NOTNULL&nbsp;(1299)</a></li>
+<li><a href='rescode.html#constraint_pinned'>SQLITE_CONSTRAINT_PINNED&nbsp;(2835)</a></li>
+<li><a href='rescode.html#constraint_primarykey'>SQLITE_CONSTRAINT_PRIMARYKEY&nbsp;(1555)</a></li>
+<li><a href='rescode.html#constraint_rowid'>SQLITE_CONSTRAINT_ROWID&nbsp;(2579)</a></li>
+<li><a href='rescode.html#constraint_trigger'>SQLITE_CONSTRAINT_TRIGGER&nbsp;(1811)</a></li>
+<li><a href='rescode.html#constraint_unique'>SQLITE_CONSTRAINT_UNIQUE&nbsp;(2067)</a></li>
+<li><a href='rescode.html#constraint_vtab'>SQLITE_CONSTRAINT_VTAB&nbsp;(2323)</a></li>
+<li><a href='rescode.html#corrupt_index'>SQLITE_CORRUPT_INDEX&nbsp;(779)</a></li>
+<li><a href='rescode.html#corrupt_sequence'>SQLITE_CORRUPT_SEQUENCE&nbsp;(523)</a></li>
+<li><a href='rescode.html#corrupt_vtab'>SQLITE_CORRUPT_VTAB&nbsp;(267)</a></li>
+<li><a href='rescode.html#error_missing_collseq'>SQLITE_ERROR_MISSING_COLLSEQ&nbsp;(257)</a></li>
+<li><a href='rescode.html#error_retry'>SQLITE_ERROR_RETRY&nbsp;(513)</a></li>
+<li><a href='rescode.html#error_snapshot'>SQLITE_ERROR_SNAPSHOT&nbsp;(769)</a></li>
+<li><a href='rescode.html#ioerr_access'>SQLITE_IOERR_ACCESS&nbsp;(3338)</a></li>
+<li><a href='rescode.html#ioerr_auth'>SQLITE_IOERR_AUTH&nbsp;(7178)</a></li>
+<li><a href='rescode.html#ioerr_begin_atomic'>SQLITE_IOERR_BEGIN_ATOMIC&nbsp;(7434)</a></li>
+<li><a href='rescode.html#ioerr_blocked'>SQLITE_IOERR_BLOCKED&nbsp;(2826)</a></li>
+<li><a href='rescode.html#ioerr_checkreservedlock'>SQLITE_IOERR_CHECKRESERVEDLOCK&nbsp;(3594)</a></li>
+<li><a href='rescode.html#ioerr_close'>SQLITE_IOERR_CLOSE&nbsp;(4106)</a></li>
+<li><a href='rescode.html#ioerr_commit_atomic'>SQLITE_IOERR_COMMIT_ATOMIC&nbsp;(7690)</a></li>
+<li><a href='rescode.html#ioerr_convpath'>SQLITE_IOERR_CONVPATH&nbsp;(6666)</a></li>
+<li><a href='rescode.html#ioerr_corruptfs'>SQLITE_IOERR_CORRUPTFS&nbsp;(8458)</a></li>
+<li><a href='rescode.html#ioerr_data'>SQLITE_IOERR_DATA&nbsp;(8202)</a></li>
+<li><a href='rescode.html#ioerr_delete'>SQLITE_IOERR_DELETE&nbsp;(2570)</a></li>
+<li><a href='rescode.html#ioerr_delete_noent'>SQLITE_IOERR_DELETE_NOENT&nbsp;(5898)</a></li>
+<li><a href='rescode.html#ioerr_dir_close'>SQLITE_IOERR_DIR_CLOSE&nbsp;(4362)</a></li>
+<li><a href='rescode.html#ioerr_dir_fsync'>SQLITE_IOERR_DIR_FSYNC&nbsp;(1290)</a></li>
+<li><a href='rescode.html#ioerr_fstat'>SQLITE_IOERR_FSTAT&nbsp;(1802)</a></li>
+<li><a href='rescode.html#ioerr_fsync'>SQLITE_IOERR_FSYNC&nbsp;(1034)</a></li>
+<li><a href='rescode.html#ioerr_gettemppath'>SQLITE_IOERR_GETTEMPPATH&nbsp;(6410)</a></li>
+<li><a href='rescode.html#ioerr_lock'>SQLITE_IOERR_LOCK&nbsp;(3850)</a></li>
+<li><a href='rescode.html#ioerr_mmap'>SQLITE_IOERR_MMAP&nbsp;(6154)</a></li>
+<li><a href='rescode.html#ioerr_nomem'>SQLITE_IOERR_NOMEM&nbsp;(3082)</a></li>
+<li><a href='rescode.html#ioerr_rdlock'>SQLITE_IOERR_RDLOCK&nbsp;(2314)</a></li>
+<li><a href='rescode.html#ioerr_read'>SQLITE_IOERR_READ&nbsp;(266)</a></li>
+<li><a href='rescode.html#ioerr_rollback_atomic'>SQLITE_IOERR_ROLLBACK_ATOMIC&nbsp;(7946)</a></li>
+<li><a href='rescode.html#ioerr_seek'>SQLITE_IOERR_SEEK&nbsp;(5642)</a></li>
+<li><a href='rescode.html#ioerr_shmlock'>SQLITE_IOERR_SHMLOCK&nbsp;(5130)</a></li>
+<li><a href='rescode.html#ioerr_shmmap'>SQLITE_IOERR_SHMMAP&nbsp;(5386)</a></li>
+<li><a href='rescode.html#ioerr_shmopen'>SQLITE_IOERR_SHMOPEN&nbsp;(4618)</a></li>
+<li><a href='rescode.html#ioerr_shmsize'>SQLITE_IOERR_SHMSIZE&nbsp;(4874)</a></li>
+<li><a href='rescode.html#ioerr_short_read'>SQLITE_IOERR_SHORT_READ&nbsp;(522)</a></li>
+<li><a href='rescode.html#ioerr_truncate'>SQLITE_IOERR_TRUNCATE&nbsp;(1546)</a></li>
+<li><a href='rescode.html#ioerr_unlock'>SQLITE_IOERR_UNLOCK&nbsp;(2058)</a></li>
+<li><a href='rescode.html#ioerr_vnode'>SQLITE_IOERR_VNODE&nbsp;(6922)</a></li>
+<li><a href='rescode.html#ioerr_write'>SQLITE_IOERR_WRITE&nbsp;(778)</a></li>
+<li><a href='rescode.html#locked_sharedcache'>SQLITE_LOCKED_SHAREDCACHE&nbsp;(262)</a></li>
+<li><a href='rescode.html#locked_vtab'>SQLITE_LOCKED_VTAB&nbsp;(518)</a></li>
+<li><a href='rescode.html#notice_recover_rollback'>SQLITE_NOTICE_RECOVER_ROLLBACK&nbsp;(539)</a></li>
+<li><a href='rescode.html#notice_recover_wal'>SQLITE_NOTICE_RECOVER_WAL&nbsp;(283)</a></li>
+<li><a href='rescode.html#ok_load_permanently'>SQLITE_OK_LOAD_PERMANENTLY&nbsp;(256)</a></li>
+<li><a href='rescode.html#readonly_cantinit'>SQLITE_READONLY_CANTINIT&nbsp;(1288)</a></li>
+<li><a href='rescode.html#readonly_cantlock'>SQLITE_READONLY_CANTLOCK&nbsp;(520)</a></li>
+<li><a href='rescode.html#readonly_dbmoved'>SQLITE_READONLY_DBMOVED&nbsp;(1032)</a></li>
+<li><a href='rescode.html#readonly_directory'>SQLITE_READONLY_DIRECTORY&nbsp;(1544)</a></li>
+<li><a href='rescode.html#readonly_recovery'>SQLITE_READONLY_RECOVERY&nbsp;(264)</a></li>
+<li><a href='rescode.html#readonly_rollback'>SQLITE_READONLY_ROLLBACK&nbsp;(776)</a></li>
+<li><a href='rescode.html#warning_autoindex'>SQLITE_WARNING_AUTOINDEX&nbsp;(284)</a></li>
+</ul>
+</div>
+
+</p><h1 id="result_code_meanings"><span>6. </span>Result Code Meanings</h1>
+<p>
+The meanings for all 105
+result code values are shown below,
+in numeric order.
+
+<!--------------------------------------------------------------->
+<a name="ok"></a>
+<h3>(0) SQLITE_OK</h3>
+<p>
+ The SQLITE_OK result code means that the operation was successful and
+ that there were no errors. Most other result codes indicate an error.
+
+
+<!--------------------------------------------------------------->
+<a name="error"></a>
+<h3>(1) SQLITE_ERROR</h3>
+<p>
+ The SQLITE_ERROR result code is a generic error code that is used when
+ no other more specific error code is available.
+
+
+<!--------------------------------------------------------------->
+<a name="internal"></a>
+<h3>(2) SQLITE_INTERNAL</h3>
+<p>
+ The SQLITE_INTERNAL result code indicates an internal malfunction.
+ In a working version of SQLite, an application should never see this
+ result code. If application does encounter this result code, it shows
+ that there is a bug in the database engine.
+ <p>
+ SQLite does not currently generate this result code.
+ However, <a href="appfunc.html">application-defined SQL functions</a> or
+ <a href="vtab.html">virtual tables</a>, or <a href="vfs.html">VFSes</a>, or other extensions might cause this
+ result code to be returned.
+
+
+<!--------------------------------------------------------------->
+<a name="perm"></a>
+<h3>(3) SQLITE_PERM</h3>
+<p>
+ The SQLITE_PERM result code indicates that the requested access mode
+ for a newly created database could not be provided.
+
+
+<!--------------------------------------------------------------->
+<a name="abort"></a>
+<h3>(4) SQLITE_ABORT</h3>
+<p>
+ The SQLITE_ABORT result code indicates that an operation was aborted
+ prior to completion, usually be application request.
+ See also: <a href="rescode.html#interrupt">SQLITE_INTERRUPT</a>.
+ <p>
+ If the callback function to <a href="c3ref/exec.html">sqlite3_exec()</a> returns non-zero, then
+ sqlite3_exec() will return SQLITE_ABORT.
+ <p>
+ If a <a href="lang_transaction.html">ROLLBACK</a> operation occurs on the same <a href="c3ref/sqlite3.html">database connection</a> as
+ a pending read or write, then the pending read or write may fail with
+ an SQLITE_ABORT or <a href="rescode.html#abort_rollback">SQLITE_ABORT_ROLLBACK</a> error.
+ <p>
+ In addition to being a result code,
+ the SQLITE_ABORT value is also used as a <a href="c3ref/c_fail.html">conflict resolution mode</a>
+ returned from the <a href="c3ref/vtab_on_conflict.html">sqlite3_vtab_on_conflict()</a> interface.
+
+
+<!--------------------------------------------------------------->
+<a name="busy"></a>
+<h3>(5) SQLITE_BUSY</h3>
+<p>
+ The SQLITE_BUSY result code indicates that the database file could not
+ be written (or in some cases read) because of concurrent activity by
+ some other <a href="c3ref/sqlite3.html">database connection</a>, usually a database connection in a
+ separate process.
+ <p>
+ For example, if process A is in the middle of a large write transaction
+ and at the same time process B attempts to start a new write transaction,
+ process B will get back an SQLITE_BUSY result because SQLite only supports
+ one writer at a time. Process B will need to wait for process A to finish
+ its transaction before starting a new transaction. The
+ <a href="c3ref/busy_timeout.html">sqlite3_busy_timeout()</a> and <a href="c3ref/busy_handler.html">sqlite3_busy_handler()</a> interfaces and
+ the <a href="pragma.html#pragma_busy_timeout">busy_timeout pragma</a> are available to process B to help it deal
+ with SQLITE_BUSY errors.
+ <p>
+ An SQLITE_BUSY error can occur at any point in a transaction: when the
+ transaction is first started, during any write or update operations, or
+ when the transaction commits.
+ To avoid encountering SQLITE_BUSY errors in the middle of a transaction,
+ the application can use <a href="lang_transaction.html#immediate">BEGIN IMMEDIATE</a> instead of just <a href="lang_transaction.html">BEGIN</a> to
+ start a transaction. The <a href="lang_transaction.html#immediate">BEGIN IMMEDIATE</a> command might itself return
+ SQLITE_BUSY, but if it succeeds, then SQLite guarantees that no
+ subsequent operations on the same database through the next <a href="lang_transaction.html">COMMIT</a>
+ will return SQLITE_BUSY.
+ <p>
+ See also: <a href="rescode.html#busy_recovery">SQLITE_BUSY_RECOVERY</a> and <a href="rescode.html#busy_snapshot">SQLITE_BUSY_SNAPSHOT</a>.
+ <p>
+ The SQLITE_BUSY result code differs from <a href="rescode.html#locked">SQLITE_LOCKED</a> in that
+ SQLITE_BUSY indicates a conflict with a
+ separate <a href="c3ref/sqlite3.html">database connection</a>, probably in a separate process,
+ whereas <a href="rescode.html#locked">SQLITE_LOCKED</a>
+ indicates a conflict within the same <a href="c3ref/sqlite3.html">database connection</a> (or sometimes
+ a database connection with a <a href="sharedcache.html">shared cache</a>).
+
+
+<!--------------------------------------------------------------->
+<a name="locked"></a>
+<h3>(6) SQLITE_LOCKED</h3>
+<p>
+ The SQLITE_LOCKED result code indicates that a write operation could not
+ continue because of a conflict within the same <a href="c3ref/sqlite3.html">database connection</a> or
+ a conflict with a different database connection that uses a <a href="sharedcache.html">shared cache</a>.
+ <p>
+ For example, a <a href="lang_droptable.html">DROP TABLE</a> statement cannot be run while another thread
+ is reading from that table on the same <a href="c3ref/sqlite3.html">database connection</a> because
+ dropping the table would delete the table out from under the concurrent
+ reader.
+ <p>
+ The SQLITE_LOCKED result code differs from <a href="rescode.html#busy">SQLITE_BUSY</a> in that
+ SQLITE_LOCKED indicates a conflict on the same <a href="c3ref/sqlite3.html">database connection</a>
+ (or on a connection with a <a href="sharedcache.html">shared cache</a>) whereas <a href="rescode.html#busy">SQLITE_BUSY</a> indicates
+ a conflict with a different database connection, probably in a different
+ process.
+
+
+<!--------------------------------------------------------------->
+<a name="nomem"></a>
+<h3>(7) SQLITE_NOMEM</h3>
+<p>
+ The SQLITE_NOMEM result code indicates that SQLite was unable to allocate
+ all the memory it needed to complete the operation. In other words, an
+ internal call to <a href="c3ref/free.html">sqlite3_malloc()</a> or <a href="c3ref/free.html">sqlite3_realloc()</a> has failed in
+ a case where the memory being allocated was required in order to continue
+ the operation.
+
+
+<!--------------------------------------------------------------->
+<a name="readonly"></a>
+<h3>(8) SQLITE_READONLY</h3>
+<p>
+ The SQLITE_READONLY result code is returned when an attempt is made to
+ alter some data for which the current database connection does not have
+ write permission.
+
+
+<!--------------------------------------------------------------->
+<a name="interrupt"></a>
+<h3>(9) SQLITE_INTERRUPT</h3>
+<p>
+ The SQLITE_INTERRUPT result code indicates that an operation was
+ interrupted by the <a href="c3ref/interrupt.html">sqlite3_interrupt()</a> interface.
+ See also: <a href="rescode.html#abort">SQLITE_ABORT</a>
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr"></a>
+<h3>(10) SQLITE_IOERR</h3>
+<p>
+ The SQLITE_IOERR result code says that the operation could not finish
+ because the operating system reported an I/O error.
+ <p>
+ A full disk drive will normally give an <a href="rescode.html#full">SQLITE_FULL</a> error rather than
+ an SQLITE_IOERR error.
+ <p>
+ There are many different extended result codes for I/O errors that
+ identify the specific I/O operation that failed.
+
+
+<!--------------------------------------------------------------->
+<a name="corrupt"></a>
+<h3>(11) SQLITE_CORRUPT</h3>
+<p>
+ The SQLITE_CORRUPT result code indicates that the database file has
+ been corrupted. See the <a href="lockingv3.html#how_to_corrupt">How To Corrupt Your Database Files</a> for
+ further discussion on how corruption can occur.
+
+
+<!--------------------------------------------------------------->
+<a name="notfound"></a>
+<h3>(12) SQLITE_NOTFOUND</h3>
+<p>
+ The SQLITE_NOTFOUND result code is exposed in three ways:
+ <ol>
+ <li><p>
+ SQLITE_NOTFOUND can be returned by the <a href="c3ref/file_control.html">sqlite3_file_control()</a> interface
+ to indicate that the <a href="c3ref/c_fcntl_begin_atomic_write.html">file control opcode</a> passed as the third argument
+ was not recognized by the underlying <a href="vfs.html">VFS</a>.
+ <li><p>
+ SQLITE_NOTFOUND can also be returned by the xSetSystemCall() method of
+ an <a href="c3ref/vfs.html">sqlite3_vfs</a> object.
+ <li><p>
+ SQLITE_NOTFOUND an be returned by <a href="c3ref/vtab_rhs_value.html">sqlite3_vtab_rhs_value()</a> to indicate
+ that the right-hand operand of a constraint is not available to the
+ <a href="vtab.html#xbestindex">xBestIndex method</a> that made the call.
+ </ol>
+ <p>
+ The SQLITE_NOTFOUND result code is also used
+ internally by the SQLite implementation, but those internal uses are
+ not exposed to the application.
+
+
+<!--------------------------------------------------------------->
+<a name="full"></a>
+<h3>(13) SQLITE_FULL</h3>
+<p>
+ The SQLITE_FULL result code indicates that a write could not complete
+ because the disk is full. Note that this error can occur when trying
+ to write information into the main database file, or it can also
+ occur when writing into <a href="tempfiles.html">temporary disk files</a>.
+ <p>
+ Sometimes applications encounter this error even though there is an
+ abundance of primary disk space because the error occurs when writing
+ into <a href="tempfiles.html">temporary disk files</a> on a system where temporary files are stored
+ on a separate partition with much less space that the primary disk.
+
+
+<!--------------------------------------------------------------->
+<a name="cantopen"></a>
+<h3>(14) SQLITE_CANTOPEN</h3>
+<p>
+ The SQLITE_CANTOPEN result code indicates that SQLite was unable to
+ open a file. The file in question might be a primary database file
+ or one of several <a href="tempfiles.html">temporary disk files</a>.
+
+
+<!--------------------------------------------------------------->
+<a name="protocol"></a>
+<h3>(15) SQLITE_PROTOCOL</h3>
+<p>
+ The SQLITE_PROTOCOL result code indicates a problem with the file locking
+ protocol used by SQLite. The SQLITE_PROTOCOL error is currently only
+ returned when using <a href="wal.html">WAL mode</a> and attempting to start a new transaction.
+ There is a race condition that can occur when two separate
+ <a href="c3ref/sqlite3.html">database connections</a> both try to start a transaction at the same time
+ in <a href="wal.html">WAL mode</a>. The loser of the race backs off and tries again, after
+ a brief delay. If the same connection loses the locking race dozens
+ of times over a span of multiple seconds, it will eventually give up and
+ return SQLITE_PROTOCOL. The SQLITE_PROTOCOL error should appear in practice
+ very, very rarely, and only when there are many separate processes all
+ competing intensely to write to the same database.
+
+
+<!--------------------------------------------------------------->
+<a name="empty"></a>
+<h3>(16) SQLITE_EMPTY</h3>
+<p>
+ The SQLITE_EMPTY result code is not currently used.
+
+
+<!--------------------------------------------------------------->
+<a name="schema"></a>
+<h3>(17) SQLITE_SCHEMA</h3>
+<p>
+ The SQLITE_SCHEMA result code indicates that the database schema
+ has changed. This result code can be returned from <a href="c3ref/step.html">sqlite3_step()</a> for
+ a <a href="c3ref/stmt.html">prepared statement</a> that was generated using <a href="c3ref/prepare.html">sqlite3_prepare()</a> or
+ <a href="c3ref/prepare.html">sqlite3_prepare16()</a>. If the database schema was changed by some other
+ process in between the time that the statement was prepared and the time
+ the statement was run, this error can result.
+ <p>
+ If a <a href="c3ref/stmt.html">prepared statement</a> is generated from <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> then
+ the statement is automatically re-prepared if the schema changes, up to
+ <a href="compile.html#max_schema_retry">SQLITE_MAX_SCHEMA_RETRY</a> times (default: 50). The <a href="c3ref/step.html">sqlite3_step()</a>
+ interface will only return SQLITE_SCHEMA back to the application if
+ the failure persists after these many retries.
+
+
+<!--------------------------------------------------------------->
+<a name="toobig"></a>
+<h3>(18) SQLITE_TOOBIG</h3>
+<p>
+ The SQLITE_TOOBIG error code indicates that a string or BLOB was
+ too large. The default maximum length of a string or BLOB in SQLite is
+ 1,000,000,000 bytes. This maximum length can be changed at compile-time
+ using the <a href="limits.html#max_length">SQLITE_MAX_LENGTH</a> compile-time option, or at run-time using
+ the <a href="c3ref/limit.html">sqlite3_limit</a>(db,<a href="c3ref/c_limit_attached.html#sqlitelimitlength">SQLITE_LIMIT_LENGTH</a>,...) interface. The
+ SQLITE_TOOBIG error results when SQLite encounters a string or BLOB
+ that exceeds the compile-time or run-time limit.
+ <p>
+ The SQLITE_TOOBIG error code can also result when an oversized SQL
+ statement is passed into one of the <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> interfaces.
+ The maximum length of an SQL statement defaults to a much smaller
+ value of 1,000,000,000 bytes. The maximum SQL statement length can be
+ set at compile-time using <a href="limits.html#max_sql_length">SQLITE_MAX_SQL_LENGTH</a> or at run-time
+ using <a href="c3ref/limit.html">sqlite3_limit</a>(db,<a href="c3ref/c_limit_attached.html#sqlitelimitsqllength">SQLITE_LIMIT_SQL_LENGTH</a>,...).
+
+
+<!--------------------------------------------------------------->
+<a name="constraint"></a>
+<h3>(19) SQLITE_CONSTRAINT</h3>
+<p>
+ The SQLITE_CONSTRAINT error code means that an SQL constraint violation
+ occurred while trying to process an SQL statement. Additional information
+ about the failed constraint can be found by consulting the
+ accompanying error message (returned via <a href="c3ref/errcode.html">sqlite3_errmsg()</a> or
+ <a href="c3ref/errcode.html">sqlite3_errmsg16()</a>) or by looking at the <a href="rescode.html#extrc">extended error code</a>.
+ <p>
+ The SQLITE_CONSTRAINT code can also be used as the return value from
+ the <a href="vtab.html#xbestindex">xBestIndex()</a> method of a <a href="vtab.html">virtual table</a> implementation. When
+ xBestIndex() returns SQLITE_CONSTRAINT, that indicates that the particular
+ combination of inputs submitted to xBestIndex() cannot result in a
+ usable query plan and should not be given further consideration.
+
+
+<!--------------------------------------------------------------->
+<a name="mismatch"></a>
+<h3>(20) SQLITE_MISMATCH</h3>
+<p>
+ The SQLITE_MISMATCH error code indicates a datatype mismatch.
+ <p>
+ SQLite is normally very forgiving about mismatches between the type of
+ a value and the declared type of the container in which that value is
+ to be stored. For example, SQLite allows the application to store
+ a large BLOB in a column with a declared type of BOOLEAN. But in a few
+ cases, SQLite is strict about types. The SQLITE_MISMATCH error is
+ returned in those few cases when the types do not match.
+ <p>
+ The <a href="lang_createtable.html#rowid">rowid</a> of a table must be an integer. Attempt to set the <a href="lang_createtable.html#rowid">rowid</a>
+ to anything other than an integer (or a NULL which will be automatically
+ converted into the next available integer rowid) results in an
+ SQLITE_MISMATCH error.
+
+
+<!--------------------------------------------------------------->
+<a name="misuse"></a>
+<h3>(21) SQLITE_MISUSE</h3>
+<p>
+ The SQLITE_MISUSE return code might be returned if the application uses
+ any SQLite interface in a way that is undefined or unsupported. For
+ example, using a <a href="c3ref/stmt.html">prepared statement</a> after that prepared statement has
+ been <a href="c3ref/finalize.html">finalized</a> might result in an SQLITE_MISUSE error.
+ <p>
+ SQLite tries to detect misuse and report the misuse using this result code.
+ However, there is no guarantee that the detection of misuse will be
+ successful. Misuse detection is probabilistic. Applications should
+ never depend on an SQLITE_MISUSE return value.
+ <p>
+ If SQLite ever returns SQLITE_MISUSE from any interface, that means that
+ the application is incorrectly coded and needs to be fixed. Do not ship
+ an application that sometimes returns SQLITE_MISUSE from a standard
+ SQLite interface because that application contains potentially serious bugs.
+
+
+<!--------------------------------------------------------------->
+<a name="nolfs"></a>
+<h3>(22) SQLITE_NOLFS</h3>
+<p>
+ The SQLITE_NOLFS error can be returned on systems that do not support
+ large files when the database grows to be larger than what the filesystem
+ can handle. "NOLFS" stands for "NO Large File Support".
+
+
+<!--------------------------------------------------------------->
+<a name="auth"></a>
+<h3>(23) SQLITE_AUTH</h3>
+<p>
+ The SQLITE_AUTH error is returned when the
+ <a href="c3ref/set_authorizer.html">authorizer callback</a> indicates that an
+ SQL statement being prepared is not authorized.
+
+
+<!--------------------------------------------------------------->
+<a name="format"></a>
+<h3>(24) SQLITE_FORMAT</h3>
+<p>
+ The SQLITE_FORMAT error code is not currently used by SQLite.
+
+
+<!--------------------------------------------------------------->
+<a name="range"></a>
+<h3>(25) SQLITE_RANGE</h3>
+<p>
+ The SQLITE_RANGE error indices that the parameter number argument
+ to one of the <a href="c3ref/bind_blob.html">sqlite3_bind</a> routines or the
+ column number in one of the <a href="c3ref/column_blob.html">sqlite3_column</a>
+ routines is out of range.
+
+
+<!--------------------------------------------------------------->
+<a name="notadb"></a>
+<h3>(26) SQLITE_NOTADB</h3>
+<p>
+ When attempting to open a file, the SQLITE_NOTADB error indicates that
+ the file being opened does not appear to be an SQLite database file.
+
+
+<!--------------------------------------------------------------->
+<a name="notice"></a>
+<h3>(27) SQLITE_NOTICE</h3>
+<p>
+ The SQLITE_NOTICE result code is not returned by any C/C++ interface.
+ However, SQLITE_NOTICE (or rather one of its <a href="rescode.html#extrc">extended error codes</a>)
+ is sometimes used as the first argument in an <a href="c3ref/log.html">sqlite3_log()</a> callback
+ to indicate that an unusual operation is taking place.
+
+
+<!--------------------------------------------------------------->
+<a name="warning"></a>
+<h3>(28) SQLITE_WARNING</h3>
+<p>
+ The SQLITE_WARNING result code is not returned by any C/C++ interface.
+ However, SQLITE_WARNING (or rather one of its <a href="rescode.html#extrc">extended error codes</a>)
+ is sometimes used as the first argument in an <a href="c3ref/log.html">sqlite3_log()</a> callback
+ to indicate that an unusual and possibly ill-advised operation is
+ taking place.
+
+
+<!--------------------------------------------------------------->
+<a name="row"></a>
+<h3>(100) SQLITE_ROW</h3>
+<p>
+ The SQLITE_ROW result code returned by
+ <a href="c3ref/step.html">sqlite3_step()</a> indicates that another row of output is available.
+
+
+<!--------------------------------------------------------------->
+<a name="done"></a>
+<h3>(101) SQLITE_DONE</h3>
+<p>
+ The SQLITE_DONE result code indicates that an operation has completed.
+ The SQLITE_DONE result code is most commonly seen as a return value
+ from <a href="c3ref/step.html">sqlite3_step()</a> indicating that the SQL statement has run to
+ completion. But SQLITE_DONE can also be returned by other multi-step
+ interfaces such as <a href="c3ref/backup_finish.html#sqlite3backupstep">sqlite3_backup_step()</a>.
+
+
+<!--------------------------------------------------------------->
+<a name="ok_load_permanently"></a>
+<h3>(256) SQLITE_OK_LOAD_PERMANENTLY</h3>
+<p>
+ The <a href="c3ref/load_extension.html">sqlite3_load_extension()</a> interface loads an
+ <a href="loadext.html">extension</a> into a single
+ database connection. The default behavior is for that extension to be
+ automatically unloaded when the database connection closes. However,
+ if the extension entry point returns SQLITE_OK_LOAD_PERMANENTLY instead
+ of SQLITE_OK, then the extension remains loaded into the process address
+ space after the database connection closes. In other words, the
+ xDlClose methods of the <a href="c3ref/vfs.html">sqlite3_vfs</a> object is not called for the
+ extension when the database connection closes.
+ <p>
+ The SQLITE_OK_LOAD_PERMANENTLY return code is useful to
+ <a href="loadext.html">loadable extensions</a> that register new <a href="vfs.html">VFSes</a>, for example.
+
+
+<!--------------------------------------------------------------->
+<a name="error_missing_collseq"></a>
+<h3>(257) SQLITE_ERROR_MISSING_COLLSEQ</h3>
+<p>
+ 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
+ <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> routine will convert the error into
+ <a href="rescode.html#error_retry">SQLITE_ERROR_RETRY</a> and try again to prepare the SQL statement
+ using a different query plan that does not require the use of
+ the unknown collating sequence.
+
+
+<!--------------------------------------------------------------->
+<a name="busy_recovery"></a>
+<h3>(261) SQLITE_BUSY_RECOVERY</h3>
+<p>
+ The SQLITE_BUSY_RECOVERY error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#busy">SQLITE_BUSY</a> that indicates that an operation could not continue
+ because another process is busy recovering a <a href="wal.html">WAL mode</a> database file
+ following a crash. The SQLITE_BUSY_RECOVERY error code only occurs
+ on <a href="wal.html">WAL mode</a> databases.
+
+
+<!--------------------------------------------------------------->
+<a name="locked_sharedcache"></a>
+<h3>(262) SQLITE_LOCKED_SHAREDCACHE</h3>
+<p>
+ The SQLITE_LOCKED_SHAREDCACHE result code indicates that access to
+ an SQLite data record is blocked by another database connection that
+ is using the same record in <a href="sharedcache.html">shared cache mode</a>. When two or more
+ database connections share the same cache and one of the connections is
+ in the middle of modifying a record in that cache, then other connections
+ are blocked from accessing that data while the modifications are on-going
+ in order to prevent the readers from seeing a corrupt or partially
+ completed change.
+
+
+<!--------------------------------------------------------------->
+<a name="readonly_recovery"></a>
+<h3>(264) SQLITE_READONLY_RECOVERY</h3>
+<p>
+ The SQLITE_READONLY_RECOVERY error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#readonly">SQLITE_READONLY</a>. The SQLITE_READONLY_RECOVERY error code indicates
+ that a <a href="wal.html">WAL mode</a> database cannot be opened because the database file
+ needs to be recovered and recovery requires write access but only
+ read access is available.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_read"></a>
+<h3>(266) SQLITE_IOERR_READ</h3>
+<p>
+ The SQLITE_IOERR_READ error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
+ while trying to read from a file on disk. This error might result
+ from a hardware malfunction or because a filesystem came unmounted
+ while the file was open.
+
+
+<!--------------------------------------------------------------->
+<a name="corrupt_vtab"></a>
+<h3>(267) SQLITE_CORRUPT_VTAB</h3>
+<p>
+ The SQLITE_CORRUPT_VTAB error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#corrupt">SQLITE_CORRUPT</a> used by <a href="vtab.html">virtual tables</a>. A <a href="vtab.html">virtual table</a> might
+ return SQLITE_CORRUPT_VTAB to indicate that content in the virtual table
+ is corrupt.
+
+
+<!--------------------------------------------------------------->
+<a name="cantopen_notempdir"></a>
+<h3>(270) SQLITE_CANTOPEN_NOTEMPDIR</h3>
+<p>
+ The SQLITE_CANTOPEN_NOTEMPDIR error code is no longer used.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_check"></a>
+<h3>(275) SQLITE_CONSTRAINT_CHECK</h3>
+<p>
+ The SQLITE_CONSTRAINT_CHECK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#ckconst">CHECK constraint</a> failed.
+
+
+<!--------------------------------------------------------------->
+<a name="auth_user"></a>
+<h3>(279) SQLITE_AUTH_USER</h3>
+<p>
+ The SQLITE_AUTH_USER error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#auth">SQLITE_AUTH</a> indicating that an operation was attempted on a
+ database for which the logged in user lacks sufficient authorization.
+
+
+<!--------------------------------------------------------------->
+<a name="notice_recover_wal"></a>
+<h3>(283) SQLITE_NOTICE_RECOVER_WAL</h3>
+<p>
+ The SQLITE_NOTICE_RECOVER_WAL result code is
+ passed to the callback of
+ <a href="c3ref/log.html">sqlite3_log()</a> when a <a href="wal.html">WAL mode</a> database file is recovered.
+
+
+<!--------------------------------------------------------------->
+<a name="warning_autoindex"></a>
+<h3>(284) SQLITE_WARNING_AUTOINDEX</h3>
+<p>
+ The SQLITE_WARNING_AUTOINDEX result code is
+ passed to the callback of
+ <a href="c3ref/log.html">sqlite3_log()</a> whenever <a href="optoverview.html#autoindex">automatic indexing</a> is used.
+ This can serve as a warning to application designers that the
+ database might benefit from additional indexes.
+
+
+<!--------------------------------------------------------------->
+<a name="error_retry"></a>
+<h3>(513) SQLITE_ERROR_RETRY</h3>
+<p>
+ The SQLITE_ERROR_RETRY is used internally to provoke <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a>
+ (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.
+
+
+<!--------------------------------------------------------------->
+<a name="abort_rollback"></a>
+<h3>(516) SQLITE_ABORT_ROLLBACK</h3>
+<p>
+ The SQLITE_ABORT_ROLLBACK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#abort">SQLITE_ABORT</a> indicating that an SQL statement aborted because
+ the transaction that was active when the SQL statement first started
+ was rolled back. Pending write operations always fail with this error
+ when a rollback occurs. A <a href="lang_transaction.html">ROLLBACK</a> will cause a pending read operation
+ to fail only if the schema was changed within the transaction being rolled
+ back.
+
+
+<!--------------------------------------------------------------->
+<a name="busy_snapshot"></a>
+<h3>(517) SQLITE_BUSY_SNAPSHOT</h3>
+<p>
+ The SQLITE_BUSY_SNAPSHOT error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#busy">SQLITE_BUSY</a> that occurs on <a href="wal.html">WAL mode</a> databases when a database
+ connection tries to promote a read transaction into a write transaction
+ but finds that another <a href="c3ref/sqlite3.html">database connection</a> has already written to the
+ database and thus invalidated prior reads.
+ <p>
+ The following scenario illustrates how an SQLITE_BUSY_SNAPSHOT error
+ might arise:
+ <ol>
+ <li> Process A starts a read transaction on the database and does one
+ or more SELECT statement. Process A keeps the transaction open.
+ <li> Process B updates the database, changing values previous read by
+ process A.
+ <li> Process A now tries to write to the database. But process A's view
+ of the database content is now obsolete because process B has
+ modified the database file after process A read from it. Hence
+ process A gets an SQLITE_BUSY_SNAPSHOT error.
+ </ol>
+
+
+<!--------------------------------------------------------------->
+<a name="locked_vtab"></a>
+<h3>(518) SQLITE_LOCKED_VTAB</h3>
+<p>
+ The SQLITE_LOCKED_VTAB result code is not used by the SQLite core, but
+ it is available for use by extensions. Virtual table implementations
+ can return this result code to indicate that they cannot complete the
+ current operation because of locks held by other threads or processes.
+ <p>
+ The <a href="rtree.html">R-Tree extension</a> returns this result code when an attempt is made
+ to update the R-Tree while another prepared statement is actively reading
+ the R-Tree. The update cannot proceed because any change to an R-Tree
+ might involve reshuffling and rebalancing of nodes, which would disrupt
+ read cursors, causing some rows to be repeated and other rows to be
+ omitted.
+
+
+<!--------------------------------------------------------------->
+<a name="readonly_cantlock"></a>
+<h3>(520) SQLITE_READONLY_CANTLOCK</h3>
+<p>
+ The SQLITE_READONLY_CANTLOCK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#readonly">SQLITE_READONLY</a>. The SQLITE_READONLY_CANTLOCK error code indicates
+ that SQLite is unable to obtain a read lock on a <a href="wal.html">WAL mode</a> database
+ because the shared-memory file associated with that database is read-only.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_short_read"></a>
+<h3>(522) SQLITE_IOERR_SHORT_READ</h3>
+<p>
+ The SQLITE_IOERR_SHORT_READ error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating that a read attempt in the <a href="vfs.html">VFS</a> layer
+ was unable to obtain as many bytes as was requested. This might be
+ due to a truncated file.
+
+
+<!--------------------------------------------------------------->
+<a name="corrupt_sequence"></a>
+<h3>(523) SQLITE_CORRUPT_SEQUENCE</h3>
+<p>
+ The SQLITE_CORRUPT_SEQUENCE result code means that the schema of
+ the sqlite_sequence table is corrupt. The sqlite_sequence table
+ is used to help implement the <a href="autoinc.html">AUTOINCREMENT</a> feature. The
+ sqlite_sequence table should have the following format:
+ <blockquote><pre>
+ CREATE TABLE sqlite_sequence(name,seq);
+ </pre></blockquote>
+ <p>If SQLite discovers that the sqlite_sequence table has any other
+ format, it returns the SQLITE_CORRUPT_SEQUENCE error.
+
+
+<!--------------------------------------------------------------->
+<a name="cantopen_isdir"></a>
+<h3>(526) SQLITE_CANTOPEN_ISDIR</h3>
+<p>
+ The SQLITE_CANTOPEN_ISDIR error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#cantopen">SQLITE_CANTOPEN</a> indicating that a file open operation failed because
+ the file is really a directory.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_commithook"></a>
+<h3>(531) SQLITE_CONSTRAINT_COMMITHOOK</h3>
+<p>
+ The SQLITE_CONSTRAINT_COMMITHOOK error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a
+ <a href="c3ref/commit_hook.html">commit hook callback</a> returned non-zero that thus
+ caused the SQL statement to be rolled back.
+
+
+<!--------------------------------------------------------------->
+<a name="notice_recover_rollback"></a>
+<h3>(539) SQLITE_NOTICE_RECOVER_ROLLBACK</h3>
+<p>
+ The SQLITE_NOTICE_RECOVER_ROLLBACK result code is
+ passed to the callback of
+ <a href="c3ref/log.html">sqlite3_log()</a> when a <a href="fileformat2.html#hotjrnl">hot journal</a> is rolled back.
+
+
+<!--------------------------------------------------------------->
+<a name="error_snapshot"></a>
+<h3>(769) SQLITE_ERROR_SNAPSHOT</h3>
+<p>
+ The SQLITE_ERROR_SNAPSHOT result code might be returned when attempting
+ to start a read transaction on an historical version of the database
+ by using the <a href="c3ref/snapshot_open.html">sqlite3_snapshot_open()</a> interface. If the historical
+ snapshot is no longer available, then the read transaction will fail
+ with the SQLITE_ERROR_SNAPSHOT. This error code is only possible if
+ SQLite is compiled with <a href="compile.html#enable_snapshot">-DSQLITE_ENABLE_SNAPSHOT</a>.
+
+
+<!--------------------------------------------------------------->
+<a name="busy_timeout"></a>
+<h3>(773) SQLITE_BUSY_TIMEOUT</h3>
+<p>
+ The SQLITE_BUSY_TIMEOUT error code indicates that a blocking Posix
+ advisory file lock request in the VFS layer failed due to a timeout.
+ Blocking Posix advisory locks are only
+ available as a proprietary SQLite extension and even then are only
+ supported if SQLite is compiled with the SQLITE_EANBLE_SETLK_TIMEOUT
+ compile-time option.
+
+
+<!--------------------------------------------------------------->
+<a name="readonly_rollback"></a>
+<h3>(776) SQLITE_READONLY_ROLLBACK</h3>
+<p>
+ The SQLITE_READONLY_ROLLBACK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#readonly">SQLITE_READONLY</a>. The SQLITE_READONLY_ROLLBACK error code indicates
+ that a database cannot be opened because it has a <a href="fileformat2.html#hotjrnl">hot journal</a> that
+ needs to be rolled back but cannot because the database is readonly.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_write"></a>
+<h3>(778) SQLITE_IOERR_WRITE</h3>
+<p>
+ The SQLITE_IOERR_WRITE error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
+ while trying to write into a file on disk. This error might result
+ from a hardware malfunction or because a filesystem came unmounted
+ while the file was open. This error should not occur if the filesystem
+ is full as there is a separate error code (SQLITE_FULL) for that purpose.
+
+
+<!--------------------------------------------------------------->
+<a name="corrupt_index"></a>
+<h3>(779) SQLITE_CORRUPT_INDEX</h3>
+<p>
+ The SQLITE_CORRUPT_INDEX result code means that SQLite detected
+ an entry is or was missing from an index. This is a special case of
+ the <a href="rescode.html#corrupt">SQLITE_CORRUPT</a> error code that suggests that the problem might
+ be resolved by running the <a href="lang_reindex.html">REINDEX</a> command, assuming no other
+ problems exist elsewhere in the database file.
+
+
+<!--------------------------------------------------------------->
+<a name="cantopen_fullpath"></a>
+<h3>(782) SQLITE_CANTOPEN_FULLPATH</h3>
+<p>
+ The SQLITE_CANTOPEN_FULLPATH error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#cantopen">SQLITE_CANTOPEN</a> indicating that a file open operation failed because
+ the operating system was unable to convert the filename into a full pathname.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_foreignkey"></a>
+<h3>(787) SQLITE_CONSTRAINT_FOREIGNKEY</h3>
+<p>
+ The SQLITE_CONSTRAINT_FOREIGNKEY error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="foreignkeys.html">foreign key constraint</a> failed.
+
+
+<!--------------------------------------------------------------->
+<a name="readonly_dbmoved"></a>
+<h3>(1032) SQLITE_READONLY_DBMOVED</h3>
+<p>
+ The SQLITE_READONLY_DBMOVED error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#readonly">SQLITE_READONLY</a>. The SQLITE_READONLY_DBMOVED error code indicates
+ that a database cannot be modified because the database file has been
+ moved since it was opened, and so any attempt to modify the database
+ might result in database corruption if the processes crashes because the
+ <a href="lockingv3.html#rollback">rollback journal</a> would not be correctly named.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_fsync"></a>
+<h3>(1034) SQLITE_IOERR_FSYNC</h3>
+<p>
+ The SQLITE_IOERR_FSYNC error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
+ while trying to flush previously written content out of OS and/or
+ disk-control buffers and into persistent storage. In other words,
+ this code indicates a problem with the fsync() system call in unix
+ or the FlushFileBuffers() system call in windows.
+
+
+<!--------------------------------------------------------------->
+<a name="cantopen_convpath"></a>
+<h3>(1038) SQLITE_CANTOPEN_CONVPATH</h3>
+<p>
+ The SQLITE_CANTOPEN_CONVPATH error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#cantopen">SQLITE_CANTOPEN</a> used only by Cygwin <a href="vfs.html">VFS</a> and indicating that
+ the cygwin_conv_path() system call failed while trying to open a file.
+ See also: <a href="rescode.html#ioerr_convpath">SQLITE_IOERR_CONVPATH</a>
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_function"></a>
+<h3>(1043) SQLITE_CONSTRAINT_FUNCTION</h3>
+<p>
+ The SQLITE_CONSTRAINT_FUNCTION error code is not currently used
+ by the SQLite core. However, this error code is available for use
+ by extension functions.
+
+
+<!--------------------------------------------------------------->
+<a name="readonly_cantinit"></a>
+<h3>(1288) SQLITE_READONLY_CANTINIT</h3>
+<p>
+ The SQLITE_READONLY_CANTINIT result code originates in the xShmMap method
+ of a <a href="vfs.html">VFS</a> to indicate that the shared memory region used by <a href="wal.html">WAL mode</a>
+ 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.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_dir_fsync"></a>
+<h3>(1290) SQLITE_IOERR_DIR_FSYNC</h3>
+<p>
+ The SQLITE_IOERR_DIR_FSYNC error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
+ while trying to invoke fsync() on a directory. The unix <a href="vfs.html">VFS</a> attempts
+ to fsync() directories after creating or deleting certain files to
+ ensure that those files will still appear in the filesystem following
+ a power loss or system crash. This error code indicates a problem
+ attempting to perform that fsync().
+
+
+<!--------------------------------------------------------------->
+<a name="cantopen_dirtywal"></a>
+<h3>(1294) SQLITE_CANTOPEN_DIRTYWAL</h3>
+<p>
+ The SQLITE_CANTOPEN_DIRTYWAL result code is not used at this time.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_notnull"></a>
+<h3>(1299) SQLITE_CONSTRAINT_NOTNULL</h3>
+<p>
+ The SQLITE_CONSTRAINT_NOTNULL error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#notnullconst">NOT NULL constraint</a> failed.
+
+
+<!--------------------------------------------------------------->
+<a name="readonly_directory"></a>
+<h3>(1544) SQLITE_READONLY_DIRECTORY</h3>
+<p>
+ 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.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_truncate"></a>
+<h3>(1546) SQLITE_IOERR_TRUNCATE</h3>
+<p>
+ The SQLITE_IOERR_TRUNCATE error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
+ while trying to truncate a file to a smaller size.
+
+
+<!--------------------------------------------------------------->
+<a name="cantopen_symlink"></a>
+<h3>(1550) SQLITE_CANTOPEN_SYMLINK</h3>
+<p>
+ The SQLITE_CANTOPEN_SYMLINK result code is returned by the
+ <a href="c3ref/open.html">sqlite3_open()</a> interface and its siblings when the
+ <a href="c3ref/c_open_autoproxy.html">SQLITE_OPEN_NOFOLLOW</a> flag is used and the database file is
+ a symbolic link.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_primarykey"></a>
+<h3>(1555) SQLITE_CONSTRAINT_PRIMARYKEY</h3>
+<p>
+ The SQLITE_CONSTRAINT_PRIMARYKEY error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#primkeyconst">PRIMARY KEY constraint</a> failed.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_fstat"></a>
+<h3>(1802) SQLITE_IOERR_FSTAT</h3>
+<p>
+ The SQLITE_IOERR_FSTAT error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
+ while trying to invoke fstat() (or the equivalent) on a file in order
+ to determine information such as the file size or access permissions.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_trigger"></a>
+<h3>(1811) SQLITE_CONSTRAINT_TRIGGER</h3>
+<p>
+ The SQLITE_CONSTRAINT_TRIGGER error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtrigger.html#raise">RAISE function</a> within
+ a <a href="lang_createtrigger.html">trigger</a> fired, causing the SQL statement to abort.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_unlock"></a>
+<h3>(2058) SQLITE_IOERR_UNLOCK</h3>
+<p>
+ The SQLITE_IOERR_UNLOCK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within xUnlock method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_unique"></a>
+<h3>(2067) SQLITE_CONSTRAINT_UNIQUE</h3>
+<p>
+ The SQLITE_CONSTRAINT_UNIQUE error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#uniqueconst">UNIQUE constraint</a> failed.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_rdlock"></a>
+<h3>(2314) SQLITE_IOERR_RDLOCK</h3>
+<p>
+ The SQLITE_IOERR_UNLOCK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within xLock method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object while trying
+ to obtain a read lock.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_vtab"></a>
+<h3>(2323) SQLITE_CONSTRAINT_VTAB</h3>
+<p>
+ The SQLITE_CONSTRAINT_VTAB error code is not currently used
+ by the SQLite core. However, this error code is available for use
+ by application-defined <a href="vtab.html">virtual tables</a>.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_delete"></a>
+<h3>(2570) SQLITE_IOERR_DELETE</h3>
+<p>
+ The SQLITE_IOERR_UNLOCK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within xDelete method on the <a href="c3ref/vfs.html">sqlite3_vfs</a> object.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_rowid"></a>
+<h3>(2579) SQLITE_CONSTRAINT_ROWID</h3>
+<p>
+ The SQLITE_CONSTRAINT_ROWID error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#rowid">rowid</a> is not unique.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_blocked"></a>
+<h3>(2826) SQLITE_IOERR_BLOCKED</h3>
+<p>
+ The SQLITE_IOERR_BLOCKED error code is no longer used.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_pinned"></a>
+<h3>(2835) SQLITE_CONSTRAINT_PINNED</h3>
+<p>
+ The SQLITE_CONSTRAINT_PINNED error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that an <a href="lang_createtrigger.html">UPDATE trigger</a> attempted
+ do delete the row that was being updated in the middle of the update.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_nomem"></a>
+<h3>(3082) SQLITE_IOERR_NOMEM</h3>
+<p>
+ The SQLITE_IOERR_NOMEM error code is sometimes returned by the <a href="vfs.html">VFS</a>
+ layer to indicate that an operation could not be completed due to the
+ inability to allocate sufficient memory. This error code is normally
+ converted into <a href="rescode.html#nomem">SQLITE_NOMEM</a> by the higher layers of SQLite before
+ being returned to the application.
+
+
+<!--------------------------------------------------------------->
+<a name="constraint_datatype"></a>
+<h3>(3091) SQLITE_CONSTRAINT_DATATYPE</h3>
+<p>
+ The SQLITE_CONSTRAINT_DATATYPE error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that an insert or update attempted
+ to store a value inconsistent with the column's declared type
+ in a table defined as STRICT.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_access"></a>
+<h3>(3338) SQLITE_IOERR_ACCESS</h3>
+<p>
+ The SQLITE_IOERR_ACCESS error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within the xAccess method on the <a href="c3ref/vfs.html">sqlite3_vfs</a> object.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_checkreservedlock"></a>
+<h3>(3594) SQLITE_IOERR_CHECKRESERVEDLOCK</h3>
+<p>
+ The SQLITE_IOERR_CHECKRESERVEDLOCK error code is
+ an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within the xCheckReservedLock method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_lock"></a>
+<h3>(3850) SQLITE_IOERR_LOCK</h3>
+<p>
+ The SQLITE_IOERR_LOCK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the
+ advisory file locking logic.
+ Usually an SQLITE_IOERR_LOCK error indicates a problem obtaining
+ a <a href="lockingv3.html#pending_lock">PENDING lock</a>. However it can also indicate miscellaneous
+ locking errors on some of the specialized <a href="vfs.html">VFSes</a> used on Macs.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_close"></a>
+<h3>(4106) SQLITE_IOERR_CLOSE</h3>
+<p>
+ The SQLITE_IOERR_ACCESS error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within the xClose method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_dir_close"></a>
+<h3>(4362) SQLITE_IOERR_DIR_CLOSE</h3>
+<p>
+ The SQLITE_IOERR_DIR_CLOSE error code is no longer used.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_shmopen"></a>
+<h3>(4618) SQLITE_IOERR_SHMOPEN</h3>
+<p>
+ The SQLITE_IOERR_SHMOPEN error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within the xShmMap method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
+ while trying to open a new shared memory segment.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_shmsize"></a>
+<h3>(4874) SQLITE_IOERR_SHMSIZE</h3>
+<p>
+ The SQLITE_IOERR_SHMSIZE error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within the xShmMap method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
+ while trying to enlarge a <a href="walformat.html#shm">"shm" file</a> as part of
+ <a href="wal.html">WAL mode</a> transaction processing. This error may indicate that
+ the underlying filesystem volume is out of space.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_shmlock"></a>
+<h3>(5130) SQLITE_IOERR_SHMLOCK</h3>
+<p>
+ The SQLITE_IOERR_SHMLOCK error code is no longer used.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_shmmap"></a>
+<h3>(5386) SQLITE_IOERR_SHMMAP</h3>
+<p>
+ The SQLITE_IOERR_SHMMAP error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within the xShmMap method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
+ while trying to map a shared memory segment into the process address space.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_seek"></a>
+<h3>(5642) SQLITE_IOERR_SEEK</h3>
+<p>
+ The SQLITE_IOERR_SEEK error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within the xRead or xWrite methods on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
+ while trying to seek a file descriptor to the beginning point of the
+ file where the read or write is to occur.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_delete_noent"></a>
+<h3>(5898) SQLITE_IOERR_DELETE_NOENT</h3>
+<p>
+ The SQLITE_IOERR_DELETE_NOENT error code
+ is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating that the
+ xDelete method on the <a href="c3ref/vfs.html">sqlite3_vfs</a> object failed because the
+ file being deleted does not exist.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_mmap"></a>
+<h3>(6154) SQLITE_IOERR_MMAP</h3>
+<p>
+ The SQLITE_IOERR_MMAP error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
+ within the xFetch or xUnfetch methods on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
+ while trying to map or unmap part of the database file into the
+ process address space.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_gettemppath"></a>
+<h3>(6410) SQLITE_IOERR_GETTEMPPATH</h3>
+<p>
+ The SQLITE_IOERR_GETTEMPPATH error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating that the <a href="vfs.html">VFS</a> is unable to determine
+ a suitable directory in which to place temporary files.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_convpath"></a>
+<h3>(6666) SQLITE_IOERR_CONVPATH</h3>
+<p>
+ The SQLITE_IOERR_CONVPATH error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> used only by Cygwin <a href="vfs.html">VFS</a> and indicating that
+ the cygwin_conv_path() system call failed.
+ See also: <a href="rescode.html#cantopen_convpath">SQLITE_CANTOPEN_CONVPATH</a>
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_vnode"></a>
+<h3>(6922) SQLITE_IOERR_VNODE</h3>
+<p>
+ The SQLITE_IOERR_VNODE error code is a code reserved for use
+ by extensions. It is not used by the SQLite core.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_auth"></a>
+<h3>(7178) SQLITE_IOERR_AUTH</h3>
+<p>
+ The SQLITE_IOERR_AUTH error code is a code reserved for use
+ by extensions. It is not used by the SQLite core.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_begin_atomic"></a>
+<h3>(7434) SQLITE_IOERR_BEGIN_ATOMIC</h3>
+<p>
+ The SQLITE_IOERR_BEGIN_ATOMIC error code indicates that the
+ underlying operating system reported and error on the
+ <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbeginatomicwrite">SQLITE_FCNTL_BEGIN_ATOMIC_WRITE</a> file-control. This only comes
+ up when <a href="compile.html#enable_atomic_write">SQLITE_ENABLE_ATOMIC_WRITE</a> is enabled and the database
+ is hosted on a filesystem that supports atomic writes.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_commit_atomic"></a>
+<h3>(7690) SQLITE_IOERR_COMMIT_ATOMIC</h3>
+<p>
+ The SQLITE_IOERR_COMMIT_ATOMIC error code indicates that the
+ underlying operating system reported and error on the
+ <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitatomicwrite">SQLITE_FCNTL_COMMIT_ATOMIC_WRITE</a> file-control. This only comes
+ up when <a href="compile.html#enable_atomic_write">SQLITE_ENABLE_ATOMIC_WRITE</a> is enabled and the database
+ is hosted on a filesystem that supports atomic writes.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_rollback_atomic"></a>
+<h3>(7946) SQLITE_IOERR_ROLLBACK_ATOMIC</h3>
+<p>
+ The SQLITE_IOERR_ROLLBACK_ATOMIC error code indicates that the
+ underlying operating system reported and error on the
+ <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrollbackatomicwrite">SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE</a> file-control. This only comes
+ up when <a href="compile.html#enable_atomic_write">SQLITE_ENABLE_ATOMIC_WRITE</a> is enabled and the database
+ is hosted on a filesystem that supports atomic writes.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_data"></a>
+<h3>(8202) SQLITE_IOERR_DATA</h3>
+<p>
+ The SQLITE_IOERR_DATA error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> used only by <a href="cksumvfs.html">checksum VFS shim</a> to indicate that
+ the checksum on a page of the database file is incorrect.
+
+
+<!--------------------------------------------------------------->
+<a name="ioerr_corruptfs"></a>
+<h3>(8458) SQLITE_IOERR_CORRUPTFS</h3>
+<p>
+ The SQLITE_IOERR_CORRUPTFS error code is an <a href="rescode.html#pve">extended error code</a>
+ for <a href="rescode.html#ioerr">SQLITE_IOERR</a> used only by a VFS to indicate that a seek or read
+ failure was due to the request not falling within the file's boundary
+ rather than an ordinary device failure. This often indicates a
+ corrupt filesystem.
+
+
+
+</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/rescode.in?m=13bc05918e65ccd69">2022-02-08 12:34:22</a> UTC </small></i></p>
+