1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-12 13:01:09 +03:00

Merge updates from trunk.

FossilOrigin-Name: 375dfe288fd0c4eb3c343a3cb23a7e3851903805
This commit is contained in:
mistachkin
2013-08-29 01:11:45 +00:00
6 changed files with 148 additions and 113 deletions

View File

@@ -94,6 +94,14 @@ WIN32HEAP = 0
DEBUG = 0 DEBUG = 0
!ENDIF !ENDIF
# Enable use of available compiler optimizations? Normally, this should be
# non-zero. Setting this to zero, thus disabling all compiler optimizations,
# can be useful for testing.
#
!IFNDEF OPTIMIZATIONS
OPTIMIZATIONS = 2
!ENDIF
# Check for the predefined command macro CC. This should point to the compiler # Check for the predefined command macro CC. This should point to the compiler
# binary for the target platform. If it is not defined, simply define it to # binary for the target platform. If it is not defined, simply define it to
# the legacy default value 'cl.exe'. # the legacy default value 'cl.exe'.
@@ -343,11 +351,15 @@ TCLSH_CMD = tclsh85
# Compiler options needed for programs that use the readline() library. # Compiler options needed for programs that use the readline() library.
# #
!IFNDEF READLINE_FLAGS
READLINE_FLAGS = -DHAVE_READLINE=0 READLINE_FLAGS = -DHAVE_READLINE=0
!ENDIF
# The library that programs using readline() must link against. # The library that programs using readline() must link against.
# #
!IFNDEF LIBREADLINE
LIBREADLINE = LIBREADLINE =
!ENDIF
# Should the database engine be compiled threadsafe # Should the database engine be compiled threadsafe
# #
@@ -397,17 +409,30 @@ RCC = $(RCC) $(OPT_FEATURE_FLAGS)
TCC = $(TCC) $(OPTS) TCC = $(TCC) $(OPTS)
RCC = $(RCC) $(OPTS) RCC = $(RCC) $(OPTS)
# If symbols are enabled, enable PDBs. # If compiling for debugging, add some defines.
# If debugging is enabled, disable all optimizations and enable PDBs.
!IF $(DEBUG)>0 !IF $(DEBUG)>0
TCC = $(TCC) -Od -D_DEBUG TCC = $(TCC) -D_DEBUG
BCC = $(BCC) -Od -D_DEBUG BCC = $(BCC) -D_DEBUG
RCC = $(RCC) -D_DEBUG RCC = $(RCC) -D_DEBUG
!ELSE
TCC = $(TCC) -O2
BCC = $(BCC) -O2
!ENDIF !ENDIF
# If optimizations are enabled or disabled (either implicitly or
# explicitly), add the necessary flags.
!IF $(DEBUG)>0 || $(OPTIMIZATIONS)==0
TCC = $(TCC) -Od
BCC = $(BCC) -Od
!ELSEIF $(OPTIMIZATIONS)>=3
TCC = $(TCC) -Ox
BCC = $(BCC) -Ox
!ELSEIF $(OPTIMIZATIONS)==2
TCC = $(TCC) -O2
BCC = $(BCC) -O2
!ELSEIF $(OPTIMIZATIONS)==1
TCC = $(TCC) -O1
BCC = $(BCC) -O1
!ENDIF
# If symbols are enabled (or compiling for debugging), enable PDBs.
!IF $(DEBUG)>0 || $(SYMBOLS)!=0 !IF $(DEBUG)>0 || $(SYMBOLS)!=0
TCC = $(TCC) -Zi TCC = $(TCC) -Zi
BCC = $(BCC) -Zi BCC = $(BCC) -Zi
@@ -465,7 +490,9 @@ LTLIBS = $(LTLIBS) $(LIBICU)
!ENDIF !ENDIF
# nawk compatible awk. # nawk compatible awk.
!IFNDEF NAWK
NAWK = gawk.exe NAWK = gawk.exe
!ENDIF
# You should not have to change anything below this line # You should not have to change anything below this line
############################################################################### ###############################################################################

View File

@@ -1,9 +1,9 @@
C Fix\sboundary\scase\sfor\sthe\storeal()\sSQL\sfunction. C Merge\supdates\sfrom\strunk.
D 2013-08-29T01:01:11.268 D 2013-08-29T01:11:45.298
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F Makefile.msc e9f41f89111627baaabd95cab4988b8d1c3e47c9 F Makefile.msc a97163524522cd829cb91bcf900d07608e025502
F Makefile.vxworks db21ed42a01d5740e656b16f92cb5d8d5e5dd315 F Makefile.vxworks db21ed42a01d5740e656b16f92cb5d8d5e5dd315
F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6 F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
F VERSION a8d1f6839521130dc73c5408cdd24bcfd791df34 F VERSION a8d1f6839521130dc73c5408cdd24bcfd791df34
@@ -818,7 +818,7 @@ F test/tclsqlite.test 37a61c2da7e3bfe3b8c1a2867199f6b860df5d43
F test/tempdb.test 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c F test/tempdb.test 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c
F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30 F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30
F test/temptrigger.test 26670ed7a39cf2296a7f0a9e0a1d7bdb7abe936d F test/temptrigger.test 26670ed7a39cf2296a7f0a9e0a1d7bdb7abe936d
F test/tester.tcl 63b24679c75a952c51f924de2802b2b57cddd22d F test/tester.tcl 5e97d1fe08f45fa3cc2320cee437e315c75ce995
F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5 F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5
F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58 F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58
F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7
@@ -1058,9 +1058,9 @@ F test/whereD.test 6c2feb79ef1f68381b07f39017fe5f9b96da8d62
F test/whereE.test b3a055eef928c992b0a33198a7b8dc10eea5ad2f F test/whereE.test b3a055eef928c992b0a33198a7b8dc10eea5ad2f
F test/whereF.test 136a7301512d72a08a272806c8767066311b7bc1 F test/whereF.test 136a7301512d72a08a272806c8767066311b7bc1
F test/wherelimit.test 5e9fd41e79bb2b2d588ed999d641d9c965619b31 F test/wherelimit.test 5e9fd41e79bb2b2d588ed999d641d9c965619b31
F test/wild001.test 384db4b30fbe82eaaefe8921f8a702c09e26db27 F test/wild001.test bca33f499866f04c24510d74baf1e578d4e44b1c
F test/win32lock.test 7a6bd73a5dcdee39b5bb93e92395e1773a194361 F test/win32lock.test 7a6bd73a5dcdee39b5bb93e92395e1773a194361
F test/win32longpath.test f888106783fc26515f393c8848c94cd6166addbb F test/win32longpath.test e2aafc07e6990fe86c69be22a3d1a0e210cd329b
F test/zeroblob.test caaecfb4f908f7bc086ed238668049f96774d688 F test/zeroblob.test caaecfb4f908f7bc086ed238668049f96774d688
F test/zerodamage.test 209d7ed441f44cc5299e4ebffbef06fd5aabfefd F test/zerodamage.test 209d7ed441f44cc5299e4ebffbef06fd5aabfefd
F tool/build-all-msvc.bat c55f64ca200308fb5fa5c1ee751ea95a13977b5a x F tool/build-all-msvc.bat c55f64ca200308fb5fa5c1ee751ea95a13977b5a x
@@ -1109,7 +1109,7 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
P ffc6e682836cdf275189427109f8af2aeb423bcd P abe82c634ccda7d62687df5917d18a9d6e411142 9229aeb361f9805894321327d05aba855b8799f3
R 5b28ae921fcc930fbdb4ed7973c09a22 R 37bb2eb70562f6e2f1a6470983432e85
U mistachkin U mistachkin
Z eee04e7f47bd53db98c6ff93d7e968bb Z 8236c13d7d380aaddad2f7d32e5c8a7f

View File

@@ -1 +1 @@
abe82c634ccda7d62687df5917d18a9d6e411142 375dfe288fd0c4eb3c343a3cb23a7e3851903805

View File

@@ -42,6 +42,7 @@
# #
# Commands to execute/explain SQL statements: # Commands to execute/explain SQL statements:
# #
# memdbsql SQL
# stepsql DB SQL # stepsql DB SQL
# execsql2 SQL # execsql2 SQL
# explain_no_trace SQL # explain_no_trace SQL
@@ -291,6 +292,66 @@ proc do_delete_file {force args} {
} }
} }
if {$::tcl_platform(platform) eq "windows"} {
proc do_remove_win32_dir {args} {
set nRetry [getFileRetries] ;# Maximum number of retries.
set nDelay [getFileRetryDelay] ;# Delay in ms before retrying.
foreach dirName $args {
# On windows, sometimes even a [remove_win32_dir] can fail just after
# a directory is emptied. The cause is usually "tag-alongs" - programs
# like anti-virus software, automatic backup tools and various explorer
# extensions that keep a file open a little longer than we expect,
# causing the delete to fail.
#
# The solution is to wait a short amount of time before retrying the
# removal.
#
if {$nRetry > 0} {
for {set i 0} {$i < $nRetry} {incr i} {
set rc [catch {
remove_win32_dir $dirName
} msg]
if {$rc == 0} break
if {$nDelay > 0} { after $nDelay }
}
if {$rc} { error $msg }
} else {
remove_win32_dir $dirName
}
}
}
proc do_delete_win32_file {args} {
set nRetry [getFileRetries] ;# Maximum number of retries.
set nDelay [getFileRetryDelay] ;# Delay in ms before retrying.
foreach fileName $args {
# On windows, sometimes even a [delete_win32_file] can fail just after
# a file is closed. The cause is usually "tag-alongs" - programs like
# anti-virus software, automatic backup tools and various explorer
# extensions that keep a file open a little longer than we expect,
# causing the delete to fail.
#
# The solution is to wait a short amount of time before retrying the
# delete.
#
if {$nRetry > 0} {
for {set i 0} {$i < $nRetry} {incr i} {
set rc [catch {
delete_win32_file $fileName
} msg]
if {$rc == 0} break
if {$nDelay > 0} { after $nDelay }
}
if {$rc} { error $msg }
} else {
delete_win32_file $fileName
}
}
}
}
proc execpresql {handle args} { proc execpresql {handle args} {
trace remove execution $handle enter [list execpresql $handle] trace remove execution $handle enter [list execpresql $handle]
if {[info exists ::G(perm:presql)]} { if {[info exists ::G(perm:presql)]} {
@@ -984,6 +1045,15 @@ proc execsql2 {sql} {
return $result return $result
} }
# Use a temporary in-memory database to execute SQL statements
#
proc memdbsql {sql} {
sqlite3 memdb :memory:
set result [memdb eval $sql]
memdb close
return $result
}
# Use the non-callback API to execute multiple SQL statements # Use the non-callback API to execute multiple SQL statements
# #
proc stepsql {dbptr sql} { proc stepsql {dbptr sql} {

View File

@@ -42,10 +42,6 @@
set testdir [file dirname $argv0] set testdir [file dirname $argv0]
source $testdir/tester.tcl source $testdir/tester.tcl
# TODO: Reenable this test.
finish_test
return
ifcapable !stat3 { ifcapable !stat3 {
finish_test finish_test
return return

View File

@@ -19,64 +19,6 @@ set testdir [file dirname $argv0]
source $testdir/tester.tcl source $testdir/tester.tcl
set testprefix win32longpath set testprefix win32longpath
proc do_remove_win32_dir {args} {
set nRetry [getFileRetries] ;# Maximum number of retries.
set nDelay [getFileRetryDelay] ;# Delay in ms before retrying.
foreach dirName $args {
# On windows, sometimes even a [remove_win32_dir] can fail just after
# a directory is emptied. The cause is usually "tag-alongs" - programs
# like anti-virus software, automatic backup tools and various explorer
# extensions that keep a file open a little longer than we expect,
# causing the delete to fail.
#
# The solution is to wait a short amount of time before retrying the
# removal.
#
if {$nRetry > 0} {
for {set i 0} {$i < $nRetry} {incr i} {
set rc [catch {
remove_win32_dir $dirName
} msg]
if {$rc == 0} break
if {$nDelay > 0} { after $nDelay }
}
if {$rc} { error $msg }
} else {
remove_win32_dir $dirName
}
}
}
proc do_delete_win32_file {args} {
set nRetry [getFileRetries] ;# Maximum number of retries.
set nDelay [getFileRetryDelay] ;# Delay in ms before retrying.
foreach fileName $args {
# On windows, sometimes even a [delete_win32_file] can fail just after
# a file is closed. The cause is usually "tag-alongs" - programs like
# anti-virus software, automatic backup tools and various explorer
# extensions that keep a file open a little longer than we expect,
# causing the delete to fail.
#
# The solution is to wait a short amount of time before retrying the
# delete.
#
if {$nRetry > 0} {
for {set i 0} {$i < $nRetry} {incr i} {
set rc [catch {
delete_win32_file $fileName
} msg]
if {$rc == 0} break
if {$nDelay > 0} { after $nDelay }
}
if {$rc} { error $msg }
} else {
delete_win32_file $fileName
}
}
}
db close db close
set path [file nativename [get_pwd]] set path [file nativename [get_pwd]]
sqlite3 db [file join $path test.db] -vfs win32-longpath sqlite3 db [file join $path test.db] -vfs win32-longpath