mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Return code was being dropped because of overridden variable in OP_IsUnique. Fix this and the test logic problem that hid it. (CVS 3025)
FossilOrigin-Name: c30705a00d7d9d61fb9cb47a1019b1a186d690a7
This commit is contained in:
20
manifest
20
manifest
@ -1,5 +1,5 @@
|
|||||||
C Rename\ssome\svariables\sto\savoid\shiding\sothers.\sAlso\sadd\s"static"\sto\stwo\sfunction\ssignatures\sthat\swere\smissing\sit.\s(CVS\s3024)
|
C Return\scode\swas\sbeing\sdropped\sbecause\sof\soverridden\svariable\sin\sOP_IsUnique.\sFix\sthis\sand\sthe\stest\slogic\sproblem\sthat\shid\sit.\s(CVS\s3025)
|
||||||
D 2006-01-24T12:09:18
|
D 2006-01-24T13:09:33
|
||||||
F Makefile.in 53841eb72e9eeb6030a8ce28c2595a92f440fd10
|
F Makefile.in 53841eb72e9eeb6030a8ce28c2595a92f440fd10
|
||||||
F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec
|
F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec
|
||||||
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
|
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
|
||||||
@ -48,7 +48,7 @@ F src/hash.c 8747cf51d12de46512880dfcf1b68b4e24072863
|
|||||||
F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84
|
F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84
|
||||||
F src/insert.c 7e931b7f06afbcefcbbaab175c02eff8268db33f
|
F src/insert.c 7e931b7f06afbcefcbbaab175c02eff8268db33f
|
||||||
F src/legacy.c 86b669707b3cefd570e34154e2f6457547d1df4f
|
F src/legacy.c 86b669707b3cefd570e34154e2f6457547d1df4f
|
||||||
F src/main.c 439168db0a830efd0b9e7325aff39adc5524a1b5
|
F src/main.c dc3fc9b02b1a022574d6e12d25abe58b93b85b1f
|
||||||
F src/md5.c c5fdfa5c2593eaee2e32a5ce6c6927c986eaf217
|
F src/md5.c c5fdfa5c2593eaee2e32a5ce6c6927c986eaf217
|
||||||
F src/os.c 59f05de8c5777c34876607114a2fbe55ae578235
|
F src/os.c 59f05de8c5777c34876607114a2fbe55ae578235
|
||||||
F src/os.h 93035a0e3b9dd05cdd0aaef32ea28ca28e02fe78
|
F src/os.h 93035a0e3b9dd05cdd0aaef32ea28ca28e02fe78
|
||||||
@ -59,7 +59,7 @@ F src/os_unix.c b25eca667f926d24b542fb20378b3665feccfe2b
|
|||||||
F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
|
F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
|
||||||
F src/os_win.c 566bf7b41b72556fd7dca390bceaa2769dc395e9
|
F src/os_win.c 566bf7b41b72556fd7dca390bceaa2769dc395e9
|
||||||
F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
|
F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
|
||||||
F src/pager.c c4d18015a4eadebe91cffe2a9e08011c134e5aa2
|
F src/pager.c c9fdc3f4026f22e73d8fa586c4f58e14129036bb
|
||||||
F src/pager.h e0acb095b3ad0bca48f2ab00c87346665643f64f
|
F src/pager.h e0acb095b3ad0bca48f2ab00c87346665643f64f
|
||||||
F src/parse.y 4285cd2d0f31a8db4c4d54325f88e500452fa029
|
F src/parse.y 4285cd2d0f31a8db4c4d54325f88e500452fa029
|
||||||
F src/pragma.c 4496cc77dc35824e1c978c3d1413b8a5a4c777d3
|
F src/pragma.c 4496cc77dc35824e1c978c3d1413b8a5a4c777d3
|
||||||
@ -87,7 +87,7 @@ F src/update.c 14be4ba2f438919b4217085c02feff569e6cf1f2
|
|||||||
F src/utf.c 1199766bbb0157931a83aa6eede6b6381177be64
|
F src/utf.c 1199766bbb0157931a83aa6eede6b6381177be64
|
||||||
F src/util.c 82ee598519b8193184bdeab06b51a4ffa05ad60b
|
F src/util.c 82ee598519b8193184bdeab06b51a4ffa05ad60b
|
||||||
F src/vacuum.c 3865673cc66acd0717ecd517f6b8fdb2a5e7924b
|
F src/vacuum.c 3865673cc66acd0717ecd517f6b8fdb2a5e7924b
|
||||||
F src/vdbe.c bda7131d98f2a742f864f9bbbb5249f3c0c6b432
|
F src/vdbe.c 799e6280aef25bae55d2da21b5a6dbdda5e76e36
|
||||||
F src/vdbe.h 8729a4ee16ff9aeab2af9667df3cf300ff978e13
|
F src/vdbe.h 8729a4ee16ff9aeab2af9667df3cf300ff978e13
|
||||||
F src/vdbeInt.h eb3f86ab08ef11635bc78eb88c3ff13f923c233b
|
F src/vdbeInt.h eb3f86ab08ef11635bc78eb88c3ff13f923c233b
|
||||||
F src/vdbeapi.c dcb2636f49b4807e34960d52a2fc257b3a751140
|
F src/vdbeapi.c dcb2636f49b4807e34960d52a2fc257b3a751140
|
||||||
@ -172,7 +172,7 @@ F test/insert2.test 5a20e1ace5fa0800b58d28284212290189b49aed
|
|||||||
F test/insert3.test 0096bd9766f94f4fa06ef712658e590b782cb44f
|
F test/insert3.test 0096bd9766f94f4fa06ef712658e590b782cb44f
|
||||||
F test/interrupt.test cd24dc5bedd02325be4bfa5d6209fae01c465157
|
F test/interrupt.test cd24dc5bedd02325be4bfa5d6209fae01c465157
|
||||||
F test/intpkey.test af4fd826c4784ec5c93b444de07adea0254d0d30
|
F test/intpkey.test af4fd826c4784ec5c93b444de07adea0254d0d30
|
||||||
F test/ioerr.test 35637957d7d5c6385bd94e8a6f067b5016219c03
|
F test/ioerr.test 42581999ad54d5afe4d703550b1faf308e8cb53c
|
||||||
F test/join.test db3802739fb695bdfa2e88805e3d64ec5ffbebd1
|
F test/join.test db3802739fb695bdfa2e88805e3d64ec5ffbebd1
|
||||||
F test/join2.test f2171c265e57ee298a27e57e7051d22962f9f324
|
F test/join2.test f2171c265e57ee298a27e57e7051d22962f9f324
|
||||||
F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0
|
F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0
|
||||||
@ -237,7 +237,7 @@ F test/table.test 6dc0dfa44dd429520e0e5a0c5e55025f730e9403
|
|||||||
F test/tableapi.test 6a66d58b37d46dc0f2b3c7d4bd2617d209399bd1
|
F test/tableapi.test 6a66d58b37d46dc0f2b3c7d4bd2617d209399bd1
|
||||||
F test/tclsqlite.test 96f5dbba15df0523e889b8d892f152c2f60b8efb
|
F test/tclsqlite.test 96f5dbba15df0523e889b8d892f152c2f60b8efb
|
||||||
F test/temptable.test c36f3e5a94507abb64f7ba23deeb4e1a8a8c3821
|
F test/temptable.test c36f3e5a94507abb64f7ba23deeb4e1a8a8c3821
|
||||||
F test/tester.tcl 0a939262ccb0b87449f98d8780396a4c293831b0
|
F test/tester.tcl 66a4bfa61a05e08ea523ef077e7ad0eab090c327
|
||||||
F test/thread1.test 776c9e459b75ba905193b351926ac4019b049f35
|
F test/thread1.test 776c9e459b75ba905193b351926ac4019b049f35
|
||||||
F test/thread2.test 6d7b30102d600f51b4055ee3a5a19228799049fb
|
F test/thread2.test 6d7b30102d600f51b4055ee3a5a19228799049fb
|
||||||
F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
|
F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
|
||||||
@ -344,7 +344,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
|
|||||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||||
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
|
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
|
||||||
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
|
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
|
||||||
P 50964ef9b0159bfdcd7eae88b0806957cab184dc
|
P d86f18a4277ebffb644ba2e574e0b697c8bbf8e4
|
||||||
R fc67d17ec10c28fa4fe646ce8c0e9586
|
R 7dfccdc93457a7fd816b98a21dcb1bda
|
||||||
U danielk1977
|
U danielk1977
|
||||||
Z 38f8621f1508c75b5e0809f898b0dbd0
|
Z aa3b02a91bab4996b62f927ed568dabe
|
||||||
|
@ -1 +1 @@
|
|||||||
d86f18a4277ebffb644ba2e574e0b697c8bbf8e4
|
c30705a00d7d9d61fb9cb47a1019b1a186d690a7
|
32
src/main.c
32
src/main.c
@ -14,7 +14,7 @@
|
|||||||
** other files are for internal use by SQLite and should not be
|
** other files are for internal use by SQLite and should not be
|
||||||
** accessed by users of the library.
|
** accessed by users of the library.
|
||||||
**
|
**
|
||||||
** $Id: main.c,v 1.329 2006/01/19 17:42:51 drh Exp $
|
** $Id: main.c,v 1.330 2006/01/24 13:09:33 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
@ -1088,23 +1088,21 @@ int sqlite3Corrupt(void){
|
|||||||
*/
|
*/
|
||||||
int sqlite3_enable_shared_cache(int enable){
|
int sqlite3_enable_shared_cache(int enable){
|
||||||
ThreadData *pTd = sqlite3ThreadData();
|
ThreadData *pTd = sqlite3ThreadData();
|
||||||
if( !pTd ){
|
if( pTd ){
|
||||||
return SQLITE_NOMEM;
|
/* It is only legal to call sqlite3_enable_shared_cache() when there
|
||||||
}
|
** are no currently open b-trees that were opened by the calling thread.
|
||||||
|
** This condition is only easy to detect if the shared-cache were
|
||||||
/* It is only legal to call sqlite3_enable_shared_cache() when there
|
** previously enabled (and is being disabled).
|
||||||
** are no currently open b-trees that were opened by the calling thread.
|
*/
|
||||||
** This condition is only easy to detect if the shared-cache were
|
if( pTd->pBtree && !enable ){
|
||||||
** previously enabled (and is being disabled).
|
assert( pTd->useSharedData );
|
||||||
*/
|
return SQLITE_MISUSE;
|
||||||
if( pTd->pBtree && !enable ){
|
}
|
||||||
assert( pTd->useSharedData );
|
|
||||||
return SQLITE_MISUSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
pTd->useSharedData = enable;
|
pTd->useSharedData = enable;
|
||||||
sqlite3ReleaseThreadData();
|
sqlite3ReleaseThreadData();
|
||||||
return SQLITE_OK;
|
}
|
||||||
|
return sqlite3ApiExit(0, SQLITE_OK);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
** file simultaneously, or one process from reading the database while
|
** file simultaneously, or one process from reading the database while
|
||||||
** another is writing.
|
** another is writing.
|
||||||
**
|
**
|
||||||
** @(#) $Id: pager.c,v 1.255 2006/01/24 12:09:19 danielk1977 Exp $
|
** @(#) $Id: pager.c,v 1.256 2006/01/24 13:09:33 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#ifndef SQLITE_OMIT_DISKIO
|
#ifndef SQLITE_OMIT_DISKIO
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
@ -1778,9 +1778,10 @@ void enable_simulated_io_errors(void){
|
|||||||
void sqlite3pager_read_fileheader(Pager *pPager, int N, unsigned char *pDest){
|
void sqlite3pager_read_fileheader(Pager *pPager, int N, unsigned char *pDest){
|
||||||
memset(pDest, 0, N);
|
memset(pDest, 0, N);
|
||||||
if( MEMDB==0 ){
|
if( MEMDB==0 ){
|
||||||
|
disable_simulated_io_errors();
|
||||||
sqlite3OsSeek(pPager->fd, 0);
|
sqlite3OsSeek(pPager->fd, 0);
|
||||||
sqlite3OsRead(pPager->fd, pDest, N);
|
sqlite3OsRead(pPager->fd, pDest, N);
|
||||||
clear_simulated_io_error();
|
enable_simulated_io_errors();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
** in this file for details. If in doubt, do not deviate from existing
|
** in this file for details. If in doubt, do not deviate from existing
|
||||||
** commenting and indentation practices when changing or adding code.
|
** commenting and indentation practices when changing or adding code.
|
||||||
**
|
**
|
||||||
** $Id: vdbe.c,v 1.538 2006/01/24 12:09:20 danielk1977 Exp $
|
** $Id: vdbe.c,v 1.539 2006/01/24 13:09:33 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
@ -2971,7 +2971,7 @@ case OP_IsUnique: { /* no-push */
|
|||||||
assert( pCx!=0 );
|
assert( pCx!=0 );
|
||||||
pCrsr = pCx->pCursor;
|
pCrsr = pCx->pCursor;
|
||||||
if( pCrsr!=0 ){
|
if( pCrsr!=0 ){
|
||||||
int res, rc;
|
int res;
|
||||||
i64 v; /* The record number on the P1 entry that matches K */
|
i64 v; /* The record number on the P1 entry that matches K */
|
||||||
char *zKey; /* The value of K */
|
char *zKey; /* The value of K */
|
||||||
int nKey; /* Number of bytes in K */
|
int nKey; /* Number of bytes in K */
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
# The tests in this file use special facilities that are only
|
# The tests in this file use special facilities that are only
|
||||||
# available in the SQLite test fixture.
|
# available in the SQLite test fixture.
|
||||||
#
|
#
|
||||||
# $Id: ioerr.test,v 1.24 2006/01/23 16:25:22 drh Exp $
|
# $Id: ioerr.test,v 1.25 2006/01/24 13:09:33 danielk1977 Exp $
|
||||||
|
|
||||||
set testdir [file dirname $argv0]
|
set testdir [file dirname $argv0]
|
||||||
source $testdir/tester.tcl
|
source $testdir/tester.tcl
|
||||||
@ -44,7 +44,7 @@ do_ioerr_test ioerr-1 -sqlprep {
|
|||||||
COMMIT;
|
COMMIT;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DELETE FROM t1 WHERE a<100;
|
DELETE FROM t1 WHERE a<100;
|
||||||
} -exclude [expr [string match [execsql {pragma auto_vacuum}] 1] ? 8 : 0]
|
} -exclude [expr [string match [execsql {pragma auto_vacuum}] 1] ? 4 : 0]
|
||||||
|
|
||||||
# Test for IO errors during a VACUUM.
|
# Test for IO errors during a VACUUM.
|
||||||
#
|
#
|
||||||
@ -75,7 +75,7 @@ ifcapable vacuum {
|
|||||||
} -sqlbody {
|
} -sqlbody {
|
||||||
VACUUM;
|
VACUUM;
|
||||||
} -exclude [list \
|
} -exclude [list \
|
||||||
1 [expr [string match [execsql {pragma auto_vacuum}] 1]?12:-1]]
|
1 [expr [string match [execsql {pragma auto_vacuum}] 1]?9:-1]]
|
||||||
}
|
}
|
||||||
|
|
||||||
do_ioerr_test ioerr-3 -tclprep {
|
do_ioerr_test ioerr-3 -tclprep {
|
||||||
@ -120,7 +120,7 @@ do_ioerr_test ioerr-4 -tclprep {
|
|||||||
# reason as in test cases ioerr-1.XXX
|
# reason as in test cases ioerr-1.XXX
|
||||||
set ex ""
|
set ex ""
|
||||||
if {[string match [execsql {pragma auto_vacuum}] 1]} {
|
if {[string match [execsql {pragma auto_vacuum}] 1]} {
|
||||||
set ex [list 8 17]
|
set ex [list 4 17]
|
||||||
}
|
}
|
||||||
do_ioerr_test ioerr-5 -sqlprep {
|
do_ioerr_test ioerr-5 -sqlprep {
|
||||||
ATTACH 'test2.db' AS test2;
|
ATTACH 'test2.db' AS test2;
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
# This file implements some common TCL routines used for regression
|
# This file implements some common TCL routines used for regression
|
||||||
# testing the SQLite library
|
# testing the SQLite library
|
||||||
#
|
#
|
||||||
# $Id: tester.tcl,v 1.63 2006/01/21 12:08:55 danielk1977 Exp $
|
# $Id: tester.tcl,v 1.64 2006/01/24 13:09:33 danielk1977 Exp $
|
||||||
|
|
||||||
# Make sure tclsqlite3 was compiled correctly. Abort now with an
|
# Make sure tclsqlite3 was compiled correctly. Abort now with an
|
||||||
# error message if not.
|
# error message if not.
|
||||||
@ -382,9 +382,10 @@ proc do_ioerr_test {testname args} {
|
|||||||
set r [catch $::ioerrorbody msg]
|
set r [catch $::ioerrorbody msg]
|
||||||
set ::go [expr {$::sqlite_io_error_pending<=0}]
|
set ::go [expr {$::sqlite_io_error_pending<=0}]
|
||||||
set s [expr $::sqlite_io_error_hit==0]
|
set s [expr $::sqlite_io_error_hit==0]
|
||||||
|
set ::sqlite_io_error_hit 0
|
||||||
# puts "$::sqlite_io_error_pending $r $msg"
|
# puts "$::sqlite_io_error_pending $r $msg"
|
||||||
# puts "r=$r s=$s msg=\"$msg\""
|
# puts "r=$r s=$s go=$::go msg=\"$msg\""
|
||||||
expr { ($s && !$r) || (!$s && $r) }
|
expr { ($s && !$r && !$::go) || (!$s && $r && $::go) }
|
||||||
# expr {$::sqlite_io_error_pending>0 || $r!=0}
|
# expr {$::sqlite_io_error_pending>0 || $r!=0}
|
||||||
} {1}
|
} {1}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user