Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 69395d1

Browse files
authored
Merge pull request #65 from swiftlyfalling/v3.47.2
Update SQLite to 3.47.2
2 parents 6866231 + 5160879 commit 69395d1

File tree

426 files changed

+22758
-7925
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

426 files changed

+22758
-7925
lines changed

‎sqlite/Makefile.in‎

Lines changed: 136 additions & 89 deletions
Large diffs are not rendered by default.

‎sqlite/Makefile.msc‎

Lines changed: 130 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ USE_STDCALL = 0
6666
USE_SEH = 1
6767
!ENDIF
6868

69+
# Use STATICALLY_LINK_TCL=1 to statically link against TCL
70+
#
71+
!IFNDEF STATICALLY_LINK_TCL
72+
STATICALLY_LINK_TCL = 0
73+
!ELSEIF $(STATICALLY_LINK_TCL)!=0
74+
CCOPTS = $(CCOPTS) -DSTATIC_BUILD
75+
!ENDIF
76+
6977
# Set this non-0 to have the shell executable link against the core dynamic
7078
# link library.
7179
#
@@ -379,6 +387,7 @@ SQLITE_TCL_DEP =
379387
# the Windows platform.
380388
#
381389
!IFNDEF OPT_FEATURE_FLAGS
390+
OPT_FEATURE_FLAGS = $(OPT_XTRA)
382391
!IF $(MINIMAL_AMALGAMATION)==0
383392
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
384393
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS5=1
@@ -392,6 +401,14 @@ OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_BYTECODE_VTAB=1
392401
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
393402
!ENDIF
394403

404+
# Additional feature-options above and beyond what are normally used can be
405+
# be added using OPTIONS=.... on the command-line. These values are
406+
# appended to the OPT_FEATURE_FLAGS variable.
407+
#
408+
!IFDEF OPTIONS
409+
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) $(OPTIONS)
410+
!ENDIF
411+
395412
# Should the session extension be enabled? If so, add compilation options
396413
# to enable it.
397414
#
@@ -920,16 +937,28 @@ TCC = $(TCC) /fsanitize=address
920937
# prior to running nmake in order to match the actual installed location and
921938
# version on this machine.
922939
#
923-
!IFNDEF TCLVERSION
924-
TCLVERSION = 86
940+
!IF $(STATICALLY_LINK_TCL)!=0
941+
TCLSUFFIX = s
925942
!ENDIF
926-
927943
!IFNDEF TCLSUFFIX
928944
TCLSUFFIX =
929945
!ENDIF
930946

931947
!IFNDEF TCLDIR
932-
TCLDIR = $(TOP)\compat\tcl
948+
TCLDIR = C:\Tcl
949+
!ENDIF
950+
951+
!IFNDEF TCLVERSION
952+
!IF EXISTS("$(TCLDIR)\lib\tcl90$(TCLSUFFIX).lib")
953+
TCLVERSION = 90
954+
!ELSEIF EXISTS("$(TCLDIR)\lib\tcl86$(TCLSUFFIX).lib")
955+
TCLVERSION = 86
956+
!ELSEIF EXISTS("$(TCLDIR)\lib\tcl86t.lib")
957+
TCLSUFFIX = t
958+
TCLVERSION = 86
959+
!ELSE
960+
TCLVERSION = 90
961+
!ENDIF
933962
!ENDIF
934963

935964
!IFNDEF TCLINCDIR
@@ -944,9 +973,21 @@ TCLLIBDIR = $(TCLDIR)\lib
944973
LIBTCL = tcl$(TCLVERSION)$(TCLSUFFIX).lib
945974
!ENDIF
946975

976+
!IFNDEF TCLLIBS
977+
!IF $(STATICALLY_LINK_TCL)!=0
978+
TCLLIBS = /NODEFAULTLIB:libucrt.lib netapi32.lib user32.lib ucrt.lib
979+
!ELSE
980+
TCLLIBS =
981+
!ENDIF
982+
!ENDIF
983+
947984
!IFNDEF LIBTCLSTUB
985+
!IF EXISTS("$(TCLLIBDIR)\tclstub$(TCLSUFFIX).lib")
986+
LIBTCLSTUB = tclstub$(TCLSUFFIX).lib
987+
!ELSE
948988
LIBTCLSTUB = tclstub$(TCLVERSION)$(TCLSUFFIX).lib
949989
!ENDIF
990+
!ENDIF
950991

951992
!IFNDEF LIBTCLPATH
952993
LIBTCLPATH = $(TCLDIR)\bin
@@ -1004,10 +1045,18 @@ LIBICU = icuuc.lib icuin.lib
10041045
# specific Tcl shell to use.
10051046
#
10061047
!IFNDEF TCLSH_CMD
1007-
!IF $(USE_TCLSH_IN_PATH)!=0 || !EXIST("$(TCLDIR)\bin\tclsh.exe")
1008-
TCLSH_CMD = tclsh
1009-
!ELSE
1048+
!IF EXISTS("$(TCLDIR)\bin\tclsh$(TCLVERSION).exe")
1049+
TCLSH_CMD = $(TCLDIR)\bin\tclsh$(TCLVERSION).exe
1050+
!ELSEIF EXISTS("$(TCLDIR)\bin\tclsh90.exe")
1051+
TCLSH_CMD = $(TCLDIR)\bin\tclsh90.exe
1052+
!ELSEIF EXISTS("$(TCLDIR)\bin\tclsh86.exe")
1053+
TCLSH_CMD = $(TCLDIR)\bin\tclsh86.exe
1054+
!ELSEIF EXISTS("$(TCLDIR)\bin\tclsh86t.exe")
1055+
TCLSH_CMD = $(TCLDIR)\bin\tclsh86t.exe
1056+
!ELSEIF EXISTS("$(TCLDIR)\bin\tclsh.exe")
10101057
TCLSH_CMD = $(TCLDIR)\bin\tclsh.exe
1058+
!ELSE
1059+
TCLSH_CMD = tclsh
10111060
!ENDIF
10121061
!ENDIF
10131062
# <</mark>>
@@ -1596,6 +1645,7 @@ TESTEXT = \
15961645
$(TOP)\ext\misc\remember.c \
15971646
$(TOP)\ext\misc\series.c \
15981647
$(TOP)\ext\misc\spellfix.c \
1648+
$(TOP)\ext\misc\stmtrand.c \
15991649
$(TOP)\ext\misc\totype.c \
16001650
$(TOP)\ext\misc\unionvtab.c \
16011651
$(TOP)\ext\misc\wholenumber.c \
@@ -1757,6 +1807,7 @@ FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\test\fuzzinvariants.c
17571807
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\test\vt02.c
17581808
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\recover\dbdata.c
17591809
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\recover\sqlite3recover.c
1810+
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\misc\percentile.c
17601811
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\misc\randomjson.c
17611812

17621813
OSSSHELL_SRC = $(TOP)\test\ossshell.c $(TOP)\test\ossfuzz.c
@@ -1813,12 +1864,25 @@ tclsqlite3.def: tclsqlite.lo
18131864

18141865
pkgIndex.tcl: $(TOP)\VERSION
18151866
for /F %%V in ('type "$(TOP)\VERSION"') do ( \
1816-
echo package ifneeded sqlite3 @version@ [list load [file join $$dir $(SQLITE3TCLDLL)] sqlite3] \
1867+
echo package ifneeded sqlite3 @version@ [list load [file join $$dir $(SQLITE3TCLDLL)] Sqlite3] \
18171868
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact @version@ %%V > pkgIndex.tcl \
18181869
)
18191870

18201871
$(SQLITE3TCLDLL): libtclsqlite3.lib $(LIBRESOBJS) tclsqlite3.def pkgIndex.tcl
18211872
$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:tclsqlite3.def /OUT:$@ libtclsqlite3.lib $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
1873+
1874+
tclextension: $(SQLITE3TCLDLL)
1875+
1876+
tclextension-install: $(SQLITE3TCLDLL)
1877+
$(TCLSH_CMD) $(TOP)\tool\buildtclext.tcl --install-only
1878+
1879+
tclextension-uninstall:
1880+
$(TCLSH_CMD) $(TOP)\tool\buildtclext.tcl --uninstall
1881+
1882+
tclextension-list:
1883+
$(TCLSH_CMD) $(TOP)\tool\buildtclext.tcl --info
1884+
1885+
18221886
# <</mark>>
18231887

18241888
$(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
@@ -1837,12 +1901,25 @@ $(SQLITE3EXE): shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) $(SHELL_CORE_SRC) $(SQLIT
18371901
/link $(SQLITE3EXEPDB) $(LDFLAGS) $(LTLINKOPTS) $(SHELL_LINK_OPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS)
18381902

18391903
# <<mark>>
1840-
sqldiff.exe: $(TOP)\tool\sqldiff.c $(TOP)\ext\consio\console_io.h $(TOP)\ext\consio\console_io.c $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
1841-
$(LTLINK) $(NO_WARN) -I$(TOP)\ext\consio $(TOP)\tool\sqldiff.c $(TOP)\ext\consio\console_io.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) $(LIBRESOBJS)
1904+
sqldiff.exe: $(TOP)\tool\sqldiff.c $(TOP)\ext\misc\sqlite3_stdio.h $(TOP)\ext\misc\sqlite3_stdio.c $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
1905+
$(LTLINK) $(NO_WARN) -I$(TOP)\ext\misc $(TOP)\tool\sqldiff.c $(TOP)\ext\misc\sqlite3_stdio.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) $(LIBRESOBJS)
18421906

18431907
dbhash.exe: $(TOP)\tool\dbhash.c $(SQLITE3C) $(SQLITE3H)
18441908
$(LTLINK) $(NO_WARN) $(TOP)\tool\dbhash.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
18451909

1910+
RSYNC_SRC = \
1911+
$(TOP)\tool\sqlite3_rsync.c \
1912+
$(SQLITE3C)
1913+
1914+
RSYNC_OPT = \
1915+
-DSQLITE_ENABLE_DBPAGE_VTAB \
1916+
-DSQLITE_THREADSAFE=0 \
1917+
-DSQLITE_OMIT_LOAD_EXTENSION \
1918+
-DSQLITE_OMIT_DEPRECATED
1919+
1920+
sqlite3_rsync.exe: $(RSYNC_SRC) $(LIBRESOBJS)
1921+
$(LTLINK) $(RSYNC_OPT) $(NO_WARN) $(RSYNC_SRC) /link $(LDFLAGS) $(LTLINKOPTS) $(LIBRESOBJS)
1922+
18461923
scrub.exe: $(TOP)\ext\misc\scrub.c $(SQLITE3C) $(SQLITE3H)
18471924
$(LTLINK) $(NO_WARN) -DSCRUB_STANDALONE=1 $(TOP)\ext\misc\scrub.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
18481925

@@ -1870,6 +1947,10 @@ fuzzcheck.exe: $(FUZZCHECK_SRC) $(SQLITE3C) $(SQLITE3H)
18701947
fuzzcheck-asan.exe: $(FUZZCHECK_SRC) $(SQLITE3C) $(SQLITE3H)
18711948
$(LTLINK) $(NO_WARN) /fsanitize=address $(FUZZCHECK_OPTS) $(FUZZCHECK_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
18721949

1950+
run-fuzzcheck: fuzzcheck.exe fuzzcheck-asan.exe
1951+
fuzzcheck --spinner $(FUZZDB)
1952+
fuzzcheck-asan --spinner $(FUZZDB)
1953+
18731954
ossshell.exe: $(OSSSHELL_SRC) $(SQLITE3C) $(SQLITE3H)
18741955
$(LTLINK) $(NO_WARN) $(FUZZCHECK_OPTS) $(OSSSHELL_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
18751956

@@ -2275,8 +2356,6 @@ keywordhash.h: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe
22752356
# Source and header files that shell.c depends on
22762357
SHELL_DEP = \
22772358
$(TOP)\src\shell.c.in \
2278-
$(TOP)\ext\consio\console_io.c \
2279-
$(TOP)\ext\consio\console_io.h \
22802359
$(TOP)\ext\expert\sqlite3expert.c \
22812360
$(TOP)\ext\expert\sqlite3expert.h \
22822361
$(TOP)\ext\intck\sqlite3intck.c \
@@ -2290,11 +2369,16 @@ SHELL_DEP = \
22902369
$(TOP)\ext\misc\ieee754.c \
22912370
$(TOP)\ext\misc\memtrace.c \
22922371
$(TOP)\ext\misc\pcachetrace.c \
2372+
$(TOP)\ext\misc\percentile.c \
22932373
$(TOP)\ext\misc\regexp.c \
22942374
$(TOP)\ext\misc\series.c \
2375+
$(TOP)\ext\misc\sha1.c \
22952376
$(TOP)\ext\misc\shathree.c \
22962377
$(TOP)\ext\misc\sqlar.c \
2378+
$(TOP)\ext\misc\sqlite3_stdio.c \
2379+
$(TOP)\ext\misc\sqlite3_stdio.h \
22972380
$(TOP)\ext\misc\uint.c \
2381+
$(TOP)\ext\misc\vfstrace.c \
22982382
$(TOP)\ext\misc\zipfile.c \
22992383
$(TOP)\ext\recover\dbdata.c \
23002384
$(TOP)\ext\recover\sqlite3recover.c \
@@ -2493,7 +2577,7 @@ extensiontest: testfixture.exe testloadext.dll
24932577
@set PATH=$(LIBTCLPATH);$(PATH)
24942578
.\testfixture.exe $(TOP)\test\loadext.test $(TESTOPTS)
24952579

2496-
tool-zip: testfixture.exe sqlite3.exe sqldiff.exe sqlite3_analyzer.exe $(TOP)\tool\mktoolzip.tcl
2580+
tool-zip: testfixture.exe sqlite3.exe sqldiff.exe sqlite3_analyzer.exe sqlite3_rsync.exe $(TOP)\tool\mktoolzip.tcl
24972581
.\testfixture.exe $(TOP)\tool\mktoolzip.tcl
24982582

24992583
coretestprogs: testfixture.exe sqlite3.exe
@@ -2521,6 +2605,13 @@ queryplantest: testfixture.exe shell
25212605
fuzztest: fuzzcheck.exe
25222606
.\fuzzcheck.exe $(FUZZDATA)
25232607

2608+
# Legacy testing target for third-party integrators. The SQLite
2609+
# developers seldom use this target themselves. Instead
2610+
# they use "nmake /f Makefile.msc devtest" which runs tests on
2611+
# a standard set of options
2612+
#
2613+
test: $(TESTPROGS) sourcetest fuzztest tcltest
2614+
25242615
# Minimal testing that runs in less than 3 minutes (on a fast machine)
25252616
#
25262617
quicktest: testfixture.exe sourcetest
@@ -2530,7 +2621,6 @@ quicktest: testfixture.exe sourcetest
25302621
# This is the common case. Run many tests that do not take too long,
25312622
# including fuzzcheck, sqlite3_analyzer, and sqldiff tests.
25322623
#
2533-
test: $(TESTPROGS) sourcetest fuzztest tcltest
25342624

25352625
# The veryquick.test TCL tests.
25362626
#
@@ -2544,17 +2634,27 @@ tcltest: testfixture.exe
25442634
testrunner: testfixture.exe
25452635
.\testfixture.exe $(TOP)\test\testrunner.tcl
25462636

2547-
# Runs both fuzztest and testrunner, consecutively.
2637+
# This is the testing target preferred by the core SQLite developers.
2638+
# It runs tests under a standard configuration. The devs run
2639+
# "nmake /f Makefile.msc devtest" prior to each check-in, at a minimum.
2640+
# Probably other tests too, but at least this one.
25482641
#
2549-
devtest: testfixture.exe fuzztest testrunner
2642+
devtest: srctree-check sourcetest
2643+
$(TCLSH_CMD) $(TOP)\test\testrunner.tcl mdevtest
25502644

25512645
mdevtest:
25522646
$(TCLSH_CMD) $(TOP)\test\testrunner.tcl mdevtest
25532647

2648+
# Validate that various generated files in the source tree
2649+
# are up-to-date.
2650+
#
2651+
srctree-check: $(TOP)\tool\srctree-check.tcl
2652+
$(TCLSH_CMD) $(TOP)\tool\srctree-check.tcl
2653+
25542654
# Testing for a release
25552655
#
2556-
releasetest: testfixture.exe
2557-
testfixture.exe $(TOP)\test\testrunner.tcl release
2656+
releasetest:
2657+
$(TCLSH_CMD) $(TOP)\test\testrunner.tcl release
25582658

25592659

25602660
smoketest: $(TESTPROGS)
@@ -2564,7 +2664,7 @@ smoketest: $(TESTPROGS)
25642664
shelltest: $(TESTPROGS)
25652665
.\testfixture.exe $(TOP)\test\permutations.test shell
25662666

2567-
sqlite3_analyzer.c: $(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqlite3_analyzer.c.in $(TOP)\ext\consio\console_io.h $(TOP)\ext\consio\console_io.c $(SQLITE_TCL_DEP)
2667+
sqlite3_analyzer.c: $(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqlite3_analyzer.c.in $(TOP)\ext\misc\sqlite3_stdio.h $(TOP)\ext\misc\sqlite3_stdio.c $(SQLITE_TCL_DEP)
25682668
$(TCLSH_CMD) $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqlite3_analyzer.c.in > $@
25692669

25702670
sqlite3_analyzer.exe: sqlite3_analyzer.c $(LIBRESOBJS)
@@ -2686,6 +2786,16 @@ THREADTEST3_SRC = \
26862786
threadtest3.exe: $(THREADTEST3_SRC) $(TOP)\src\test_multiplex.c $(SQLITE3C) $(SQLITE3H)
26872787
$(LTLINK) $(NO_WARN) $(TOP)\test\threadtest3.c $(TOP)\src\test_multiplex.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
26882788

2789+
# Display key variables that control which version of TCL is to be used.
2790+
#
2791+
tcl-env:
2792+
@echo TCLDIR = $(TCLDIR)
2793+
@echo TCLVERSION = $(TCLVERSION)
2794+
@echo TCLSUFFIX = $(TCLSUFFIX)
2795+
@echo LIBTCL = $(LIBTCL)
2796+
@echo LIBTCLSTUB = $(LIBTCLSTUB)
2797+
@echo TCLSH_CMD = $(TCLSH_CMD)
2798+
26892799
LSMDIR=$(TOP)\ext\lsm1
26902800
!INCLUDE $(LSMDIR)\Makefile.msc
26912801

@@ -2719,7 +2829,7 @@ clean:
27192829
del /Q sqlite3.c sqlite3-*.c sqlite3.h 2>NUL
27202830
del /Q sqlite3rc.h 2>NUL
27212831
del /Q shell.c sqlite3ext.h sqlite3session.h 2>NUL
2722-
del /Q sqlite3_analyzer.exe sqlite3_analyzer.c 2>NUL
2832+
del /Q sqlite3_analyzer.exe sqlite3_analyzer.c sqlite3_rsync.exe 2>NUL
27232833
del /Q sqlite-*-output.vsix 2>NUL
27242834
del /Q fuzzershell.exe fuzzcheck.exe sqldiff.exe dbhash.exe 2>NUL
27252835
del /Q sqltclsh.* 2>NUL

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /