Improve the error message associated with SQLITE_FULL. Ticket #1353.

Also remove error messages for obsolete error codes SQLITE_INTERNAL,
SQLITE_NOTFOUND, and SQLITE_TOOBIG. (CVS 2580)

FossilOrigin-Name: fa7403c7d9948cc4a6c6ed00a614e3d6a3682e78
This commit is contained in:
drh 2005-08-11 02:10:18 +00:00
parent 4dcbdbff40
commit 2db0bbc24b
11 changed files with 32 additions and 49 deletions

View File

@ -1,5 +1,5 @@
C Add\s2005\sopen\ssource\saward\sbadge\sand\snews\sannouncement.\s(CVS\s2579)
D 2005-08-11T01:25:22
C Improve\sthe\serror\smessage\sassociated\swith\sSQLITE_FULL.\s\sTicket\s#1353.\nAlso\sremove\serror\smessages\sfor\sobsolete\serror\scodes\sSQLITE_INTERNAL,\nSQLITE_NOTFOUND,\sand\sSQLITE_TOOBIG.\s(CVS\s2580)
D 2005-08-11T02:10:19
F Makefile.in 22ea9c0fe748f591712d8fe3c6d972c6c173a165
F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@ -45,7 +45,7 @@ F src/hash.c 2b1b13f7400e179631c83a1be0c664608c8f021f
F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84
F src/insert.c 484c73bc1309f283a31baa0e114f3ee980536397
F src/legacy.c d58ea507bce885298a2c8c3cbb0f4bff5d47830b
F src/main.c 568005dc335c17bf1f7ce346652c1c505f412fd7
F src/main.c fc984008243a41ae70ebffb4076d09a20d92871d
F src/md5.c 7ae1c39044b95de2f62e066f47bb1deb880a1070
F src/os.h c4b34bd4d6fea51a420f337468b907f4edecb161
F src/os_common.h 0e7f428ba0a6c40a61bc56c4e96f493231301b73
@ -64,14 +64,14 @@ F src/printf.c 3d20b21cfecadacecac3fb7274e746cb81d3d357
F src/random.c 90adff4e73a3b249eb4f1fc2a6ff9cf78c7233a4
F src/select.c c611471052773b94af771693686bd5bcdbbb0dba
F src/shell.c 86c16f0d534aa51cc82cf9f66903d4eb681580e7
F src/sqlite.h.in 7ccf2f61de2a0dca515e73708e561362e6c3d1e3
F src/sqlite.h.in a3b75a6b2e66865fba4ec1b698d00c7d95fe27a2
F src/sqliteInt.h 4cacefaca973cbf8e6a82910c704bf9b4a32fdf1
F src/table.c 25b3ff2b39b7d87e8d4a5da0713d68dfc06cbee9
F src/tclsqlite.c 96feead1f1d301efa1d3ac6b89ecea7592ab18f9
F src/test1.c c809e469683d93c3e9773aa3651a7586a1d37eec
F src/test2.c 716c1809dba8e5be6093703e9cada99d627542dc
F src/test3.c 683e1e3819152ffd35da2f201e507228921148d0
F src/test4.c 7c6b9fc33dd1f3f93c7f1ee6e5e6d016afa6c1df
F src/test1.c 8a2b5ccc4be7450d41100778f346cbcf540febdd
F src/test2.c 792f203be69fea88668fa221321194f0a28dfdfa
F src/test3.c f4e6a16a602091696619a1171bda25c0e3df49f7
F src/test4.c a8fd681e139e1c61f22a77d07fc3a99cb28fff3f
F src/test5.c 64f08b2a50ef371a1bd68ff206829e7b1b9997f5
F src/tokenize.c 57ec9926612fb9e325b57a141303573bc20c79bf
F src/trigger.c f51dec15921629591cb98bf2e350018e268b109a
@ -97,7 +97,7 @@ F test/attach.test f320e98bcca68d100cab7666a0c9a93ac5f236bd
F test/attach2.test 3396c012a39ddf7ba6b528d80bd79554168aa115
F test/attach3.test 63013383adc4380af69779f34f4af19bd49f7cbe
F test/auth.test 973ae7274eae32c4453fbbcbd0ec2b80c5b1eeb3
F test/autoinc.test 2aba7dc87438d221e2f2ea0e3e7d5fb6812edf6d
F test/autoinc.test 395fbac8bc158d3599995c73bfb15c418a5429f0
F test/autovacuum.test cf2719b17659f7a011202ad05905654cedf26023
F test/autovacuum_crash.test 05a63b8805b20cfba7ace82856ce4ccdda075a31
F test/autovacuum_ioerr.test 9cf27275ca47b72e188a47c53b61b6d583a01d24
@ -117,7 +117,7 @@ F test/btree7.test a6d3b842db22af97dd14b989e90a2fd96066b72f
F test/btree8.test fadc112bcbd6a0c622d34c813fc8a648eacf8804
F test/busy.test e355bee7d32aae35ccb3786f7a6470b73559d0f9
F test/capi2.test f897209386fb21cfdc9267595e0c667ebaca9164
F test/capi3.test 4d848cc55ad6e5f68cf2712716e9fc1fa55d7635
F test/capi3.test fc8e573467049add3bfaf81f53827e8ff153cf8f
F test/capi3b.test 5b6a66f9f295f79f443b5d3f33187fa5ef6cf336
F test/cast.test 937af85faabdb189b6cd05879977f2469223be59
F test/collate1.test f79736d2ebf5492167ee4d1f4ab4c09dda776b03
@ -134,7 +134,7 @@ F test/crashtest1.c 09c1c7d728ccf4feb9e481671e29dda5669bbcc2
F test/date.test 30ca15e608a45d868fd419c901795382efe27020
F test/delete.test 33e1670049364fc3604217a6c2eda042a47115ab
F test/delete2.test e382b6a97787197eb8b93dd4ccd37797c3725ea3
F test/diskfull.test e2f6cfd868713ead06dc82b84a4938e868128fc0
F test/diskfull.test ba27afd587af1216f92d2bb00132cbc0e39354fc
F test/enc.test 7a03417a1051fe8bc6c7641cf4c8c3f7e0066d52
F test/enc2.test d1ab077b84f4d3099246915422b1ab6b81481e0a
F test/enc3.test f6a5f0b7b7f3a88f030d3143729b87cd5c86d837
@ -291,7 +291,7 @@ F www/tclsqlite.tcl 3df553505b6efcad08f91e9b975deb2e6c9bb955
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b
P 73fafd2148b8cd0f92747fca03e3df5778e1070f
R 604a4a087ae8616097964392850af0d2
P 8e007f8c06748c5f02068c1f244bc8e3026e16fd
R 2ec1633eaf76b1bbd075deefedf07962
U drh
Z dff31768692be71ea5c99e5f283ac58a
Z ae91ac04dccfd6c4c10cb1686551ca42

View File

@ -1 +1 @@
8e007f8c06748c5f02068c1f244bc8e3026e16fd
fa7403c7d9948cc4a6c6ed00a614e3d6a3682e78

View File

@ -14,7 +14,7 @@
** other files are for internal use by SQLite and should not be
** accessed by users of the library.
**
** $Id: main.c,v 1.296 2005/07/15 13:05:21 drh Exp $
** $Id: main.c,v 1.297 2005/08/11 02:10:19 drh Exp $
*/
#include "sqliteInt.h"
#include "os.h"
@ -234,7 +234,6 @@ const char *sqlite3ErrStr(int rc){
case SQLITE_DONE:
case SQLITE_OK: z = "not an error"; break;
case SQLITE_ERROR: z = "SQL logic error or missing database"; break;
case SQLITE_INTERNAL: z = "internal SQLite implementation flaw"; break;
case SQLITE_PERM: z = "access permission denied"; break;
case SQLITE_ABORT: z = "callback requested query abort"; break;
case SQLITE_BUSY: z = "database is locked"; break;
@ -244,13 +243,11 @@ const char *sqlite3ErrStr(int rc){
case SQLITE_INTERRUPT: z = "interrupted"; break;
case SQLITE_IOERR: z = "disk I/O error"; break;
case SQLITE_CORRUPT: z = "database disk image is malformed"; break;
case SQLITE_NOTFOUND: z = "table or record not found"; break;
case SQLITE_FULL: z = "database is full"; break;
case SQLITE_FULL: z = "database or disk is full"; break;
case SQLITE_CANTOPEN: z = "unable to open database file"; break;
case SQLITE_PROTOCOL: z = "database locking protocol failure"; break;
case SQLITE_EMPTY: z = "table contains no data"; break;
case SQLITE_SCHEMA: z = "database schema has changed"; break;
case SQLITE_TOOBIG: z = "too much data for one table row"; break;
case SQLITE_CONSTRAINT: z = "constraint failed"; break;
case SQLITE_MISMATCH: z = "datatype mismatch"; break;
case SQLITE_MISUSE: z = "library routine called out of sequence";break;

View File

@ -12,7 +12,7 @@
** This header file defines the interface that the SQLite library
** presents to client programs.
**
** @(#) $Id: sqlite.h.in,v 1.138 2005/07/23 02:17:03 drh Exp $
** @(#) $Id: sqlite.h.in,v 1.139 2005/08/11 02:10:19 drh Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -158,7 +158,7 @@ int sqlite3_exec(
*/
#define SQLITE_OK 0 /* Successful result */
#define SQLITE_ERROR 1 /* SQL error or missing database */
#define SQLITE_INTERNAL 2 /* An internal logic error in SQLite */
#define SQLITE_INTERNAL 2 /* NOT USED. Internal logic error in SQLite */
#define SQLITE_PERM 3 /* Access permission denied */
#define SQLITE_ABORT 4 /* Callback routine requested an abort */
#define SQLITE_BUSY 5 /* The database file is locked */
@ -168,13 +168,13 @@ int sqlite3_exec(
#define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt()*/
#define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */
#define SQLITE_CORRUPT 11 /* The database disk image is malformed */
#define SQLITE_NOTFOUND 12 /* (Internal Only) Table or record not found */
#define SQLITE_NOTFOUND 12 /* NOT USED. Table or record not found */
#define SQLITE_FULL 13 /* Insertion failed because database is full */
#define SQLITE_CANTOPEN 14 /* Unable to open the database file */
#define SQLITE_PROTOCOL 15 /* Database lock protocol error */
#define SQLITE_EMPTY 16 /* Database is empty */
#define SQLITE_SCHEMA 17 /* The database schema changed */
#define SQLITE_TOOBIG 18 /* Too much data for one row of a table */
#define SQLITE_TOOBIG 18 /* NOT USED. Too much data for one row */
#define SQLITE_CONSTRAINT 19 /* Abort due to contraint violation */
#define SQLITE_MISMATCH 20 /* Data type mismatch */
#define SQLITE_MISUSE 21 /* Library used incorrectly */

View File

@ -13,7 +13,7 @@
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
** $Id: test1.c,v 1.152 2005/08/02 21:42:17 drh Exp $
** $Id: test1.c,v 1.153 2005/08/11 02:10:19 drh Exp $
*/
#include "sqliteInt.h"
#include "tcl.h"
@ -26,7 +26,6 @@ const char *sqlite3TestErrorName(int rc){
switch( rc ){
case SQLITE_OK: zName = "SQLITE_OK"; break;
case SQLITE_ERROR: zName = "SQLITE_ERROR"; break;
case SQLITE_INTERNAL: zName = "SQLITE_INTERNAL"; break;
case SQLITE_PERM: zName = "SQLITE_PERM"; break;
case SQLITE_ABORT: zName = "SQLITE_ABORT"; break;
case SQLITE_BUSY: zName = "SQLITE_BUSY"; break;
@ -36,13 +35,11 @@ const char *sqlite3TestErrorName(int rc){
case SQLITE_INTERRUPT: zName = "SQLITE_INTERRUPT"; break;
case SQLITE_IOERR: zName = "SQLITE_IOERR"; break;
case SQLITE_CORRUPT: zName = "SQLITE_CORRUPT"; break;
case SQLITE_NOTFOUND: zName = "SQLITE_NOTFOUND"; break;
case SQLITE_FULL: zName = "SQLITE_FULL"; break;
case SQLITE_CANTOPEN: zName = "SQLITE_CANTOPEN"; break;
case SQLITE_PROTOCOL: zName = "SQLITE_PROTOCOL"; break;
case SQLITE_EMPTY: zName = "SQLITE_EMPTY"; break;
case SQLITE_SCHEMA: zName = "SQLITE_SCHEMA"; break;
case SQLITE_TOOBIG: zName = "SQLITE_TOOBIG"; break;
case SQLITE_CONSTRAINT: zName = "SQLITE_CONSTRAINT"; break;
case SQLITE_MISMATCH: zName = "SQLITE_MISMATCH"; break;
case SQLITE_MISUSE: zName = "SQLITE_MISUSE"; break;

View File

@ -13,7 +13,7 @@
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
** $Id: test2.c,v 1.30 2005/05/27 09:41:13 danielk1977 Exp $
** $Id: test2.c,v 1.31 2005/08/11 02:10:19 drh Exp $
*/
#include "sqliteInt.h"
#include "os.h"
@ -30,7 +30,6 @@ static char *errorName(int rc){
switch( rc ){
case SQLITE_OK: zName = "SQLITE_OK"; break;
case SQLITE_ERROR: zName = "SQLITE_ERROR"; break;
case SQLITE_INTERNAL: zName = "SQLITE_INTERNAL"; break;
case SQLITE_PERM: zName = "SQLITE_PERM"; break;
case SQLITE_ABORT: zName = "SQLITE_ABORT"; break;
case SQLITE_BUSY: zName = "SQLITE_BUSY"; break;
@ -39,13 +38,11 @@ static char *errorName(int rc){
case SQLITE_INTERRUPT: zName = "SQLITE_INTERRUPT"; break;
case SQLITE_IOERR: zName = "SQLITE_IOERR"; break;
case SQLITE_CORRUPT: zName = "SQLITE_CORRUPT"; break;
case SQLITE_NOTFOUND: zName = "SQLITE_NOTFOUND"; break;
case SQLITE_FULL: zName = "SQLITE_FULL"; break;
case SQLITE_CANTOPEN: zName = "SQLITE_CANTOPEN"; break;
case SQLITE_PROTOCOL: zName = "SQLITE_PROTOCOL"; break;
case SQLITE_EMPTY: zName = "SQLITE_EMPTY"; break;
case SQLITE_SCHEMA: zName = "SQLITE_SCHEMA"; break;
case SQLITE_TOOBIG: zName = "SQLITE_TOOBIG"; break;
case SQLITE_CONSTRAINT: zName = "SQLITE_CONSTRAINT"; break;
case SQLITE_MISMATCH: zName = "SQLITE_MISMATCH"; break;
case SQLITE_MISUSE: zName = "SQLITE_MISUSE"; break;

View File

@ -13,7 +13,7 @@
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
** $Id: test3.c,v 1.61 2005/01/21 08:13:15 danielk1977 Exp $
** $Id: test3.c,v 1.62 2005/08/11 02:10:19 drh Exp $
*/
#include "sqliteInt.h"
#include "pager.h"
@ -30,7 +30,6 @@ static char *errorName(int rc){
switch( rc ){
case SQLITE_OK: zName = "SQLITE_OK"; break;
case SQLITE_ERROR: zName = "SQLITE_ERROR"; break;
case SQLITE_INTERNAL: zName = "SQLITE_INTERNAL"; break;
case SQLITE_PERM: zName = "SQLITE_PERM"; break;
case SQLITE_ABORT: zName = "SQLITE_ABORT"; break;
case SQLITE_BUSY: zName = "SQLITE_BUSY"; break;
@ -39,7 +38,6 @@ static char *errorName(int rc){
case SQLITE_INTERRUPT: zName = "SQLITE_INTERRUPT"; break;
case SQLITE_IOERR: zName = "SQLITE_IOERR"; break;
case SQLITE_CORRUPT: zName = "SQLITE_CORRUPT"; break;
case SQLITE_NOTFOUND: zName = "SQLITE_NOTFOUND"; break;
case SQLITE_FULL: zName = "SQLITE_FULL"; break;
case SQLITE_CANTOPEN: zName = "SQLITE_CANTOPEN"; break;
case SQLITE_PROTOCOL: zName = "SQLITE_PROTOCOL"; break;

View File

@ -11,7 +11,7 @@
*************************************************************************
** Code for testing the the SQLite library in a multithreaded environment.
**
** $Id: test4.c,v 1.12 2004/09/06 17:24:13 drh Exp $
** $Id: test4.c,v 1.13 2005/08/11 02:10:19 drh Exp $
*/
#include "sqliteInt.h"
#include "tcl.h"
@ -375,7 +375,6 @@ static int tcl_thread_result(
switch( threadset[i].rc ){
case SQLITE_OK: zName = "SQLITE_OK"; break;
case SQLITE_ERROR: zName = "SQLITE_ERROR"; break;
case SQLITE_INTERNAL: zName = "SQLITE_INTERNAL"; break;
case SQLITE_PERM: zName = "SQLITE_PERM"; break;
case SQLITE_ABORT: zName = "SQLITE_ABORT"; break;
case SQLITE_BUSY: zName = "SQLITE_BUSY"; break;
@ -385,13 +384,11 @@ static int tcl_thread_result(
case SQLITE_INTERRUPT: zName = "SQLITE_INTERRUPT"; break;
case SQLITE_IOERR: zName = "SQLITE_IOERR"; break;
case SQLITE_CORRUPT: zName = "SQLITE_CORRUPT"; break;
case SQLITE_NOTFOUND: zName = "SQLITE_NOTFOUND"; break;
case SQLITE_FULL: zName = "SQLITE_FULL"; break;
case SQLITE_CANTOPEN: zName = "SQLITE_CANTOPEN"; break;
case SQLITE_PROTOCOL: zName = "SQLITE_PROTOCOL"; break;
case SQLITE_EMPTY: zName = "SQLITE_EMPTY"; break;
case SQLITE_SCHEMA: zName = "SQLITE_SCHEMA"; break;
case SQLITE_TOOBIG: zName = "SQLITE_TOOBIG"; break;
case SQLITE_CONSTRAINT: zName = "SQLITE_CONSTRAINT"; break;
case SQLITE_MISMATCH: zName = "SQLITE_MISMATCH"; break;
case SQLITE_MISUSE: zName = "SQLITE_MISUSE"; break;

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this script is testing the AUTOINCREMENT features.
#
# $Id: autoinc.test,v 1.6 2005/06/14 02:12:46 drh Exp $
# $Id: autoinc.test,v 1.7 2005/08/11 02:10:19 drh Exp $
#
set testdir [file dirname $argv0]
@ -480,7 +480,7 @@ do_test autoinc-6.2 {
catchsql {
INSERT INTO t6 VALUES(NULL,1);
}
} {1 {database is full}}
} {1 {database or disk is full}}
# Allow the AUTOINCREMENT keyword inside the parentheses
# on a separate PRIMARY KEY designation.

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this script testing the callback-free C/C++ API.
#
# $Id: capi3.test,v 1.33 2005/06/06 17:54:56 drh Exp $
# $Id: capi3.test,v 1.34 2005/08/11 02:10:19 drh Exp $
#
set testdir [file dirname $argv0]
@ -575,7 +575,6 @@ file delete -force test.db-journal
set code2english [list \
SQLITE_OK {not an error} \
SQLITE_ERROR {SQL logic error or missing database} \
SQLITE_INTERNAL {internal SQLite implementation flaw} \
SQLITE_PERM {access permission denied} \
SQLITE_ABORT {callback requested query abort} \
SQLITE_BUSY {database is locked} \
@ -585,13 +584,11 @@ SQLITE_READONLY {attempt to write a readonly database} \
SQLITE_INTERRUPT {interrupted} \
SQLITE_IOERR {disk I/O error} \
SQLITE_CORRUPT {database disk image is malformed} \
SQLITE_NOTFOUND {table or record not found} \
SQLITE_FULL {database is full} \
SQLITE_FULL {database or disk is full} \
SQLITE_CANTOPEN {unable to open database file} \
SQLITE_PROTOCOL {database locking protocol failure} \
SQLITE_EMPTY {table contains no data} \
SQLITE_SCHEMA {database schema has changed} \
SQLITE_TOOBIG {too much data for one table row} \
SQLITE_CONSTRAINT {constraint failed} \
SQLITE_MISMATCH {datatype mismatch} \
SQLITE_MISUSE {library routine called out of sequence} \

View File

@ -12,7 +12,7 @@
# focus of this file is testing for correct handling of disk full
# errors.
#
# $Id: diskfull.test,v 1.1 2004/10/01 14:38:03 drh Exp $
# $Id: diskfull.test,v 1.2 2005/08/11 02:10:19 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -29,12 +29,12 @@ do_test diskfull-1.2 {
catchsql {
INSERT INTO t1 SELECT * FROM t1;
}
} {1 {database is full}}
} {1 {database or disk is full}}
do_test diskfull-1.3 {
set sqlite_diskfull_pending 1
catchsql {
DELETE FROM t1;
}
} {1 {database is full}}
} {1 {database or disk is full}}
finish_test