1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-10 01:02:56 +03:00

Merge updates from trunk.

FossilOrigin-Name: ca5f2c545216c82486e66d26f55b49cbf351ffdc
This commit is contained in:
mistachkin
2015-01-12 18:52:57 +00:00
20 changed files with 261 additions and 342 deletions

View File

@@ -41,7 +41,7 @@ TCC += -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite
# Omitting the define will cause extra debugging code to be inserted and # Omitting the define will cause extra debugging code to be inserted and
# includes extra comments when "EXPLAIN stmt" is used. # includes extra comments when "EXPLAIN stmt" is used.
# #
TCC += @TARGET_DEBUG@ @XTHREADCONNECT@ TCC += @TARGET_DEBUG@
# Compiler options needed for programs that use the TCL library. # Compiler options needed for programs that use the TCL library.
# #

View File

@@ -27,6 +27,9 @@
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
/* Define to 1 if you have the `isnan' function. */
#undef HAVE_ISNAN
/* Define to 1 if you have the `localtime_r' function. */ /* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R #undef HAVE_LOCALTIME_R
@@ -48,6 +51,9 @@
/* Define to 1 if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H #undef HAVE_STDLIB_H
/* Define to 1 if you have the strchrnul() function */
#undef HAVE_STRCHRNUL
/* Define to 1 if you have the <strings.h> header file. */ /* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H #undef HAVE_STRINGS_H

112
configure vendored
View File

@@ -868,7 +868,6 @@ RELEASE
VERSION_NUMBER VERSION_NUMBER
BUILD_CC BUILD_CC
SQLITE_THREADSAFE SQLITE_THREADSAFE
XTHREADCONNECT
ALLOWRELEASE ALLOWRELEASE
TEMP_STORE TEMP_STORE
BUILD_EXEEXT BUILD_EXEEXT
@@ -906,9 +905,7 @@ enable_fast_install
with_gnu_ld with_gnu_ld
enable_libtool_lock enable_libtool_lock
enable_largefile enable_largefile
with_hints
enable_threadsafe enable_threadsafe
enable_cross_thread_connections
enable_releasemode enable_releasemode
enable_tempstore enable_tempstore
enable_tcl enable_tcl
@@ -1562,9 +1559,7 @@ Optional Features:
optimize for fast installation [default=yes] optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds) --disable-libtool-lock avoid locking (might break parallel builds)
--disable-largefile omit support for large files --disable-largefile omit support for large files
--enable-threadsafe Support threadsafe operation --disable-threadsafe Disable mutexing
--enable-cross-thread-connections
Allow connection sharing across threads
--enable-releasemode Support libtool link to release mode --enable-releasemode Support libtool link to release mode
--enable-tempstore Use an in-ram database for temporary tables --enable-tempstore Use an in-ram database for temporary tables
(never,no,yes,always) (never,no,yes,always)
@@ -1573,7 +1568,8 @@ Optional Features:
--enable-debug enable debugging & verbose explain --enable-debug enable debugging & verbose explain
--disable-amalgamation Disable the amalgamation and instead build all files --disable-amalgamation Disable the amalgamation and instead build all files
separately separately
--enable-load-extension Enable loading of external extensions --disable-load-extension
Disable loading of external extensions
--enable-gcov Enable coverage testing using gcov --enable-gcov Enable coverage testing using gcov
Optional Packages: Optional Packages:
@@ -1582,7 +1578,6 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use --with-pic try to use only PIC/non-PIC objects [default=use
both] both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-hints=FILE Read configuration options from FILE
--with-tcl=DIR directory containing tcl configuration --with-tcl=DIR directory containing tcl configuration
(tclConfig.sh) (tclConfig.sh)
--with-readline-lib specify readline library --with-readline-lib specify readline library
@@ -2058,9 +2053,6 @@ please regen with autoconf" >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
fi fi
# The following RCS revision string applies to configure.in
# $Revision: 1.56 $
######### #########
# Programs needed # Programs needed
# #
@@ -3732,13 +3724,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
else else
lt_cv_nm_interface="BSD nm" lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:3735: $ac_compile\"" >&5) (eval echo "\"\$as_me:3727: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err) (eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5 cat conftest.err >&5
(eval echo "\"\$as_me:3738: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval echo "\"\$as_me:3730: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5 cat conftest.err >&5
(eval echo "\"\$as_me:3741: output\"" >&5) (eval echo "\"\$as_me:3733: output\"" >&5)
cat conftest.out >&5 cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin" lt_cv_nm_interface="MS dumpbin"
@@ -4960,7 +4952,7 @@ ia64-*-hpux*)
;; ;;
*-*-irix6*) *-*-irix6*)
# Find out which ABI we are using. # Find out which ABI we are using.
echo '#line 4963 "configure"' > conftest.$ac_ext echo '#line 4955 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@@ -6829,11 +6821,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:6832: $lt_compile\"" >&5) (eval echo "\"\$as_me:6824: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:6836: \$? = $ac_status" >&5 echo "$as_me:6828: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@@ -7168,11 +7160,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7171: $lt_compile\"" >&5) (eval echo "\"\$as_me:7163: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:7175: \$? = $ac_status" >&5 echo "$as_me:7167: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@@ -7273,11 +7265,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7276: $lt_compile\"" >&5) (eval echo "\"\$as_me:7268: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:7280: \$? = $ac_status" >&5 echo "$as_me:7272: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@@ -7328,11 +7320,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7331: $lt_compile\"" >&5) (eval echo "\"\$as_me:7323: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:7335: \$? = $ac_status" >&5 echo "$as_me:7327: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@@ -10141,7 +10133,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 10144 "configure" #line 10136 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@@ -10237,7 +10229,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 10240 "configure" #line 10232 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@@ -12146,7 +12138,9 @@ done
for ac_func in usleep fdatasync localtime_r gmtime_r localtime_s utime malloc_usable_size
for ac_func in fdatasync gmtime_r isnan localtime_r localtime_s malloc_usabel_size strchrnul usleep utime
do do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -12342,45 +12336,6 @@ VERSION_NUMBER=`cat $srcdir/VERSION \
$as_echo "$as_me: Version number set to $VERSION_NUMBER" >&6;} $as_echo "$as_me: Version number set to $VERSION_NUMBER" >&6;}
#########
# Check to see if the --with-hints=FILE option is used. If there is none,
# then check for a files named "$host.hints" and ../$hosts.hints where
# $host is the hostname of the build system. If still no hints are
# found, try looking in $system.hints and ../$system.hints where
# $system is the result of uname -s.
#
# Check whether --with-hints was given.
if test "${with_hints+set}" = set; then
withval=$with_hints; hints=$withval
fi
if test "$hints" = ""; then
host=`hostname | sed 's/\..*//'`
if test -r $host.hints; then
hints=$host.hints
else
if test -r ../$host.hints; then
hints=../$host.hints
fi
fi
fi
if test "$hints" = ""; then
sys=`uname -s`
if test -r $sys.hints; then
hints=$sys.hints
else
if test -r ../$sys.hints; then
hints=../$sys.hints
fi
fi
fi
if test "$hints" != ""; then
{ $as_echo "$as_me:$LINENO: result: reading hints from $hints" >&5
$as_echo "reading hints from $hints" >&6; }
. $hints
fi
######### #########
# Locate a compiler for the build machine. This compiler should # Locate a compiler for the build machine. This compiler should
# generate command-line programs that run on the build machine. # generate command-line programs that run on the build machine.
@@ -12552,31 +12507,6 @@ fi
fi fi
##########
# Do we want to allow a connection created in one thread to be used
# in another thread. This does not work on many Linux systems (ex: RedHat 9)
# due to bugs in the threading implementations. This is thus off by default.
#
# Check whether --enable-cross-thread-connections was given.
if test "${enable_cross_thread_connections+set}" = set; then
enableval=$enable_cross_thread_connections;
else
enable_xthreadconnect=no
fi
{ $as_echo "$as_me:$LINENO: checking whether to allow connections to be shared across threads" >&5
$as_echo_n "checking whether to allow connections to be shared across threads... " >&6; }
if test "$enable_xthreadconnect" = "no"; then
XTHREADCONNECT=''
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
else
XTHREADCONNECT='-DSQLITE_ALLOW_XTHREAD_CONNECT=1'
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
fi
########## ##########
# Do we want to support release # Do we want to support release
# #
@@ -13427,7 +13357,7 @@ fi
if test "${enable_load_extension+set}" = set; then if test "${enable_load_extension+set}" = set; then
enableval=$enable_load_extension; use_loadextension=$enableval enableval=$enable_load_extension; use_loadextension=$enableval
else else
use_loadextension=no use_loadextension=yes
fi fi
if test "${use_loadextension}" = "yes" ; then if test "${use_loadextension}" = "yes" ; then

View File

@@ -69,19 +69,6 @@
# The filename extension for executables on the # The filename extension for executables on the
# target platform. "" for Unix and ".exe" for windows. # target platform. "" for Unix and ".exe" for windows.
# #
# The generated configure script will make an attempt to guess
# at all of the above parameters. You can override any of
# the guesses by setting the environment variable named
# "config_AAAA" where "AAAA" is the name of the parameter
# described above. (Exception: srcdir cannot be set this way.)
# If you have a file that sets one or more of these environment
# variables, you can invoke configure as follows:
#
# configure --with-hints=FILE
#
# where FILE is the name of the file that sets the environment
# variables. FILE should be an absolute pathname.
#
# This configure.in file is easy to reuse on other projects. Just # This configure.in file is easy to reuse on other projects. Just
# change the argument to AC_INIT(). And disable any features that # change the argument to AC_INIT(). And disable any features that
# you don't need (for example BLT) by erasing or commenting out # you don't need (for example BLT) by erasing or commenting out
@@ -98,11 +85,6 @@ AC_MSG_ERROR([configure script is out of date:
please regen with autoconf]) please regen with autoconf])
fi fi
dnl Put the RCS revision string after AC_INIT so that it will also
dnl show in in configure.
# The following RCS revision string applies to configure.in
# $Revision: 1.56 $
######### #########
# Programs needed # Programs needed
# #
@@ -127,7 +109,7 @@ AC_CHECK_HEADERS([sys/types.h stdlib.h stdint.h inttypes.h malloc.h])
######### #########
# Figure out whether or not we have these functions # Figure out whether or not we have these functions
# #
AC_CHECK_FUNCS([usleep fdatasync localtime_r gmtime_r localtime_s utime malloc_usable_size]) AC_CHECK_FUNCS([fdatasync gmtime_r isnan localtime_r localtime_s malloc_usabel_size strchrnul usleep utime])
######### #########
# By default, we use the amalgamation (this may be changed below...) # By default, we use the amalgamation (this may be changed below...)
@@ -180,41 +162,6 @@ VERSION_NUMBER=[`cat $srcdir/VERSION \
AC_MSG_NOTICE(Version number set to $VERSION_NUMBER) AC_MSG_NOTICE(Version number set to $VERSION_NUMBER)
AC_SUBST(VERSION_NUMBER) AC_SUBST(VERSION_NUMBER)
#########
# Check to see if the --with-hints=FILE option is used. If there is none,
# then check for a files named "$host.hints" and ../$hosts.hints where
# $host is the hostname of the build system. If still no hints are
# found, try looking in $system.hints and ../$system.hints where
# $system is the result of uname -s.
#
AC_ARG_WITH(hints,
AC_HELP_STRING([--with-hints=FILE],[Read configuration options from FILE]),
hints=$withval)
if test "$hints" = ""; then
host=`hostname | sed 's/\..*//'`
if test -r $host.hints; then
hints=$host.hints
else
if test -r ../$host.hints; then
hints=../$host.hints
fi
fi
fi
if test "$hints" = ""; then
sys=`uname -s`
if test -r $sys.hints; then
hints=$sys.hints
else
if test -r ../$sys.hints; then
hints=../$sys.hints
fi
fi
fi
if test "$hints" != ""; then
AC_MSG_RESULT(reading hints from $hints)
. $hints
fi
######### #########
# Locate a compiler for the build machine. This compiler should # Locate a compiler for the build machine. This compiler should
# generate command-line programs that run on the build machine. # generate command-line programs that run on the build machine.
@@ -236,7 +183,7 @@ AC_SUBST(BUILD_CC)
# Do we want to support multithreaded use of sqlite # Do we want to support multithreaded use of sqlite
# #
AC_ARG_ENABLE(threadsafe, AC_ARG_ENABLE(threadsafe,
AC_HELP_STRING([--enable-threadsafe],[Support threadsafe operation]),,enable_threadsafe=yes) AC_HELP_STRING([--disable-threadsafe],[Disable mutexing]),,enable_threadsafe=yes)
AC_MSG_CHECKING([whether to support threadsafe operation]) AC_MSG_CHECKING([whether to support threadsafe operation])
if test "$enable_threadsafe" = "no"; then if test "$enable_threadsafe" = "no"; then
SQLITE_THREADSAFE=0 SQLITE_THREADSAFE=0
@@ -251,23 +198,6 @@ if test "$SQLITE_THREADSAFE" = "1"; then
AC_SEARCH_LIBS(pthread_create, pthread) AC_SEARCH_LIBS(pthread_create, pthread)
fi fi
##########
# Do we want to allow a connection created in one thread to be used
# in another thread. This does not work on many Linux systems (ex: RedHat 9)
# due to bugs in the threading implementations. This is thus off by default.
#
AC_ARG_ENABLE(cross-thread-connections,
AC_HELP_STRING([--enable-cross-thread-connections],[Allow connection sharing across threads]),,enable_xthreadconnect=no)
AC_MSG_CHECKING([whether to allow connections to be shared across threads])
if test "$enable_xthreadconnect" = "no"; then
XTHREADCONNECT=''
AC_MSG_RESULT([no])
else
XTHREADCONNECT='-DSQLITE_ALLOW_XTHREAD_CONNECT=1'
AC_MSG_RESULT([yes])
fi
AC_SUBST(XTHREADCONNECT)
########## ##########
# Do we want to support release # Do we want to support release
# #
@@ -605,9 +535,9 @@ AC_SUBST(USE_AMALGAMATION)
######### #########
# See whether we should allow loadable extensions # See whether we should allow loadable extensions
AC_ARG_ENABLE(load-extension, AC_HELP_STRING([--enable-load-extension], AC_ARG_ENABLE(load-extension, AC_HELP_STRING([--disable-load-extension],
[Enable loading of external extensions]), [Disable loading of external extensions]),
[use_loadextension=$enableval],[use_loadextension=no]) [use_loadextension=$enableval],[use_loadextension=yes])
if test "${use_loadextension}" = "yes" ; then if test "${use_loadextension}" = "yes" ; then
OPT_FEATURE_FLAGS="" OPT_FEATURE_FLAGS=""
AC_SEARCH_LIBS(dlopen, dl) AC_SEARCH_LIBS(dlopen, dl)

View File

@@ -1,7 +1,7 @@
C Get\sthings\scompiling\scleanly\swith\sMSVC\sand\sW4. C Merge\supdates\sfrom\strunk.
D 2015-01-12T18:52:41.112 D 2015-01-12T18:52:57.919
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 33a180534a9ba2cf80f5f87e8288c26423d0a8d1 F Makefile.in 9efcdb5c6025caea362cdfc38817451170fc6344
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F Makefile.msc 2ed20e3ee252eb85dea357940a2e5e5649f9dd86 F Makefile.msc 2ed20e3ee252eb85dea357940a2e5e5649f9dd86
F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858 F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858
@@ -36,10 +36,10 @@ F autoconf/tea/win/makefile.vc f89d0184d0eee5f7e356ea407964dcd139939928
F autoconf/tea/win/nmakehlp.c 2070e086f39866b353a482d3a14dedaf26196506 F autoconf/tea/win/nmakehlp.c 2070e086f39866b353a482d3a14dedaf26196506
F autoconf/tea/win/rules.vc c511f222b80064096b705dbeb97060ee1d6b6d63 F autoconf/tea/win/rules.vc c511f222b80064096b705dbeb97060ee1d6b6d63
F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977 F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977
F config.h.in 0921066a13130082764ab4ab6456f7b5bebe56de F config.h.in 42b71ad3fe21c9e88fa59e8458ca1a6bc72eb0c0
F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55 F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55
F configure 4343c810cc772571210af75d1a8f7c2eb711d75a x F configure f0438487966ab02dd0357c4ad27f1082e70a4b34 x
F configure.ac 4cf9f60785143fa141b10962ccc885d973792e9a F configure.ac 0c94d28b0a839fd0f35ccebded2ea4aed4424d65
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
F doc/lemon.html 334dbf6621b8fb8790297ec1abf3cfa4621709d1 F doc/lemon.html 334dbf6621b8fb8790297ec1abf3cfa4621709d1
F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710 F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710
@@ -179,8 +179,8 @@ F src/btreeInt.h a3d0ae1d511365e1a2b76ad10960dbe55c286f34
F src/build.c f5cfd7b32216f695b995bbc7c1a395f6d451d11f F src/build.c f5cfd7b32216f695b995bbc7c1a395f6d451d11f
F src/callback.c 7b44ce59674338ad48b0e84e7b72f935ea4f68b0 F src/callback.c 7b44ce59674338ad48b0e84e7b72f935ea4f68b0
F src/complete.c 198a0066ba60ab06fc00fba1998d870a4d575463 F src/complete.c 198a0066ba60ab06fc00fba1998d870a4d575463
F src/ctime.c df19848891c8a553c80e6f5a035e768280952d1a F src/ctime.c 98f89724adc891a1a4c655bee04e33e716e05887
F src/date.c 53cedb541686b30eb5495753f0b622909a928780 F src/date.c e4d50b3283696836ec1036b695ead9a19e37a5ac
F src/delete.c bd1a91ddd247ce13004075251e0b7fe2bf9925ef F src/delete.c bd1a91ddd247ce13004075251e0b7fe2bf9925ef
F src/expr.c 7be80f7dc337329a24df45c2f3bdb2ea3b64c90e F src/expr.c 7be80f7dc337329a24df45c2f3bdb2ea3b64c90e
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
@@ -195,10 +195,10 @@ F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e
F src/lempar.c 7274c97d24bb46631e504332ccd3bd1b37841770 F src/lempar.c 7274c97d24bb46631e504332ccd3bd1b37841770
F src/loadext.c 86bd4e2fccd520b748cba52492ab60c4a770f660 F src/loadext.c 86bd4e2fccd520b748cba52492ab60c4a770f660
F src/main.c c82bc2650f64edfaf9c103342d0f8c58665213d4 F src/main.c 05bf368c934cc73d02906030846eb4d1818c10f7
F src/malloc.c 740db54387204c9a2eb67c6d98e68b08e9ef4eab F src/malloc.c 740db54387204c9a2eb67c6d98e68b08e9ef4eab
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c faf615aafd8be74a71494dfa027c113ea5c6615f F src/mem1.c abe6ee469b6c5a35c7f22bfeb9c9bac664a1c987
F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3 F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
F src/mem3.c 61c9d47b792908c532ca3a62b999cf21795c6534 F src/mem3.c 61c9d47b792908c532ca3a62b999cf21795c6534
F src/mem5.c 61eeb90134f9a5be6c2e68d8daae7628b25953fb F src/mem5.c 61eeb90134f9a5be6c2e68d8daae7628b25953fb
@@ -214,7 +214,7 @@ F src/os.c 8fd25588eeba74068d41102d26810e216999b6c8
F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04 F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
F src/os_unix.c 949cdedc74dbf3c17f2c9743064ce307026f871e F src/os_unix.c aefeaf915aaef9f81aa2645e0d5d06fa1bd83beb
F src/os_win.c 91d3d08e33ec0258d180d4c8255492f47d15e007 F src/os_win.c 91d3d08e33ec0258d180d4c8255492f47d15e007
F src/os_win.h 09e751b20bbc107ffbd46e13555dc73576d88e21 F src/os_win.h 09e751b20bbc107ffbd46e13555dc73576d88e21
F src/pager.c 4120a49ecd37697e28f5ed807f470b9c0b88410c F src/pager.c 4120a49ecd37697e28f5ed807f470b9c0b88410c
@@ -225,21 +225,21 @@ F src/pcache.h b44658c9c932d203510279439d891a2a83e12ba8
F src/pcache1.c 1e77432b40b7d3288327d9cdf399dcdfd2b6d3bf F src/pcache1.c 1e77432b40b7d3288327d9cdf399dcdfd2b6d3bf
F src/pragma.c ba149bbbc90783f84815636c509ced8eac11bbcf F src/pragma.c ba149bbbc90783f84815636c509ced8eac11bbcf
F src/prepare.c 173a5a499138451b2561614ecb87d78f9f4644b9 F src/prepare.c 173a5a499138451b2561614ecb87d78f9f4644b9
F src/printf.c 9e75a6a0b55bf61cfff7d7e19d89834a1b938236 F src/printf.c ea82bcb1b83273b4c67177c233c1f78c81fc42f9
F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
F src/resolve.c f6c46d3434439ab2084618d603e6d6dbeb0d6ada F src/resolve.c f6c46d3434439ab2084618d603e6d6dbeb0d6ada
F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
F src/select.c e4c38c75e36f28aed80a69a725d888751bfd53df F src/select.c e4c38c75e36f28aed80a69a725d888751bfd53df
F src/shell.c 0cebd04b204051652e969773af70feb42cf9bc2b F src/shell.c 5b8e786a7c8eec87fa3f2ea615b337d2d99e284c
F src/sqlite.h.in 9dfc99d6533d36d6a549c4f3f01cacc8be956ada F src/sqlite.h.in 9dfc99d6533d36d6a549c4f3f01cacc8be956ada
F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d
F src/sqliteInt.h f25fe9df72dfee0eedfde4bacd0f02077d557631 F src/sqliteInt.h eaf210295b551d4e40e622aec1b2261c0b28f844
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
F src/status.c 81712116e826b0089bb221b018929536b2b5406f F src/status.c 81712116e826b0089bb221b018929536b2b5406f
F src/table.c e7a09215315a978057fb42c640f890160dbcc45e F src/table.c e7a09215315a978057fb42c640f890160dbcc45e
F src/tclsqlite.c c6a21c64da1490e14d53cdc2062d1e2e57942622 F src/tclsqlite.c b1d0a181a9f8e8dae960370518a3450db93a6a8c
F src/test1.c 460d39e7abbcd0c61c9788c06e0d925f4d1e6a22 F src/test1.c 163cff8c4ebdda512e3b055716e3cc7f0e563a44
F src/test2.c 98049e51a17dc62606a99a9eb95ee477f9996712 F src/test2.c 98049e51a17dc62606a99a9eb95ee477f9996712
F src/test3.c 1c0e5d6f080b8e33c1ce8b3078e7013fdbcd560c F src/test3.c 1c0e5d6f080b8e33c1ce8b3078e7013fdbcd560c
F src/test4.c 9b32d22f5f150abe23c1830e2057c4037c45b3df F src/test4.c 9b32d22f5f150abe23c1830e2057c4037c45b3df
@@ -253,7 +253,7 @@ F src/test_autoext.c dea8a01a7153b9adc97bd26161e4226329546e12
F src/test_backup.c 3875e899222b651e18b662f86e0e50daa946344e F src/test_backup.c 3875e899222b651e18b662f86e0e50daa946344e
F src/test_blob.c 1f2e3e25255b731c4fcf15ee7990d06347cb6c09 F src/test_blob.c 1f2e3e25255b731c4fcf15ee7990d06347cb6c09
F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f
F src/test_config.c 035c17a173937d019b8dfc1d524f9d3fc8123504 F src/test_config.c e7b2e1634324d746aa5e1c7e0929470e8be27953
F src/test_demovfs.c 69b2085076654ebc18014cbc6386f04409c959a9 F src/test_demovfs.c 69b2085076654ebc18014cbc6386f04409c959a9
F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
F src/test_fs.c ced436e3d4b8e4681328409b8081051ce614e28f F src/test_fs.c ced436e3d4b8e4681328409b8081051ce614e28f
@@ -290,7 +290,7 @@ F src/tokenize.c e00458c9938072b0ea711c850b8dcf4ddcb5fe18
F src/trigger.c 25571661fdeae8c7f975ff40ffec205520a3f92f F src/trigger.c 25571661fdeae8c7f975ff40ffec205520a3f92f
F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13 F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13
F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
F src/util.c 3b627daa45c7308c1e36e3dbaa3f9ce7e5c7fa73 F src/util.c 98a7627ca48ad3265b6940915a1d08355eb3fc7e
F src/vacuum.c 9b30ec729337dd012ed88d4c292922c8ef9cf00c F src/vacuum.c 9b30ec729337dd012ed88d4c292922c8ef9cf00c
F src/vdbe.c ddfc977981cd6324668aa6b114045eb1c677421a F src/vdbe.c ddfc977981cd6324668aa6b114045eb1c677421a
F src/vdbe.h 6fc69d9c5e146302c56e163cb4b31d1ee64a18c3 F src/vdbe.h 6fc69d9c5e146302c56e163cb4b31d1ee64a18c3
@@ -299,7 +299,7 @@ F src/vdbeapi.c 4bc511a46b9839392ae0e90844a71dc96d9dbd71
F src/vdbeaux.c 07ef87c6d4b5abdf13ff33babb10205702fdab0a F src/vdbeaux.c 07ef87c6d4b5abdf13ff33babb10205702fdab0a
F src/vdbeblob.c 4af4bfb71f6df7778397b4a0ebc1879793276778 F src/vdbeblob.c 4af4bfb71f6df7778397b4a0ebc1879793276778
F src/vdbemem.c 31d8eabb0cd78bfeab4e5124c7363c3e9e54db9f F src/vdbemem.c 31d8eabb0cd78bfeab4e5124c7363c3e9e54db9f
F src/vdbesort.c 560bdfd9eb3ae3205196e0d64ccd1de925caa6c7 F src/vdbesort.c 6d64c5448b64851b99931ede980addc3af70d5e2
F src/vdbetrace.c 7e4222955e07dd707a2f360c0eb73452be1cb010 F src/vdbetrace.c 7e4222955e07dd707a2f360c0eb73452be1cb010
F src/vtab.c c08ec66f45919eaa726bf88aa53eb08379d607f9 F src/vtab.c c08ec66f45919eaa726bf88aa53eb08379d607f9
F src/wal.c 85353539f2d9d0c91ebd057c32525b1e1aa3335e F src/wal.c 85353539f2d9d0c91ebd057c32525b1e1aa3335e
@@ -802,7 +802,7 @@ F test/randexpr1.test eda062a97e60f9c38ae8d806b03b0ddf23d796df
F test/rdonly.test dd30a4858d8e0fbad2304c2bd74a33d4df36412a F test/rdonly.test dd30a4858d8e0fbad2304c2bd74a33d4df36412a
F test/regexp1.test 497ea812f264d12b6198d6e50a76be4a1973a9d8 F test/regexp1.test 497ea812f264d12b6198d6e50a76be4a1973a9d8
F test/reindex.test 44edd3966b474468b823d481eafef0c305022254 F test/reindex.test 44edd3966b474468b823d481eafef0c305022254
F test/releasetest.tcl 58ede36fff67c0799e44995f2b025f8854773c0a F test/releasetest.tcl 13f401c10dd4fe1a2fb811ae6ed27fd7d1300d3c
F test/resolver01.test 33abf37ff8335e6bf98f2b45a0af3e06996ccd9a F test/resolver01.test 33abf37ff8335e6bf98f2b45a0af3e06996ccd9a
F test/rollback.test 458fe73eb3ffdfdf9f6ba3e9b7350a6220414dea F test/rollback.test 458fe73eb3ffdfdf9f6ba3e9b7350a6220414dea
F test/rollback2.test fc14cf6d1a2b250d2735ef16124b971bce152f14 F test/rollback2.test fc14cf6d1a2b250d2735ef16124b971bce152f14
@@ -1236,7 +1236,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 2b8eecbfe7935d3d9826fbcd473dd3a49138ad11 P c8725fa5fa361959b0f0a3fb36f204905d6f0ae9 11e81ac2a7c917f7c9afc218d104d9870daf9668
R 23426bb53239eb240dd8df9d0d219aeb R 2eb9ddda90091ff81afdfabf278ccd4b
U mistachkin U mistachkin
Z 96c406dd077f9e953d8ddb5aba51e0dd Z b3ea8767e897ce2d6470ea9439664def

View File

@@ -1 +1 @@
c8725fa5fa361959b0f0a3fb36f204905d6f0ae9 ca5f2c545216c82486e66d26f55b49cbf351ffdc

View File

@@ -33,91 +33,91 @@ static const char * const azCompileOpt[] = {
#define CTIMEOPT_VAL_(opt) #opt #define CTIMEOPT_VAL_(opt) #opt
#define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt) #define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
#ifdef SQLITE_32BIT_ROWID #if SQLITE_32BIT_ROWID
"32BIT_ROWID", "32BIT_ROWID",
#endif #endif
#ifdef SQLITE_4_BYTE_ALIGNED_MALLOC #if SQLITE_4_BYTE_ALIGNED_MALLOC
"4_BYTE_ALIGNED_MALLOC", "4_BYTE_ALIGNED_MALLOC",
#endif #endif
#ifdef SQLITE_CASE_SENSITIVE_LIKE #if SQLITE_CASE_SENSITIVE_LIKE
"CASE_SENSITIVE_LIKE", "CASE_SENSITIVE_LIKE",
#endif #endif
#ifdef SQLITE_CHECK_PAGES #if SQLITE_CHECK_PAGES
"CHECK_PAGES", "CHECK_PAGES",
#endif #endif
#ifdef SQLITE_COVERAGE_TEST #if SQLITE_COVERAGE_TEST
"COVERAGE_TEST", "COVERAGE_TEST",
#endif #endif
#ifdef SQLITE_DEBUG #if SQLITE_DEBUG
"DEBUG", "DEBUG",
#endif #endif
#ifdef SQLITE_DEFAULT_LOCKING_MODE #if SQLITE_DEFAULT_LOCKING_MODE
"DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE), "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
#endif #endif
#if defined(SQLITE_DEFAULT_MMAP_SIZE) && !defined(SQLITE_DEFAULT_MMAP_SIZE_xc) #if defined(SQLITE_DEFAULT_MMAP_SIZE) && !defined(SQLITE_DEFAULT_MMAP_SIZE_xc)
"DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE), "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
#endif #endif
#ifdef SQLITE_DISABLE_DIRSYNC #if SQLITE_DISABLE_DIRSYNC
"DISABLE_DIRSYNC", "DISABLE_DIRSYNC",
#endif #endif
#ifdef SQLITE_DISABLE_LFS #if SQLITE_DISABLE_LFS
"DISABLE_LFS", "DISABLE_LFS",
#endif #endif
#ifdef SQLITE_ENABLE_API_ARMOR #if SQLITE_ENABLE_API_ARMOR
"ENABLE_API_ARMOR", "ENABLE_API_ARMOR",
#endif #endif
#ifdef SQLITE_ENABLE_ATOMIC_WRITE #if SQLITE_ENABLE_ATOMIC_WRITE
"ENABLE_ATOMIC_WRITE", "ENABLE_ATOMIC_WRITE",
#endif #endif
#ifdef SQLITE_ENABLE_CEROD #if SQLITE_ENABLE_CEROD
"ENABLE_CEROD", "ENABLE_CEROD",
#endif #endif
#ifdef SQLITE_ENABLE_COLUMN_METADATA #if SQLITE_ENABLE_COLUMN_METADATA
"ENABLE_COLUMN_METADATA", "ENABLE_COLUMN_METADATA",
#endif #endif
#ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT #if SQLITE_ENABLE_EXPENSIVE_ASSERT
"ENABLE_EXPENSIVE_ASSERT", "ENABLE_EXPENSIVE_ASSERT",
#endif #endif
#ifdef SQLITE_ENABLE_FTS1 #if SQLITE_ENABLE_FTS1
"ENABLE_FTS1", "ENABLE_FTS1",
#endif #endif
#ifdef SQLITE_ENABLE_FTS2 #if SQLITE_ENABLE_FTS2
"ENABLE_FTS2", "ENABLE_FTS2",
#endif #endif
#ifdef SQLITE_ENABLE_FTS3 #if SQLITE_ENABLE_FTS3
"ENABLE_FTS3", "ENABLE_FTS3",
#endif #endif
#ifdef SQLITE_ENABLE_FTS3_PARENTHESIS #if SQLITE_ENABLE_FTS3_PARENTHESIS
"ENABLE_FTS3_PARENTHESIS", "ENABLE_FTS3_PARENTHESIS",
#endif #endif
#ifdef SQLITE_ENABLE_FTS4 #if SQLITE_ENABLE_FTS4
"ENABLE_FTS4", "ENABLE_FTS4",
#endif #endif
#ifdef SQLITE_ENABLE_ICU #if SQLITE_ENABLE_ICU
"ENABLE_ICU", "ENABLE_ICU",
#endif #endif
#ifdef SQLITE_ENABLE_IOTRACE #if SQLITE_ENABLE_IOTRACE
"ENABLE_IOTRACE", "ENABLE_IOTRACE",
#endif #endif
#ifdef SQLITE_ENABLE_LOAD_EXTENSION #if SQLITE_ENABLE_LOAD_EXTENSION
"ENABLE_LOAD_EXTENSION", "ENABLE_LOAD_EXTENSION",
#endif #endif
#ifdef SQLITE_ENABLE_LOCKING_STYLE #if SQLITE_ENABLE_LOCKING_STYLE
"ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE), "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
#endif #endif
#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT #if SQLITE_ENABLE_MEMORY_MANAGEMENT
"ENABLE_MEMORY_MANAGEMENT", "ENABLE_MEMORY_MANAGEMENT",
#endif #endif
#ifdef SQLITE_ENABLE_MEMSYS3 #if SQLITE_ENABLE_MEMSYS3
"ENABLE_MEMSYS3", "ENABLE_MEMSYS3",
#endif #endif
#ifdef SQLITE_ENABLE_MEMSYS5 #if SQLITE_ENABLE_MEMSYS5
"ENABLE_MEMSYS5", "ENABLE_MEMSYS5",
#endif #endif
#ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK #if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
"ENABLE_OVERSIZE_CELL_CHECK", "ENABLE_OVERSIZE_CELL_CHECK",
#endif #endif
#ifdef SQLITE_ENABLE_RTREE #if SQLITE_ENABLE_RTREE
"ENABLE_RTREE", "ENABLE_RTREE",
#endif #endif
#if defined(SQLITE_ENABLE_STAT4) #if defined(SQLITE_ENABLE_STAT4)
@@ -125,31 +125,31 @@ static const char * const azCompileOpt[] = {
#elif defined(SQLITE_ENABLE_STAT3) #elif defined(SQLITE_ENABLE_STAT3)
"ENABLE_STAT3", "ENABLE_STAT3",
#endif #endif
#ifdef SQLITE_ENABLE_UNLOCK_NOTIFY #if SQLITE_ENABLE_UNLOCK_NOTIFY
"ENABLE_UNLOCK_NOTIFY", "ENABLE_UNLOCK_NOTIFY",
#endif #endif
#ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT #if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
"ENABLE_UPDATE_DELETE_LIMIT", "ENABLE_UPDATE_DELETE_LIMIT",
#endif #endif
#ifdef SQLITE_HAS_CODEC #if SQLITE_HAS_CODEC
"HAS_CODEC", "HAS_CODEC",
#endif #endif
#ifdef SQLITE_HAVE_ISNAN #if HAVE_ISNAN || SQLITE_HAVE_ISNAN
"HAVE_ISNAN", "HAVE_ISNAN",
#endif #endif
#ifdef SQLITE_HOMEGROWN_RECURSIVE_MUTEX #if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
"HOMEGROWN_RECURSIVE_MUTEX", "HOMEGROWN_RECURSIVE_MUTEX",
#endif #endif
#ifdef SQLITE_IGNORE_AFP_LOCK_ERRORS #if SQLITE_IGNORE_AFP_LOCK_ERRORS
"IGNORE_AFP_LOCK_ERRORS", "IGNORE_AFP_LOCK_ERRORS",
#endif #endif
#ifdef SQLITE_IGNORE_FLOCK_LOCK_ERRORS #if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
"IGNORE_FLOCK_LOCK_ERRORS", "IGNORE_FLOCK_LOCK_ERRORS",
#endif #endif
#ifdef SQLITE_INT64_TYPE #ifdef SQLITE_INT64_TYPE
"INT64_TYPE", "INT64_TYPE",
#endif #endif
#ifdef SQLITE_LOCK_TRACE #if SQLITE_LOCK_TRACE
"LOCK_TRACE", "LOCK_TRACE",
#endif #endif
#if defined(SQLITE_MAX_MMAP_SIZE) && !defined(SQLITE_MAX_MMAP_SIZE_xc) #if defined(SQLITE_MAX_MMAP_SIZE) && !defined(SQLITE_MAX_MMAP_SIZE_xc)
@@ -158,226 +158,226 @@ static const char * const azCompileOpt[] = {
#ifdef SQLITE_MAX_SCHEMA_RETRY #ifdef SQLITE_MAX_SCHEMA_RETRY
"MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY), "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
#endif #endif
#ifdef SQLITE_MEMDEBUG #if SQLITE_MEMDEBUG
"MEMDEBUG", "MEMDEBUG",
#endif #endif
#ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT #if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
"MIXED_ENDIAN_64BIT_FLOAT", "MIXED_ENDIAN_64BIT_FLOAT",
#endif #endif
#ifdef SQLITE_NO_SYNC #if SQLITE_NO_SYNC
"NO_SYNC", "NO_SYNC",
#endif #endif
#ifdef SQLITE_OMIT_ALTERTABLE #if SQLITE_OMIT_ALTERTABLE
"OMIT_ALTERTABLE", "OMIT_ALTERTABLE",
#endif #endif
#ifdef SQLITE_OMIT_ANALYZE #if SQLITE_OMIT_ANALYZE
"OMIT_ANALYZE", "OMIT_ANALYZE",
#endif #endif
#ifdef SQLITE_OMIT_ATTACH #if SQLITE_OMIT_ATTACH
"OMIT_ATTACH", "OMIT_ATTACH",
#endif #endif
#ifdef SQLITE_OMIT_AUTHORIZATION #if SQLITE_OMIT_AUTHORIZATION
"OMIT_AUTHORIZATION", "OMIT_AUTHORIZATION",
#endif #endif
#ifdef SQLITE_OMIT_AUTOINCREMENT #if SQLITE_OMIT_AUTOINCREMENT
"OMIT_AUTOINCREMENT", "OMIT_AUTOINCREMENT",
#endif #endif
#ifdef SQLITE_OMIT_AUTOINIT #if SQLITE_OMIT_AUTOINIT
"OMIT_AUTOINIT", "OMIT_AUTOINIT",
#endif #endif
#ifdef SQLITE_OMIT_AUTOMATIC_INDEX #if SQLITE_OMIT_AUTOMATIC_INDEX
"OMIT_AUTOMATIC_INDEX", "OMIT_AUTOMATIC_INDEX",
#endif #endif
#ifdef SQLITE_OMIT_AUTORESET #if SQLITE_OMIT_AUTORESET
"OMIT_AUTORESET", "OMIT_AUTORESET",
#endif #endif
#ifdef SQLITE_OMIT_AUTOVACUUM #if SQLITE_OMIT_AUTOVACUUM
"OMIT_AUTOVACUUM", "OMIT_AUTOVACUUM",
#endif #endif
#ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION #if SQLITE_OMIT_BETWEEN_OPTIMIZATION
"OMIT_BETWEEN_OPTIMIZATION", "OMIT_BETWEEN_OPTIMIZATION",
#endif #endif
#ifdef SQLITE_OMIT_BLOB_LITERAL #if SQLITE_OMIT_BLOB_LITERAL
"OMIT_BLOB_LITERAL", "OMIT_BLOB_LITERAL",
#endif #endif
#ifdef SQLITE_OMIT_BTREECOUNT #if SQLITE_OMIT_BTREECOUNT
"OMIT_BTREECOUNT", "OMIT_BTREECOUNT",
#endif #endif
#ifdef SQLITE_OMIT_BUILTIN_TEST #if SQLITE_OMIT_BUILTIN_TEST
"OMIT_BUILTIN_TEST", "OMIT_BUILTIN_TEST",
#endif #endif
#ifdef SQLITE_OMIT_CAST #if SQLITE_OMIT_CAST
"OMIT_CAST", "OMIT_CAST",
#endif #endif
#ifdef SQLITE_OMIT_CHECK #if SQLITE_OMIT_CHECK
"OMIT_CHECK", "OMIT_CHECK",
#endif #endif
#ifdef SQLITE_OMIT_COMPLETE #if SQLITE_OMIT_COMPLETE
"OMIT_COMPLETE", "OMIT_COMPLETE",
#endif #endif
#ifdef SQLITE_OMIT_COMPOUND_SELECT #if SQLITE_OMIT_COMPOUND_SELECT
"OMIT_COMPOUND_SELECT", "OMIT_COMPOUND_SELECT",
#endif #endif
#ifdef SQLITE_OMIT_CTE #if SQLITE_OMIT_CTE
"OMIT_CTE", "OMIT_CTE",
#endif #endif
#ifdef SQLITE_OMIT_DATETIME_FUNCS #if SQLITE_OMIT_DATETIME_FUNCS
"OMIT_DATETIME_FUNCS", "OMIT_DATETIME_FUNCS",
#endif #endif
#ifdef SQLITE_OMIT_DECLTYPE #if SQLITE_OMIT_DECLTYPE
"OMIT_DECLTYPE", "OMIT_DECLTYPE",
#endif #endif
#ifdef SQLITE_OMIT_DEPRECATED #if SQLITE_OMIT_DEPRECATED
"OMIT_DEPRECATED", "OMIT_DEPRECATED",
#endif #endif
#ifdef SQLITE_OMIT_DISKIO #if SQLITE_OMIT_DISKIO
"OMIT_DISKIO", "OMIT_DISKIO",
#endif #endif
#ifdef SQLITE_OMIT_EXPLAIN #if SQLITE_OMIT_EXPLAIN
"OMIT_EXPLAIN", "OMIT_EXPLAIN",
#endif #endif
#ifdef SQLITE_OMIT_FLAG_PRAGMAS #if SQLITE_OMIT_FLAG_PRAGMAS
"OMIT_FLAG_PRAGMAS", "OMIT_FLAG_PRAGMAS",
#endif #endif
#ifdef SQLITE_OMIT_FLOATING_POINT #if SQLITE_OMIT_FLOATING_POINT
"OMIT_FLOATING_POINT", "OMIT_FLOATING_POINT",
#endif #endif
#ifdef SQLITE_OMIT_FOREIGN_KEY #if SQLITE_OMIT_FOREIGN_KEY
"OMIT_FOREIGN_KEY", "OMIT_FOREIGN_KEY",
#endif #endif
#ifdef SQLITE_OMIT_GET_TABLE #if SQLITE_OMIT_GET_TABLE
"OMIT_GET_TABLE", "OMIT_GET_TABLE",
#endif #endif
#ifdef SQLITE_OMIT_INCRBLOB #if SQLITE_OMIT_INCRBLOB
"OMIT_INCRBLOB", "OMIT_INCRBLOB",
#endif #endif
#ifdef SQLITE_OMIT_INTEGRITY_CHECK #if SQLITE_OMIT_INTEGRITY_CHECK
"OMIT_INTEGRITY_CHECK", "OMIT_INTEGRITY_CHECK",
#endif #endif
#ifdef SQLITE_OMIT_LIKE_OPTIMIZATION #if SQLITE_OMIT_LIKE_OPTIMIZATION
"OMIT_LIKE_OPTIMIZATION", "OMIT_LIKE_OPTIMIZATION",
#endif #endif
#ifdef SQLITE_OMIT_LOAD_EXTENSION #if SQLITE_OMIT_LOAD_EXTENSION
"OMIT_LOAD_EXTENSION", "OMIT_LOAD_EXTENSION",
#endif #endif
#ifdef SQLITE_OMIT_LOCALTIME #if SQLITE_OMIT_LOCALTIME
"OMIT_LOCALTIME", "OMIT_LOCALTIME",
#endif #endif
#ifdef SQLITE_OMIT_LOOKASIDE #if SQLITE_OMIT_LOOKASIDE
"OMIT_LOOKASIDE", "OMIT_LOOKASIDE",
#endif #endif
#ifdef SQLITE_OMIT_MEMORYDB #if SQLITE_OMIT_MEMORYDB
"OMIT_MEMORYDB", "OMIT_MEMORYDB",
#endif #endif
#ifdef SQLITE_OMIT_OR_OPTIMIZATION #if SQLITE_OMIT_OR_OPTIMIZATION
"OMIT_OR_OPTIMIZATION", "OMIT_OR_OPTIMIZATION",
#endif #endif
#ifdef SQLITE_OMIT_PAGER_PRAGMAS #if SQLITE_OMIT_PAGER_PRAGMAS
"OMIT_PAGER_PRAGMAS", "OMIT_PAGER_PRAGMAS",
#endif #endif
#ifdef SQLITE_OMIT_PRAGMA #if SQLITE_OMIT_PRAGMA
"OMIT_PRAGMA", "OMIT_PRAGMA",
#endif #endif
#ifdef SQLITE_OMIT_PROGRESS_CALLBACK #if SQLITE_OMIT_PROGRESS_CALLBACK
"OMIT_PROGRESS_CALLBACK", "OMIT_PROGRESS_CALLBACK",
#endif #endif
#ifdef SQLITE_OMIT_QUICKBALANCE #if SQLITE_OMIT_QUICKBALANCE
"OMIT_QUICKBALANCE", "OMIT_QUICKBALANCE",
#endif #endif
#ifdef SQLITE_OMIT_REINDEX #if SQLITE_OMIT_REINDEX
"OMIT_REINDEX", "OMIT_REINDEX",
#endif #endif
#ifdef SQLITE_OMIT_SCHEMA_PRAGMAS #if SQLITE_OMIT_SCHEMA_PRAGMAS
"OMIT_SCHEMA_PRAGMAS", "OMIT_SCHEMA_PRAGMAS",
#endif #endif
#ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS #if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
"OMIT_SCHEMA_VERSION_PRAGMAS", "OMIT_SCHEMA_VERSION_PRAGMAS",
#endif #endif
#ifdef SQLITE_OMIT_SHARED_CACHE #if SQLITE_OMIT_SHARED_CACHE
"OMIT_SHARED_CACHE", "OMIT_SHARED_CACHE",
#endif #endif
#ifdef SQLITE_OMIT_SUBQUERY #if SQLITE_OMIT_SUBQUERY
"OMIT_SUBQUERY", "OMIT_SUBQUERY",
#endif #endif
#ifdef SQLITE_OMIT_TCL_VARIABLE #if SQLITE_OMIT_TCL_VARIABLE
"OMIT_TCL_VARIABLE", "OMIT_TCL_VARIABLE",
#endif #endif
#ifdef SQLITE_OMIT_TEMPDB #if SQLITE_OMIT_TEMPDB
"OMIT_TEMPDB", "OMIT_TEMPDB",
#endif #endif
#ifdef SQLITE_OMIT_TRACE #if SQLITE_OMIT_TRACE
"OMIT_TRACE", "OMIT_TRACE",
#endif #endif
#ifdef SQLITE_OMIT_TRIGGER #if SQLITE_OMIT_TRIGGER
"OMIT_TRIGGER", "OMIT_TRIGGER",
#endif #endif
#ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION #if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
"OMIT_TRUNCATE_OPTIMIZATION", "OMIT_TRUNCATE_OPTIMIZATION",
#endif #endif
#ifdef SQLITE_OMIT_UTF16 #if SQLITE_OMIT_UTF16
"OMIT_UTF16", "OMIT_UTF16",
#endif #endif
#ifdef SQLITE_OMIT_VACUUM #if SQLITE_OMIT_VACUUM
"OMIT_VACUUM", "OMIT_VACUUM",
#endif #endif
#ifdef SQLITE_OMIT_VIEW #if SQLITE_OMIT_VIEW
"OMIT_VIEW", "OMIT_VIEW",
#endif #endif
#ifdef SQLITE_OMIT_VIRTUALTABLE #if SQLITE_OMIT_VIRTUALTABLE
"OMIT_VIRTUALTABLE", "OMIT_VIRTUALTABLE",
#endif #endif
#ifdef SQLITE_OMIT_WAL #if SQLITE_OMIT_WAL
"OMIT_WAL", "OMIT_WAL",
#endif #endif
#ifdef SQLITE_OMIT_WSD #if SQLITE_OMIT_WSD
"OMIT_WSD", "OMIT_WSD",
#endif #endif
#ifdef SQLITE_OMIT_XFER_OPT #if SQLITE_OMIT_XFER_OPT
"OMIT_XFER_OPT", "OMIT_XFER_OPT",
#endif #endif
#ifdef SQLITE_PERFORMANCE_TRACE #if SQLITE_PERFORMANCE_TRACE
"PERFORMANCE_TRACE", "PERFORMANCE_TRACE",
#endif #endif
#ifdef SQLITE_PROXY_DEBUG #if SQLITE_PROXY_DEBUG
"PROXY_DEBUG", "PROXY_DEBUG",
#endif #endif
#ifdef SQLITE_RTREE_INT_ONLY #if SQLITE_RTREE_INT_ONLY
"RTREE_INT_ONLY", "RTREE_INT_ONLY",
#endif #endif
#ifdef SQLITE_SECURE_DELETE #if SQLITE_SECURE_DELETE
"SECURE_DELETE", "SECURE_DELETE",
#endif #endif
#ifdef SQLITE_SMALL_STACK #if SQLITE_SMALL_STACK
"SMALL_STACK", "SMALL_STACK",
#endif #endif
#ifdef SQLITE_SOUNDEX #if SQLITE_SOUNDEX
"SOUNDEX", "SOUNDEX",
#endif #endif
#ifdef SQLITE_SYSTEM_MALLOC #if SQLITE_SYSTEM_MALLOC
"SYSTEM_MALLOC", "SYSTEM_MALLOC",
#endif #endif
#ifdef SQLITE_TCL #if SQLITE_TCL
"TCL", "TCL",
#endif #endif
#if defined(SQLITE_TEMP_STORE) && !defined(SQLITE_TEMP_STORE_xc) #if defined(SQLITE_TEMP_STORE) && !defined(SQLITE_TEMP_STORE_xc)
"TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE), "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
#endif #endif
#ifdef SQLITE_TEST #if SQLITE_TEST
"TEST", "TEST",
#endif #endif
#if defined(SQLITE_THREADSAFE) #if defined(SQLITE_THREADSAFE)
"THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE), "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
#endif #endif
#ifdef SQLITE_USE_ALLOCA #if SQLITE_USE_ALLOCA
"USE_ALLOCA", "USE_ALLOCA",
#endif #endif
#ifdef SQLITE_USER_AUTHENTICATION #if SQLITE_USER_AUTHENTICATION
"USER_AUTHENTICATION", "USER_AUTHENTICATION",
#endif #endif
#ifdef SQLITE_WIN32_MALLOC #if SQLITE_WIN32_MALLOC
"WIN32_MALLOC", "WIN32_MALLOC",
#endif #endif
#ifdef SQLITE_ZERO_MALLOC #if SQLITE_ZERO_MALLOC
"ZERO_MALLOC" "ZERO_MALLOC"
#endif #endif
}; };
@@ -392,7 +392,7 @@ static const char * const azCompileOpt[] = {
int sqlite3_compileoption_used(const char *zOptName){ int sqlite3_compileoption_used(const char *zOptName){
int i, n; int i, n;
#ifdef SQLITE_ENABLE_API_ARMOR #if SQLITE_ENABLE_API_ARMOR
if( zOptName==0 ){ if( zOptName==0 ){
(void)SQLITE_MISUSE_BKPT; (void)SQLITE_MISUSE_BKPT;
return 0; return 0;

View File

@@ -412,8 +412,9 @@ static void clearYMD_HMS_TZ(DateTime *p){
** already, check for an MSVC build environment that provides ** already, check for an MSVC build environment that provides
** localtime_s(). ** localtime_s().
*/ */
#if !defined(HAVE_LOCALTIME_R) && !defined(HAVE_LOCALTIME_S) && \ #if !HAVE_LOCALTIME_R && !HAVE_LOCALTIME_S \
defined(_MSC_VER) && defined(_CRT_INSECURE_DEPRECATE) && defined(_MSC_VER) && defined(_CRT_INSECURE_DEPRECATE)
#undef HAVE_LOCALTIME_S
#define HAVE_LOCALTIME_S 1 #define HAVE_LOCALTIME_S 1
#endif #endif
@@ -433,8 +434,7 @@ static void clearYMD_HMS_TZ(DateTime *p){
*/ */
static int osLocaltime(time_t *t, struct tm *pTm){ static int osLocaltime(time_t *t, struct tm *pTm){
int rc; int rc;
#if (!defined(HAVE_LOCALTIME_R) || !HAVE_LOCALTIME_R) \ #if !HAVE_LOCALTIME_R && !HAVE_LOCALTIME_S
&& (!defined(HAVE_LOCALTIME_S) || !HAVE_LOCALTIME_S)
struct tm *pX; struct tm *pX;
#if SQLITE_THREADSAFE>0 #if SQLITE_THREADSAFE>0
sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
@@ -451,7 +451,7 @@ static int osLocaltime(time_t *t, struct tm *pTm){
#ifndef SQLITE_OMIT_BUILTIN_TEST #ifndef SQLITE_OMIT_BUILTIN_TEST
if( sqlite3GlobalConfig.bLocaltimeFault ) return 1; if( sqlite3GlobalConfig.bLocaltimeFault ) return 1;
#endif #endif
#if defined(HAVE_LOCALTIME_R) && HAVE_LOCALTIME_R #if HAVE_LOCALTIME_R
rc = localtime_r(t, pTm)==0; rc = localtime_r(t, pTm)==0;
#else #else
rc = localtime_s(pTm, t); rc = localtime_s(pTm, t);
@@ -1092,7 +1092,7 @@ static void currentTimeFunc(
iT = sqlite3StmtCurrentTime(context); iT = sqlite3StmtCurrentTime(context);
if( iT<=0 ) return; if( iT<=0 ) return;
t = iT/1000 - 10000*(sqlite3_int64)21086676; t = iT/1000 - 10000*(sqlite3_int64)21086676;
#ifdef HAVE_GMTIME_R #if HAVE_GMTIME_R
pTm = gmtime_r(&t, &sNow); pTm = gmtime_r(&t, &sNow);
#else #else
sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER)); sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));

View File

@@ -1350,7 +1350,7 @@ static int sqliteDefaultBusyCallback(
void *ptr, /* Database connection */ void *ptr, /* Database connection */
int count /* Number of times table has been busy */ int count /* Number of times table has been busy */
){ ){
#if SQLITE_OS_WIN || (defined(HAVE_USLEEP) && HAVE_USLEEP) #if SQLITE_OS_WIN || HAVE_USLEEP
static const u8 delays[] = static const u8 delays[] =
{ 1, 2, 5, 10, 15, 20, 25, 25, 25, 50, 50, 100 }; { 1, 2, 5, 10, 15, 20, 25, 25, 25, 50, 50, 100 };
static const u8 totals[] = static const u8 totals[] =

View File

@@ -79,9 +79,9 @@ static malloc_zone_t* _sqliteZone_;
** The malloc.h header file is needed for malloc_usable_size() function ** The malloc.h header file is needed for malloc_usable_size() function
** on some systems (e.g. Linux). ** on some systems (e.g. Linux).
*/ */
#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLOC_USABLE_SIZE) #if HAVE_MALLOC_H && HAVE_MALLOC_USABLE_SIZE
# define SQLITE_USE_MALLOC_H # define SQLITE_USE_MALLOC_H 1
# define SQLITE_USE_MALLOC_USABLE_SIZE # define SQLITE_USE_MALLOC_USABLE_SIZE 1
/* /*
** The MSVCRT has malloc_usable_size(), but it is called _msize(). The ** The MSVCRT has malloc_usable_size(), but it is called _msize(). The
** use of _msize() is automatic, but can be disabled by compiling with ** use of _msize() is automatic, but can be disabled by compiling with

View File

@@ -3386,9 +3386,9 @@ int sqlite3_fullsync_count = 0;
** We do not trust systems to provide a working fdatasync(). Some do. ** We do not trust systems to provide a working fdatasync(). Some do.
** Others do no. To be safe, we will stick with the (slightly slower) ** Others do no. To be safe, we will stick with the (slightly slower)
** fsync(). If you know that your system does support fdatasync() correctly, ** fsync(). If you know that your system does support fdatasync() correctly,
** then simply compile with -Dfdatasync=fdatasync ** then simply compile with -Dfdatasync=fdatasync or -DHAVE_FDATASYNC
*/ */
#if !defined(fdatasync) #if !defined(fdatasync) && !HAVE_FDATASYNC
# define fdatasync fsync # define fdatasync fsync
#endif #endif

View File

@@ -14,17 +14,6 @@
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
/*
** If the strchrnul() library function is available, then set
** HAVE_STRCHRNUL. If that routine is not available, this module
** will supply its own. The built-in version is slower than
** the glibc version so the glibc version is definitely preferred.
*/
#if !defined(HAVE_STRCHRNUL)
# define HAVE_STRCHRNUL 0
#endif
/* /*
** Conversion types fall into various categories as defined by the ** Conversion types fall into various categories as defined by the
** following enumeration. ** following enumeration.

View File

@@ -55,17 +55,16 @@
# include <sys/types.h> # include <sys/types.h>
#endif #endif
#if defined(HAVE_READLINE) && HAVE_READLINE!=0 #if HAVE_READLINE
# include <readline/readline.h> # include <readline/readline.h>
# include <readline/history.h> # include <readline/history.h>
#else
# undef HAVE_READLINE
#endif #endif
#if defined(HAVE_EDITLINE) && !defined(HAVE_READLINE) #if HAVE_EDITLINE
# undef HAVE_READLINE
# define HAVE_READLINE 1 # define HAVE_READLINE 1
# include <editline/readline.h> # include <editline/readline.h>
#endif #endif
#if !defined(HAVE_READLINE) #if !HAVE_READLINE
# define add_history(X) # define add_history(X)
# define read_history(X) # define read_history(X)
# define write_history(X) # define write_history(X)
@@ -432,7 +431,7 @@ static char *one_input_line(FILE *in, char *zPrior, int isContinuation){
zResult = local_getline(zPrior, in); zResult = local_getline(zPrior, in);
}else{ }else{
zPrompt = isContinuation ? continuePrompt : mainPrompt; zPrompt = isContinuation ? continuePrompt : mainPrompt;
#if defined(HAVE_READLINE) #if HAVE_READLINE
free(zPrior); free(zPrior);
zResult = readline(zPrompt); zResult = readline(zPrompt);
if( zResult && *zResult ) add_history(zResult); if( zResult && *zResult ) add_history(zResult);
@@ -4489,7 +4488,7 @@ int main(int argc, char **argv){
sqlite3_snprintf(nHistory, zHistory,"%s/.sqlite_history", zHome); sqlite3_snprintf(nHistory, zHistory,"%s/.sqlite_history", zHome);
} }
} }
#if defined(HAVE_READLINE) #if HAVE_READLINE
if( zHistory ) read_history(zHistory); if( zHistory ) read_history(zHistory);
#endif #endif
rc = process_input(&data, 0); rc = process_input(&data, 0);

View File

@@ -2985,7 +2985,7 @@ int sqlite3CantopenError(int);
** the SQLITE_ENABLE_FTS4 macro to serve as an alias for SQLITE_ENABLE_FTS3. ** the SQLITE_ENABLE_FTS4 macro to serve as an alias for SQLITE_ENABLE_FTS3.
*/ */
#if defined(SQLITE_ENABLE_FTS4) && !defined(SQLITE_ENABLE_FTS3) #if defined(SQLITE_ENABLE_FTS4) && !defined(SQLITE_ENABLE_FTS3)
# define SQLITE_ENABLE_FTS3 # define SQLITE_ENABLE_FTS3 1
#endif #endif
/* /*

View File

@@ -3813,6 +3813,11 @@ static void init_all(Tcl_Interp *interp){
#endif #endif
} }
/* Needed for the setrlimit() system call on unix */
#if defined(unix)
#include <sys/resource.h>
#endif
#define TCLSH_MAIN main /* Needed to fake out mktclapp */ #define TCLSH_MAIN main /* Needed to fake out mktclapp */
int TCLSH_MAIN(int argc, char **argv){ int TCLSH_MAIN(int argc, char **argv){
Tcl_Interp *interp; Tcl_Interp *interp;
@@ -3826,6 +3831,17 @@ int TCLSH_MAIN(int argc, char **argv){
} }
#endif #endif
/* Since the primary use case for this binary is testing of SQLite,
** be sure to generate core files if we crash */
#if defined(SQLITE_TEST) && defined(unix)
{ struct rlimit x;
getrlimit(RLIMIT_CORE, &x);
x.rlim_cur = x.rlim_max;
setrlimit(RLIMIT_CORE, &x);
}
#endif /* SQLITE_TEST && unix */
/* Call sqlite3_shutdown() once before doing anything else. This is to /* Call sqlite3_shutdown() once before doing anything else. This is to
** test that sqlite3_shutdown() can be safely called by a process before ** test that sqlite3_shutdown() can be safely called by a process before
** sqlite3_initialize() is. */ ** sqlite3_initialize() is. */

View File

@@ -6618,6 +6618,7 @@ static int test_user_delete(
** 1 Overflow a signed integer ** 1 Overflow a signed integer
** 2 Jump based on an uninitialized variable ** 2 Jump based on an uninitialized variable
** 3 Read after free ** 3 Read after free
** 4 Panic
*/ */
static int test_bad_behavior( static int test_bad_behavior(
ClientData clientData, /* Pointer to an integer containing zero */ ClientData clientData, /* Pointer to an integer containing zero */
@@ -6656,6 +6657,10 @@ static int test_bad_behavior(
Tcl_SetObjResult(interp, Tcl_NewIntObj(a[i])); Tcl_SetObjResult(interp, Tcl_NewIntObj(a[i]));
break; break;
} }
case 4: {
Tcl_Panic("Deliberate panic");
break;
}
} }
return TCL_OK; return TCL_OK;
} }

View File

@@ -41,7 +41,7 @@
** procedures use this to determine when tests should be omitted. ** procedures use this to determine when tests should be omitted.
*/ */
static void set_options(Tcl_Interp *interp){ static void set_options(Tcl_Interp *interp){
#ifdef HAVE_MALLOC_USABLE_SIZE #if HAVE_MALLOC_USABLE_SIZE
Tcl_SetVar2(interp, "sqlite_options", "malloc_usable_size", "1", Tcl_SetVar2(interp, "sqlite_options", "malloc_usable_size", "1",
TCL_GLOBAL_ONLY); TCL_GLOBAL_ONLY);
#else #else

View File

@@ -17,7 +17,7 @@
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
#include <stdarg.h> #include <stdarg.h>
#ifdef SQLITE_HAVE_ISNAN #if HAVE_ISNAN || SQLITE_HAVE_ISNAN
# include <math.h> # include <math.h>
#endif #endif
@@ -58,7 +58,7 @@ int sqlite3FaultSim(int iTest){
*/ */
int sqlite3IsNaN(double x){ int sqlite3IsNaN(double x){
int rc; /* The value return */ int rc; /* The value return */
#if !defined(SQLITE_HAVE_ISNAN) #if !SQLITE_HAVE_ISNAN && !HAVE_ISNAN
/* /*
** Systems that support the isnan() library function should probably ** Systems that support the isnan() library function should probably
** make use of it by compiling with -DSQLITE_HAVE_ISNAN. But we have ** make use of it by compiling with -DSQLITE_HAVE_ISNAN. But we have
@@ -88,9 +88,9 @@ int sqlite3IsNaN(double x){
volatile double y = x; volatile double y = x;
volatile double z = y; volatile double z = y;
rc = (y!=z); rc = (y!=z);
#else /* if defined(SQLITE_HAVE_ISNAN) */ #else /* if HAVE_ISNAN */
rc = isnan(x); rc = isnan(x);
#endif /* SQLITE_HAVE_ISNAN */ #endif /* HAVE_ISNAN */
testcase( rc ); testcase( rc );
return rc; return rc;
} }

View File

@@ -2414,6 +2414,7 @@ int sqlite3VdbeSorterNext(sqlite3 *db, const VdbeCursor *pCsr, int *pbEof){
}else }else
#endif #endif
/*if( !pSorter->bUseThreads )*/ { /*if( !pSorter->bUseThreads )*/ {
assert( pSorter->pMerger!=0 );
assert( pSorter->pMerger->pTask==(&pSorter->aTask[0]) ); assert( pSorter->pMerger->pTask==(&pSorter->aTask[0]) );
rc = vdbeMergeEngineStep(pSorter->pMerger, pbEof); rc = vdbeMergeEngineStep(pSorter->pMerger, pbEof);
} }

View File

@@ -29,7 +29,14 @@ Every test begins with a fresh run of the configure script at the top
of the SQLite source tree. of the SQLite source tree.
} }
array set ::Configs { # Omit comments (text between # and \n) in a long multi-line string.
#
proc strip_comments {in} {
regsub -all {#[^\n]*\n} $in {} out
return $out
}
array set ::Configs [strip_comments {
"Default" { "Default" {
-O2 -O2
--disable-amalgamation --disable-shared --disable-amalgamation --disable-shared
@@ -38,6 +45,20 @@ array set ::Configs {
CC=clang -fsanitize=undefined CC=clang -fsanitize=undefined
-DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_STAT4
} }
"Have-Not" {
# The "Have-Not" configuration sets all possible -UHAVE_feature options
# in order to verify that the code works even on platforms that lack
# these support services.
-DHAVE_FDATASYNC=0
-DHAVE_GMTIME_R=0
-DHAVE_ISNAN=0
-DHAVE_LOCALTIME_R=0
-DHAVE_LOCALTIME_S=0
-DHAVE_MALLOC_USABLE_SIZE=0
-DHAVE_STRCHRNUL=0
-DHAVE_USLEEP=0
-DHAVE_UTIME=0
}
"Unlock-Notify" { "Unlock-Notify" {
-O2 -O2
-DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_UNLOCK_NOTIFY
@@ -166,15 +187,23 @@ array set ::Configs {
-DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4
-DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_RTREE
} }
# The next group of configurations are used only by the
# Failure-Detection platform. They are all the same, but we need
# different names for them all so that they results appear in separate
# subdirectories.
#
Fail0 {-O0} Fail0 {-O0}
Fail2 {-O0} Fail2 {-O0}
Fail3 {-O0} Fail3 {-O0}
} Fail4 {-O0}
}]
array set ::Platforms { array set ::Platforms [strip_comments {
Linux-x86_64 { Linux-x86_64 {
"Check-Symbols" checksymbols "Check-Symbols" checksymbols
"Debug-One" "mptest test" "Debug-One" "mptest test"
"Have-Not" test
"Secure-Delete" test "Secure-Delete" test
"Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test" "Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test"
"Update-Delete-Limit" test "Update-Delete-Limit" test
@@ -189,6 +218,7 @@ array set ::Platforms {
} }
Linux-i686 { Linux-i686 {
"Devkit" test "Devkit" test
"Have-Not" test
"Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test" "Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test"
"Device-One" test "Device-One" test
"Device-Two" test "Device-Two" test
@@ -196,22 +226,31 @@ array set ::Platforms {
} }
Darwin-i386 { Darwin-i386 {
"Locking-Style" "mptest test" "Locking-Style" "mptest test"
"Have-Not" test
"OS-X" "threadtest fulltest" "OS-X" "threadtest fulltest"
} }
Darwin-x86_64 { Darwin-x86_64 {
"Locking-Style" "mptest test" "Locking-Style" "mptest test"
"Have-Not" test
"OS-X" "threadtest fulltest" "OS-X" "threadtest fulltest"
} }
"Windows NT-intel" { "Windows NT-intel" {
"Default" "mptest fulltestonly" "Default" "mptest fulltestonly"
"Have-Not" test
} }
# The Failure-Detection platform runs various tests that deliberately
# fail. This is used as a test of this script to verify that this script
# correctly identifies failures.
#
Failure-Detection { Failure-Detection {
Fail0 "TEST_FAILURE=0 test" Fail0 "TEST_FAILURE=0 test"
Sanitize "TEST_FAILURE=1 test" Sanitize "TEST_FAILURE=1 test"
Fail2 "TEST_FAILURE=2 valgrindtest" Fail2 "TEST_FAILURE=2 valgrindtest"
Fail3 "TEST_FAILURE=3 valgrindtest" Fail3 "TEST_FAILURE=3 valgrindtest"
Fail4 "TEST_FAILURE=4 test"
} }
} }]
# End of configuration section. # End of configuration section.
@@ -278,6 +317,9 @@ proc count_tests_and_errors {logfile rcVar errmsgVar} {
if {!$seen} { if {!$seen} {
set rc 1 set rc 1
set errmsg "Test did not complete" set errmsg "Test did not complete"
if {[file readable core]} {
append errmsg " - core file exists"
}
} }
} }
@@ -294,9 +336,9 @@ proc run_test_suite {name testtarget config} {
regsub -all {#[^\n]*\n} $config \n config regsub -all {#[^\n]*\n} $config \n config
foreach arg $config { foreach arg $config {
if {[string match -D* $arg]} { if {[regexp {^-[UD]} $arg]} {
lappend opts $arg lappend opts $arg
} elseif {[string match CC=* $arg]} { } elseif {[regexp {^[A-Z]+=} $arg]} {
lappend testtarget $arg lappend testtarget $arg
} elseif {[regexp {^--(enable|disable)-} $arg]} { } elseif {[regexp {^--(enable|disable)-} $arg]} {
lappend configOpts $arg lappend configOpts $arg
@@ -331,6 +373,7 @@ proc run_test_suite {name testtarget config} {
trace_cmd file mkdir $dir trace_cmd file mkdir $dir
trace_cmd cd $dir trace_cmd cd $dir
set errmsg {} set errmsg {}
catch {file delete core}
set rc [catch [configureCommand $configOpts]] set rc [catch [configureCommand $configOpts]]
if {!$rc} { if {!$rc} {
set rc [catch [makeCommand $testtarget $cflags $opts]] set rc [catch [makeCommand $testtarget $cflags $opts]]