Add the sqlite3_extended_errcode() interface. Change to return

SQLITE_BUSY instead of SQLITE_ERROR when a COMMIT is attempted and one
or more queries are still pending. (CVS 5850)

FossilOrigin-Name: 4c6a90a16627b1664bf7f15ab40b440b3bd60b48
This commit is contained in:
drh
2008-10-30 15:03:15 +00:00
parent 281d8bd3ac
commit 99dfe5eb47
9 changed files with 161 additions and 73 deletions
+19 -7
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.67 2008/07/12 15:55:55 danielk1977 Exp $
# $Id: capi3.test,v 1.68 2008/10/30 15:03:16 drh Exp $
#
set testdir [file dirname $argv0]
@@ -61,9 +61,12 @@ do_test capi3-1.1 {
sqlite3_finalize $STMT
set TAIL
} {}
do_test capi3-1.2 {
do_test capi3-1.2.1 {
sqlite3_errcode $DB
} {SQLITE_OK}
do_test capi3-1.2.2 {
sqlite3_extended_errcode $DB
} {SQLITE_OK}
do_test capi3-1.3 {
sqlite3_errmsg $DB
} {not an error}
@@ -92,9 +95,12 @@ do_test capi3-1.7 {
set STMT [sqlite3_prepare $DB $sql -1 TAIL]
}
} {1}
do_test capi3-1.8 {
do_test capi3-1.8.1 {
sqlite3_errcode $DB
} {SQLITE_ERROR}
do_test capi3-1.8.2 {
sqlite3_extended_errcode $DB
} {SQLITE_ERROR}
do_test capi3-1.9 {
sqlite3_errmsg $DB
} {no such column: namex}
@@ -118,9 +124,12 @@ ifcapable {utf16} {
set STMT [sqlite3_prepare16 $DB $sql -1 TAIL]
}
} {1}
do_test capi3-2.4 {
do_test capi3-2.4.1 {
sqlite3_errcode $DB
} {SQLITE_ERROR}
do_test capi3-2.4.2 {
sqlite3_extended_errcode $DB
} {SQLITE_ERROR}
do_test capi3-2.5 {
sqlite3_errmsg $DB
} {no such column: namex}
@@ -157,7 +166,7 @@ do_test capi3-3.3 {
catch {
set db2 [sqlite3_open /bogus/path/test.db {}]
}
sqlite3_errcode $db2
sqlite3_extended_errcode $db2
} {SQLITE_CANTOPEN}
do_test capi3-3.4 {
sqlite3_errmsg $db2
@@ -824,12 +833,15 @@ do_test capi3-11.2 {
set STMT [sqlite3_prepare $DB "SELECT func(b, a) FROM t1" -1 TAIL]
sqlite3_step $STMT
} {SQLITE_ROW}
do_test capi3-11.3 {
do_test capi3-11.3.1 {
catchsql {
COMMIT;
}
} {1 {cannot commit transaction - SQL statements in progress}}
do_test capi3-11.3.1 {
do_test capi3-11.3.2 {
sqlite3_extended_errcode $DB
} {SQLITE_BUSY}
do_test capi3-11.3.3 {
sqlite3_get_autocommit $DB
} 0
do_test capi3-11.4 {