/ Changes On Branch branch-3.11
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch branch-3.11 Excluding Merge-Ins

This is equivalent to a diff from 3d862f20 to f047920c

2016-04-05
18:24
Oops. Branched from the wrong baseline. Ignore this one. (Closed-Leaf check-in: 8f1f300c user: drh tags: mistake)
2016-03-03
17:54
Merge 3.11.1 changes into trunk. (check-in: 7abc2dd9 user: drh tags: trunk)
16:17
Version 3.11.1 (Leaf check-in: f047920c user: drh tags: release, branch-3.11, version-3.11.1)
15:16
Increase the default upper bound on scope to 30. (check-in: b1258814 user: drh tags: branch-3.11)
2016-02-18
21:00
Correct the install location for the UWP VSIX package. (check-in: b47d0302 user: mistachkin tags: branch-3.11)
16:16
Remove SQLITE_TEST macros from fts5_test_mi.c. Add the SQLITE_FTS5_ENABLE_TEST_MI compile time symbol - to make it easier to create builds that include the fts5 matchinfo demo by default. (check-in: e2ef6667 user: dan tags: branch-3.11-matchinfo)
2016-02-15
17:56
Make the application-defined SQL function logic more compact and faster, especially faster for the case where an application defines thousands of new SQL functions. (check-in: 7d49ed32 user: drh tags: trunk)
17:44
Merge version 3.11.0 (check-in: c393ddc7 user: drh tags: begin-concurrent)
17:40
Merge 3.11.0 changes. (check-in: 5cecc509 user: drh tags: apple-osx)
17:39
Merge 3.11.0 changes. (check-in: 631023dd user: drh tags: sessions)
17:29
Version 3.11.0 (check-in: 3d862f20 user: drh tags: trunk, release, version-3.11.0)
15:06
Make sure the codec is invoked when overwriting existing frames of the WAL file. Yikes! (check-in: f694e60a user: drh tags: trunk)

Changes to Makefile.msc.

   215    215   !IFNDEF SQLITE3H
   216    216   SQLITE3H = sqlite3.h
   217    217   !ENDIF
   218    218   
   219    219   # This is the name to use for the SQLite dynamic link library (DLL).
   220    220   #
   221    221   !IFNDEF SQLITE3DLL
          222  +!IF $(FOR_WIN10)!=0
          223  +SQLITE3DLL = winsqlite3.dll
          224  +!ELSE
   222    225   SQLITE3DLL = sqlite3.dll
          226  +!ENDIF
   223    227   !ENDIF
   224    228   
   225    229   # This is the name to use for the SQLite import library (LIB).
   226    230   #
   227    231   !IFNDEF SQLITE3LIB
          232  +!IF $(FOR_WIN10)!=0
          233  +SQLITE3LIB = winsqlite3.lib
          234  +!ELSE
   228    235   SQLITE3LIB = sqlite3.lib
          236  +!ENDIF
   229    237   !ENDIF
   230    238   
   231    239   # This is the name to use for the SQLite shell executable (EXE).
   232    240   #
   233    241   !IFNDEF SQLITE3EXE
          242  +!IF $(FOR_WIN10)!=0
          243  +SQLITE3EXE = winsqlite3shell.exe
          244  +!ELSE
   234    245   SQLITE3EXE = sqlite3.exe
          246  +!ENDIF
   235    247   !ENDIF
   236    248   
   237    249   # This is the argument used to set the program database (PDB) file for the
   238    250   # SQLite shell executable (EXE).
   239    251   #
   240    252   !IFNDEF SQLITE3EXEPDB
          253  +!IF $(FOR_WIN10)!=0
          254  +SQLITE3EXEPDB =
          255  +!ELSE
   241    256   SQLITE3EXEPDB = /pdb:sqlite3sh.pdb
          257  +!ENDIF
   242    258   !ENDIF
   243    259   
   244    260   # These are the "standard" SQLite compilation options used when compiling for
   245    261   # the Windows platform.
   246    262   #
   247    263   !IFNDEF OPT_FEATURE_FLAGS
   248    264   OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
................................................................................
   413    429   !ELSE
   414    430   TCC = $(CC) -nologo -W3 $(CCOPTS) $(TCCOPTS)
   415    431   !ENDIF
   416    432   
   417    433   TCC = $(TCC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src -fp:precise
   418    434   RCC = $(RC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src $(RCOPTS) $(RCCOPTS)
   419    435   
   420         -# Adjust the names of the primary targets for use with Windows 10.
   421         -#
   422         -!IF $(FOR_WIN10)!=0
   423         -SQLITE3DLL = winsqlite3.dll
   424         -SQLITE3LIB = winsqlite3.lib
   425         -SQLITE3EXE = winsqlite3shell.exe
   426         -SQLITE3EXEPDB =
   427         -!ENDIF
   428         -
   429    436   # Check if we want to use the "stdcall" calling convention when compiling.
   430    437   # This is not supported by the compilers for non-x86 platforms.  It should
   431    438   # also be noted here that building any target with these "stdcall" options
   432    439   # will most likely fail if the Tcl library is also required.  This is due
   433    440   # to how the Tcl library functions are declared and exported (i.e. without
   434    441   # an explicit calling convention, which results in "cdecl").
   435    442   #
................................................................................
   461    468   !ENDIF
   462    469   !ENDIF
   463    470   
   464    471   # These are the additional targets that the core library should depend on
   465    472   # when linking.
   466    473   #
   467    474   !IFNDEF CORE_LINK_DEP
   468         -!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
          475  +!IF $(DYNAMIC_SHELL)!=0
   469    476   CORE_LINK_DEP =
   470         -!ELSE
          477  +!ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86"
   471    478   CORE_LINK_DEP = sqlite3.def
          479  +!ELSE
          480  +CORE_LINK_DEP =
   472    481   !ENDIF
   473    482   !ENDIF
   474    483   
   475    484   # These are additional linker options used for the core library.
   476    485   #
   477    486   !IFNDEF CORE_LINK_OPTS
   478         -!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
          487  +!IF $(DYNAMIC_SHELL)!=0
   479    488   CORE_LINK_OPTS =
   480         -!ELSE
          489  +!ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86"
   481    490   CORE_LINK_OPTS = /DEF:sqlite3.def
          491  +!ELSE
          492  +CORE_LINK_OPTS =
   482    493   !ENDIF
   483    494   !ENDIF
   484    495   
   485    496   # These are additional compiler options used for the shell executable.
   486    497   #
   487    498   !IFNDEF SHELL_COMPILE_OPTS
   488    499   !IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
................................................................................
  1376   1387   # This is the default Makefile target.  The objects listed here
  1377   1388   # are what get build when you type just "make" with no arguments.
  1378   1389   #
  1379   1390   all:	dll libsqlite3.lib shell $(ALL_TCL_TARGETS)
  1380   1391   
  1381   1392   # Dynamic link library section.
  1382   1393   #
  1383         -dll: $(SQLITE3DLL)
         1394  +dll:	$(SQLITE3DLL)
  1384   1395   
  1385   1396   # Shell executable.
  1386   1397   #
  1387         -shell: $(SQLITE3EXE)
         1398  +shell:	$(SQLITE3EXE)
  1388   1399   
         1400  +# <<mark>>
  1389   1401   libsqlite3.lib:	$(LIBOBJ)
  1390   1402   	$(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS)
  1391   1403   
  1392         -# <<mark>>
  1393   1404   libtclsqlite3.lib:	tclsqlite.lo libsqlite3.lib
  1394   1405   	$(LTLIB) $(LTLIBOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCLSTUB) $(TLIBS)
  1395   1406   # <</mark>>
  1396   1407   
  1397         -$(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
         1408  +$(SQLITE3DLL):	$(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
  1398   1409   	$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL $(CORE_LINK_OPTS) /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
  1399   1410   
  1400   1411   # <<mark>>
  1401         -sqlite3.def: libsqlite3.lib
         1412  +sqlite3.def:	libsqlite3.lib
  1402   1413   	echo EXPORTS > sqlite3.def
  1403   1414   	dumpbin /all libsqlite3.lib \
  1404         -		| $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3_.*)$$" \1 \
         1415  +		| $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3_[^@]*)(?:@\d+)?$$" \1 \
  1405   1416   		| sort >> sqlite3.def
  1406   1417   # <</mark>>
  1407   1418   
  1408   1419   $(SQLITE3EXE):	$(TOP)\src\shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) $(SHELL_CORE_SRC) $(SQLITE3H)
  1409   1420   	$(LTLINK) $(SHELL_COMPILE_OPTS) $(READLINE_FLAGS) $(TOP)\src\shell.c $(SHELL_CORE_SRC) \
  1410   1421   		/link $(SQLITE3EXEPDB) $(LDFLAGS) $(LTLINKOPTS) $(SHELL_LINK_OPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS)
  1411   1422   
................................................................................
  1773   1784   	.\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) parse.y
  1774   1785   	move parse.h parse.h.temp
  1775   1786   	$(TCLSH_CMD) $(TOP)\tool\addopcodes.tcl parse.h.temp > parse.h
  1776   1787   
  1777   1788   $(SQLITE3H):	$(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION
  1778   1789   	$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > $(SQLITE3H)
  1779   1790   
  1780         -sqlite3ext.h: .target_source
         1791  +sqlite3ext.h:	.target_source
  1781   1792   	copy tsrc\sqlite3ext.h .
  1782   1793   
  1783   1794   mkkeywordhash.exe:	$(TOP)\tool\mkkeywordhash.c
  1784   1795   	$(BCC) $(NO_WARN) -Fe$@ $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) \
  1785   1796   		$(TOP)\tool\mkkeywordhash.c /link $(LDFLAGS) $(NLTLINKOPTS) $(NLTLIBPATHS)
  1786   1797   
  1787   1798   keywordhash.h:	$(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe
................................................................................
  1874   1885      $(TOP)\ext\fts5\fts5_vocab.c
  1875   1886   
  1876   1887   fts5parse.c:	$(TOP)\ext\fts5\fts5parse.y lemon.exe
  1877   1888   	copy $(TOP)\ext\fts5\fts5parse.y .
  1878   1889   	del /Q fts5parse.h 2>NUL
  1879   1890   	.\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) fts5parse.y
  1880   1891   
  1881         -fts5parse.h: fts5parse.c
         1892  +fts5parse.h:	fts5parse.c
  1882   1893   
  1883         -fts5.c: $(FTS5_SRC)
         1894  +fts5.c:	$(FTS5_SRC)
  1884   1895   	$(TCLSH_CMD) $(TOP)\ext\fts5\tool\mkfts5c.tcl
  1885   1896   	copy $(TOP)\ext\fts5\fts5.h .
  1886   1897   
  1887   1898   fts5.lo:	fts5.c $(HDR) $(EXTHDR)
  1888   1899   	$(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c fts5.c
  1889   1900   
  1890   1901   fts5_ext.lo:	fts5.c $(HDR) $(EXTHDR)
................................................................................
  1917   1928   
  1918   1929   testfixture.exe:	$(TESTFIXTURE_SRC) $(SQLITE3H) $(LIBRESOBJS) $(HDR)
  1919   1930   	$(LTLINK) -DSQLITE_NO_SYNC=1 $(TESTFIXTURE_FLAGS) \
  1920   1931   		-DBUILD_sqlite -I$(TCLINCDIR) \
  1921   1932   		$(TESTFIXTURE_SRC) \
  1922   1933   		/link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
  1923   1934   
  1924         -extensiontest: testfixture.exe testloadext.dll
         1935  +extensiontest:	testfixture.exe testloadext.dll
  1925   1936   	@set PATH=$(LIBTCLPATH);$(PATH)
  1926   1937   	.\testfixture.exe $(TOP)\test\loadext.test $(TESTOPTS)
  1927   1938   
  1928   1939   fulltest:	$(TESTPROGS) fuzztest
  1929   1940   	@set PATH=$(LIBTCLPATH);$(PATH)
  1930   1941   	.\testfixture.exe $(TOP)\test\all.test $(TESTOPTS)
  1931   1942   
................................................................................
  1960   1971   	@set PATH=$(LIBTCLPATH);$(PATH)
  1961   1972   	.\testfixture.exe $(TOP)\test\veryquick.test $(TESTOPTS)
  1962   1973   
  1963   1974   smoketest:	$(TESTPROGS)
  1964   1975   	@set PATH=$(LIBTCLPATH);$(PATH)
  1965   1976   	.\testfixture.exe $(TOP)\test\main.test $(TESTOPTS)
  1966   1977   
  1967         -sqlite3_analyzer.c: $(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl
         1978  +sqlite3_analyzer.c:	$(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl
  1968   1979   	echo #define TCLSH 2 > $@
  1969   1980   	echo #define SQLITE_ENABLE_DBSTAT_VTAB 1 >> $@
  1970   1981   	copy $@ + $(SQLITE3C) + $(TOP)\src\tclsqlite.c $@
  1971   1982   	echo static const char *tclsh_main_loop(void){ >> $@
  1972   1983   	echo static const char *zMainloop = >> $@
  1973   1984   	$(TCLSH_CMD) $(TOP)\tool\tostr.tcl $(TOP)\tool\spaceanal.tcl >> $@
  1974   1985   	echo ; return zMainloop; } >> $@
................................................................................
  1976   1987   sqlite3_analyzer.exe:	sqlite3_analyzer.c $(LIBRESOBJS)
  1977   1988   	$(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqlite3_analyzer.c \
  1978   1989   		/link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
  1979   1990   
  1980   1991   testloadext.lo:	$(TOP)\src\test_loadext.c
  1981   1992   	$(LTCOMPILE) $(NO_WARN) -c $(TOP)\src\test_loadext.c
  1982   1993   
  1983         -testloadext.dll: testloadext.lo
         1994  +testloadext.dll:	testloadext.lo
  1984   1995   	$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ testloadext.lo
  1985   1996   
  1986   1997   showdb.exe:	$(TOP)\tool\showdb.c $(SQLITE3C) $(SQLITE3H)
  1987   1998   	$(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
  1988   1999   		$(TOP)\tool\showdb.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  1989   2000   
  1990   2001   showstat4.exe:	$(TOP)\tool\showstat4.c $(SQLITE3C) $(SQLITE3H)
................................................................................
  2014   2025   	$(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
  2015   2026   		$(TOP)\test\wordcount.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2016   2027   
  2017   2028   speedtest1.exe:	$(TOP)\test\speedtest1.c $(SQLITE3C) $(SQLITE3H)
  2018   2029   	$(LTLINK) $(NO_WARN) -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
  2019   2030   		$(TOP)\test\speedtest1.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  2020   2031   
  2021         -rbu.exe: $(TOP)\ext\rbu\rbu.c $(TOP)\ext\rbu\sqlite3rbu.c $(SQLITE3C) $(SQLITE3H)
         2032  +rbu.exe:	$(TOP)\ext\rbu\rbu.c $(TOP)\ext\rbu\sqlite3rbu.c $(SQLITE3C) $(SQLITE3H)
  2022   2033   	$(LTLINK) $(NO_WARN) -DSQLITE_ENABLE_RBU -Fe$@ \
  2023   2034   		$(TOP)\ext\rbu\rbu.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
         2035  +
         2036  +moreclean:	clean
         2037  +	del /Q $(SQLITE3C) $(SQLITE3H) 2>NUL
  2024   2038   # <</mark>>
  2025   2039   
  2026   2040   clean:
  2027   2041   	del /Q *.exp *.lo *.ilk *.lib *.obj *.ncb *.pdb *.sdf *.suo 2>NUL
  2028         -	del /Q *.bsc *.cod *.da *.bb *.bbg *.vc gmon.out 2>NUL
         2042  +	del /Q *.bsc *.def *.cod *.da *.bb *.bbg *.vc gmon.out 2>NUL
         2043  +	del /Q $(SQLITE3EXE) $(SQLITE3DLL) 2>NUL
  2029   2044   # <<mark>>
  2030         -	del /Q $(SQLITE3C) $(SQLITE3H) opcodes.c opcodes.h 2>NUL
         2045  +	del /Q sqlite3.c sqlite3.h 2>NUL
         2046  +	del /Q opcodes.c opcodes.h 2>NUL
  2031   2047   	del /Q lemon.* lempar.c parse.* 2>NUL
  2032   2048   	del /Q mkkeywordhash.* keywordhash.h 2>NUL
  2033   2049   	del /Q notasharedlib.* 2>NUL
  2034   2050   	-rmdir /Q/S .deps 2>NUL
  2035   2051   	-rmdir /Q/S .libs 2>NUL
  2036   2052   	-rmdir /Q/S quota2a 2>NUL
  2037   2053   	-rmdir /Q/S quota2b 2>NUL
................................................................................
  2040   2056   	del /Q .target_source 2>NUL
  2041   2057   	del /Q tclsqlite3.exe 2>NUL
  2042   2058   	del /Q testloadext.dll 2>NUL
  2043   2059   	del /Q testfixture.exe test.db 2>NUL
  2044   2060   	del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe 2>NUL
  2045   2061   	del /Q showjournal.exe showstat4.exe showwal.exe speedtest1.exe 2>NUL
  2046   2062   	del /Q mptester.exe wordcount.exe rbu.exe srcck1.exe 2>NUL
  2047         -	del /Q $(SQLITE3EXE) $(SQLITE3DLL) sqlite3.def 2>NUL
  2048   2063   	del /Q sqlite3.c sqlite3-*.c 2>NUL
  2049   2064   	del /Q sqlite3rc.h 2>NUL
  2050   2065   	del /Q shell.c sqlite3ext.h 2>NUL
  2051   2066   	del /Q sqlite3_analyzer.exe sqlite3_analyzer.c 2>NUL
  2052   2067   	del /Q sqlite-*-output.vsix 2>NUL
  2053   2068   	del /Q fuzzershell.exe fuzzcheck.exe sqldiff.exe 2>NUL
  2054   2069   	del /Q fts5.* fts5parse.* 2>NUL
  2055   2070   # <</mark>>

Changes to VERSION.

     1         -3.11.0
            1  +3.11.1

Changes to autoconf/Makefile.msc.

   200    200   !IFNDEF SQLITE3H
   201    201   SQLITE3H = sqlite3.h
   202    202   !ENDIF
   203    203   
   204    204   # This is the name to use for the SQLite dynamic link library (DLL).
   205    205   #
   206    206   !IFNDEF SQLITE3DLL
          207  +!IF $(FOR_WIN10)!=0
          208  +SQLITE3DLL = winsqlite3.dll
          209  +!ELSE
   207    210   SQLITE3DLL = sqlite3.dll
          211  +!ENDIF
   208    212   !ENDIF
   209    213   
   210    214   # This is the name to use for the SQLite import library (LIB).
   211    215   #
   212    216   !IFNDEF SQLITE3LIB
          217  +!IF $(FOR_WIN10)!=0
          218  +SQLITE3LIB = winsqlite3.lib
          219  +!ELSE
   213    220   SQLITE3LIB = sqlite3.lib
          221  +!ENDIF
   214    222   !ENDIF
   215    223   
   216    224   # This is the name to use for the SQLite shell executable (EXE).
   217    225   #
   218    226   !IFNDEF SQLITE3EXE
          227  +!IF $(FOR_WIN10)!=0
          228  +SQLITE3EXE = winsqlite3shell.exe
          229  +!ELSE
   219    230   SQLITE3EXE = sqlite3.exe
          231  +!ENDIF
   220    232   !ENDIF
   221    233   
   222    234   # This is the argument used to set the program database (PDB) file for the
   223    235   # SQLite shell executable (EXE).
   224    236   #
   225    237   !IFNDEF SQLITE3EXEPDB
          238  +!IF $(FOR_WIN10)!=0
          239  +SQLITE3EXEPDB =
          240  +!ELSE
   226    241   SQLITE3EXEPDB = /pdb:sqlite3sh.pdb
          242  +!ENDIF
   227    243   !ENDIF
   228    244   
   229    245   # These are the "standard" SQLite compilation options used when compiling for
   230    246   # the Windows platform.
   231    247   #
   232    248   !IFNDEF OPT_FEATURE_FLAGS
   233    249   OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
................................................................................
   398    414   !ELSE
   399    415   TCC = $(CC) -nologo -W3 $(CCOPTS) $(TCCOPTS)
   400    416   !ENDIF
   401    417   
   402    418   TCC = $(TCC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -fp:precise
   403    419   RCC = $(RC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) $(RCOPTS) $(RCCOPTS)
   404    420   
   405         -# Adjust the names of the primary targets for use with Windows 10.
   406         -#
   407         -!IF $(FOR_WIN10)!=0
   408         -SQLITE3DLL = winsqlite3.dll
   409         -SQLITE3LIB = winsqlite3.lib
   410         -SQLITE3EXE = winsqlite3shell.exe
   411         -SQLITE3EXEPDB =
   412         -!ENDIF
   413         -
   414    421   # Check if we want to use the "stdcall" calling convention when compiling.
   415    422   # This is not supported by the compilers for non-x86 platforms.  It should
   416    423   # also be noted here that building any target with these "stdcall" options
   417    424   # will most likely fail if the Tcl library is also required.  This is due
   418    425   # to how the Tcl library functions are declared and exported (i.e. without
   419    426   # an explicit calling convention, which results in "cdecl").
   420    427   #
................................................................................
   446    453   !ENDIF
   447    454   !ENDIF
   448    455   
   449    456   # These are the additional targets that the core library should depend on
   450    457   # when linking.
   451    458   #
   452    459   !IFNDEF CORE_LINK_DEP
   453         -!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
          460  +!IF $(DYNAMIC_SHELL)!=0
          461  +CORE_LINK_DEP =
          462  +!ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86"
   454    463   CORE_LINK_DEP =
   455    464   !ELSE
   456    465   CORE_LINK_DEP =
   457    466   !ENDIF
   458    467   !ENDIF
   459    468   
   460    469   # These are additional linker options used for the core library.
   461    470   #
   462    471   !IFNDEF CORE_LINK_OPTS
   463         -!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
          472  +!IF $(DYNAMIC_SHELL)!=0
          473  +CORE_LINK_OPTS =
          474  +!ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86"
   464    475   CORE_LINK_OPTS =
   465    476   !ELSE
   466    477   CORE_LINK_OPTS =
   467    478   !ENDIF
   468    479   !ENDIF
   469    480   
   470    481   # These are additional compiler options used for the shell executable.
................................................................................
   859    870   SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_SHELL_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS
   860    871   !ENDIF
   861    872   
   862    873   
   863    874   # This is the default Makefile target.  The objects listed here
   864    875   # are what get build when you type just "make" with no arguments.
   865    876   #
   866         -all:	dll libsqlite3.lib shell
          877  +all:	dll shell
   867    878   
   868    879   # Dynamic link library section.
   869    880   #
   870         -dll: $(SQLITE3DLL)
          881  +dll:	$(SQLITE3DLL)
   871    882   
   872    883   # Shell executable.
   873    884   #
   874         -shell: $(SQLITE3EXE)
   875         -
   876         -libsqlite3.lib:	$(LIBOBJ)
   877         -	$(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS)
          885  +shell:	$(SQLITE3EXE)
   878    886   
   879    887   
   880         -$(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
          888  +$(SQLITE3DLL):	$(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
   881    889   	$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL $(CORE_LINK_OPTS) /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
   882    890   
   883    891   
   884    892   $(SQLITE3EXE):	$(TOP)\shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) $(SHELL_CORE_SRC) $(SQLITE3H)
   885    893   	$(LTLINK) $(SHELL_COMPILE_OPTS) $(READLINE_FLAGS) $(TOP)\shell.c $(SHELL_CORE_SRC) \
   886    894   		/link $(SQLITE3EXEPDB) $(LDFLAGS) $(LTLINKOPTS) $(SHELL_LINK_OPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS)
   887    895   
................................................................................
   914    922   	echo #endif >> sqlite3rc.h
   915    923   	$(LTRCOMPILE) -fo $(LIBRESOBJS) -DRC_VERONLY $(TOP)\sqlite3.rc
   916    924   !ENDIF
   917    925   
   918    926   
   919    927   clean:
   920    928   	del /Q *.exp *.lo *.ilk *.lib *.obj *.ncb *.pdb *.sdf *.suo 2>NUL
   921         -	del /Q *.bsc *.cod *.da *.bb *.bbg *.vc gmon.out 2>NUL
          929  +	del /Q *.bsc *.def *.cod *.da *.bb *.bbg *.vc gmon.out 2>NUL
          930  +	del /Q $(SQLITE3EXE) $(SQLITE3DLL) 2>NUL

Changes to configure.

     1      1   #! /bin/sh
     2      2   # Guess values for system-dependent variables and create Makefiles.
     3         -# Generated by GNU Autoconf 2.69 for sqlite 3.11.0.
            3  +# Generated by GNU Autoconf 2.69 for sqlite 3.11.1.
     4      4   #
     5      5   #
     6      6   # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
     7      7   #
     8      8   #
     9      9   # This configure script is free software; the Free Software Foundation
    10     10   # gives unlimited permission to copy, distribute and modify it.
................................................................................
   722    722   subdirs=
   723    723   MFLAGS=
   724    724   MAKEFLAGS=
   725    725   
   726    726   # Identity of this package.
   727    727   PACKAGE_NAME='sqlite'
   728    728   PACKAGE_TARNAME='sqlite'
   729         -PACKAGE_VERSION='3.11.0'
   730         -PACKAGE_STRING='sqlite 3.11.0'
          729  +PACKAGE_VERSION='3.11.1'
          730  +PACKAGE_STRING='sqlite 3.11.1'
   731    731   PACKAGE_BUGREPORT=''
   732    732   PACKAGE_URL=''
   733    733   
   734    734   # Factoring default headers for most tests.
   735    735   ac_includes_default="\
   736    736   #include <stdio.h>
   737    737   #ifdef HAVE_SYS_TYPES_H
................................................................................
  1456   1456   #
  1457   1457   # Report the --help message.
  1458   1458   #
  1459   1459   if test "$ac_init_help" = "long"; then
  1460   1460     # Omit some internal or obsolete options to make the list less imposing.
  1461   1461     # This message is too long to be a string in the A/UX 3.1 sh.
  1462   1462     cat <<_ACEOF
  1463         -\`configure' configures sqlite 3.11.0 to adapt to many kinds of systems.
         1463  +\`configure' configures sqlite 3.11.1 to adapt to many kinds of systems.
  1464   1464   
  1465   1465   Usage: $0 [OPTION]... [VAR=VALUE]...
  1466   1466   
  1467   1467   To assign environment variables (e.g., CC, CFLAGS...), specify them as
  1468   1468   VAR=VALUE.  See below for descriptions of some of the useful variables.
  1469   1469   
  1470   1470   Defaults for the options are specified in brackets.
................................................................................
  1521   1521     --build=BUILD     configure for building on BUILD [guessed]
  1522   1522     --host=HOST       cross-compile to build programs to run on HOST [BUILD]
  1523   1523   _ACEOF
  1524   1524   fi
  1525   1525   
  1526   1526   if test -n "$ac_init_help"; then
  1527   1527     case $ac_init_help in
  1528         -     short | recursive ) echo "Configuration of sqlite 3.11.0:";;
         1528  +     short | recursive ) echo "Configuration of sqlite 3.11.1:";;
  1529   1529      esac
  1530   1530     cat <<\_ACEOF
  1531   1531   
  1532   1532   Optional Features:
  1533   1533     --disable-option-checking  ignore unrecognized --enable/--with options
  1534   1534     --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  1535   1535     --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
................................................................................
  1642   1642       cd "$ac_pwd" || { ac_status=$?; break; }
  1643   1643     done
  1644   1644   fi
  1645   1645   
  1646   1646   test -n "$ac_init_help" && exit $ac_status
  1647   1647   if $ac_init_version; then
  1648   1648     cat <<\_ACEOF
  1649         -sqlite configure 3.11.0
         1649  +sqlite configure 3.11.1
  1650   1650   generated by GNU Autoconf 2.69
  1651   1651   
  1652   1652   Copyright (C) 2012 Free Software Foundation, Inc.
  1653   1653   This configure script is free software; the Free Software Foundation
  1654   1654   gives unlimited permission to copy, distribute and modify it.
  1655   1655   _ACEOF
  1656   1656     exit
................................................................................
  2061   2061     eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  2062   2062   
  2063   2063   } # ac_fn_c_check_header_mongrel
  2064   2064   cat >config.log <<_ACEOF
  2065   2065   This file contains any messages produced by compilers while
  2066   2066   running configure, to aid debugging if configure makes a mistake.
  2067   2067   
  2068         -It was created by sqlite $as_me 3.11.0, which was
         2068  +It was created by sqlite $as_me 3.11.1, which was
  2069   2069   generated by GNU Autoconf 2.69.  Invocation command line was
  2070   2070   
  2071   2071     $ $0 $@
  2072   2072   
  2073   2073   _ACEOF
  2074   2074   exec 5>>config.log
  2075   2075   {
................................................................................
 12075  12075   test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
 12076  12076   
 12077  12077   cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 12078  12078   # Save the log message, to keep $0 and so on meaningful, and to
 12079  12079   # report actual input values of CONFIG_FILES etc. instead of their
 12080  12080   # values after options handling.
 12081  12081   ac_log="
 12082         -This file was extended by sqlite $as_me 3.11.0, which was
        12082  +This file was extended by sqlite $as_me 3.11.1, which was
 12083  12083   generated by GNU Autoconf 2.69.  Invocation command line was
 12084  12084   
 12085  12085     CONFIG_FILES    = $CONFIG_FILES
 12086  12086     CONFIG_HEADERS  = $CONFIG_HEADERS
 12087  12087     CONFIG_LINKS    = $CONFIG_LINKS
 12088  12088     CONFIG_COMMANDS = $CONFIG_COMMANDS
 12089  12089     $ $0 $@
................................................................................
 12141  12141   
 12142  12142   Report bugs to the package provider."
 12143  12143   
 12144  12144   _ACEOF
 12145  12145   cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 12146  12146   ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 12147  12147   ac_cs_version="\\
 12148         -sqlite config.status 3.11.0
        12148  +sqlite config.status 3.11.1
 12149  12149   configured by $0, generated by GNU Autoconf 2.69,
 12150  12150     with options \\"\$ac_cs_config\\"
 12151  12151   
 12152  12152   Copyright (C) 2012 Free Software Foundation, Inc.
 12153  12153   This config.status script is free software; the Free Software Foundation
 12154  12154   gives unlimited permission to copy, distribute and modify it."
 12155  12155   

Changes to ext/fts5/fts5_index.c.

   693    693       p->rc = rc;
   694    694       p->nRead++;
   695    695     }
   696    696   
   697    697     assert( (pRet==0)==(p->rc!=SQLITE_OK) );
   698    698     return pRet;
   699    699   }
          700  +
   700    701   
   701    702   /*
   702    703   ** Release a reference to data record returned by an earlier call to
   703    704   ** fts5DataRead().
   704    705   */
   705    706   static void fts5DataRelease(Fts5Data *pData){
   706    707     sqlite3_free(pData);
................................................................................
  2150   2151     int bEndOfPage = 0;
  2151   2152   
  2152   2153     assert( p->rc==SQLITE_OK );
  2153   2154   
  2154   2155     iPgidx = szLeaf;
  2155   2156     iPgidx += fts5GetVarint32(&a[iPgidx], iTermOff);
  2156   2157     iOff = iTermOff;
         2158  +  if( iOff>n ){
         2159  +    p->rc = FTS5_CORRUPT;
         2160  +    return;
         2161  +  }
  2157   2162   
  2158   2163     while( 1 ){
  2159   2164   
  2160   2165       /* Figure out how many new bytes are in this term */
  2161   2166       fts5FastGetVarint32(a, iOff, nNew);
  2162   2167       if( nKeep<nMatch ){
  2163   2168         goto search_failed;
................................................................................
  4495   4500       pNew->nRef = 1;
  4496   4501       pNew->nWriteCounter = pStruct->nWriteCounter;
  4497   4502       pLvl = &pNew->aLevel[pStruct->nLevel];
  4498   4503       pLvl->aSeg = (Fts5StructureSegment*)sqlite3Fts5MallocZero(&p->rc, nByte);
  4499   4504       if( pLvl->aSeg ){
  4500   4505         int iLvl, iSeg;
  4501   4506         int iSegOut = 0;
  4502         -      for(iLvl=0; iLvl<pStruct->nLevel; iLvl++){
         4507  +      /* Iterate through all segments, from oldest to newest. Add them to
         4508  +      ** the new Fts5Level object so that pLvl->aSeg[0] is the oldest
         4509  +      ** segment in the data structure.  */
         4510  +      for(iLvl=pStruct->nLevel-1; iLvl>=0; iLvl--){
  4503   4511           for(iSeg=0; iSeg<pStruct->aLevel[iLvl].nSeg; iSeg++){
  4504   4512             pLvl->aSeg[iSegOut] = pStruct->aLevel[iLvl].aSeg[iSeg];
  4505   4513             iSegOut++;
  4506   4514           }
  4507   4515         }
  4508   4516         pNew->nSegment = pLvl->nSeg = nSeg;
  4509   4517       }else{

Changes to ext/fts5/fts5_main.c.

  2661   2661       }
  2662   2662       if( rc==SQLITE_OK ){
  2663   2663         rc = sqlite3_create_function(
  2664   2664             db, "fts5_source_id", 0, SQLITE_UTF8, p, fts5SourceIdFunc, 0, 0
  2665   2665         );
  2666   2666       }
  2667   2667     }
         2668  +
         2669  +  /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file
         2670  +  ** fts5_test_mi.c is compiled and linked into the executable. And call
         2671  +  ** its entry point to enable the matchinfo() demo.  */
         2672  +#ifdef SQLITE_FTS5_ENABLE_TEST_MI
         2673  +  if( rc==SQLITE_OK ){
         2674  +    extern int sqlite3Fts5TestRegisterMatchinfo(sqlite3*);
         2675  +    rc = sqlite3Fts5TestRegisterMatchinfo(db);
         2676  +  }
         2677  +#endif
         2678  +
  2668   2679     return rc;
  2669   2680   }
  2670   2681   
  2671   2682   /*
  2672   2683   ** The following functions are used to register the module with SQLite. If
  2673   2684   ** this module is being built as part of the SQLite core (SQLITE_CORE is
  2674   2685   ** defined), then sqlite3_open() will call sqlite3Fts5Init() directly.

Changes to ext/fts5/fts5_test_mi.c.

    37     37   ** This file exports a single function that may be called to register the
    38     38   ** matchinfo() implementation with a database handle:
    39     39   **
    40     40   **   int sqlite3Fts5TestRegisterMatchinfo(sqlite3 *db);
    41     41   */
    42     42   
    43     43   
    44         -#ifdef SQLITE_TEST
    45     44   #ifdef SQLITE_ENABLE_FTS5
    46     45   
    47     46   #include "fts5.h"
    48         -#include <tcl.h>
    49     47   #include <assert.h>
    50     48   #include <string.h>
    51     49   
    52     50   typedef struct Fts5MatchinfoCtx Fts5MatchinfoCtx;
           51  +
           52  +#ifndef SQLITE_AMALGAMATION
    53     53   typedef unsigned int u32;
           54  +#endif
    54     55   
    55     56   struct Fts5MatchinfoCtx {
    56     57     int nCol;                       /* Number of cols in FTS5 table */
    57     58     int nPhrase;                    /* Number of phrases in FTS5 query */
    58     59     char *zArg;                     /* nul-term'd copy of 2nd arg */
    59     60     int nRet;                       /* Number of elements in aRet[] */
    60     61     u32 *aRet;                      /* Array of 32-bit unsigned ints to return */
................................................................................
   416    417     /* Register the implementation of matchinfo() */
   417    418     rc = pApi->xCreateFunction(pApi, "matchinfo", 0, fts5MatchinfoFunc, 0);
   418    419   
   419    420     return rc;
   420    421   }
   421    422   
   422    423   #endif /* SQLITE_ENABLE_FTS5 */
   423         -#endif /* SQLITE_TEST */
   424    424   

Changes to ext/fts5/test/fts5_common.tcl.

    12     12   
    13     13   if {![info exists testdir]} {
    14     14     set testdir [file join [file dirname [info script]] .. .. .. test]
    15     15   }
    16     16   source $testdir/tester.tcl
    17     17   
    18     18   ifcapable !fts5 {
    19         -  finish_test
           19  +  proc return_if_no_fts5 {} {
           20  +    finish_test
           21  +    return -code return
           22  +  }
    20     23     return
           24  +} else {
           25  +  proc return_if_no_fts5 {} {}
    21     26   }
    22     27   
    23     28   catch { 
    24     29     sqlite3_fts5_may_be_corrupt 0 
    25     30     reset_db
    26     31   }
    27     32   
    28         -# If SQLITE_ENABLE_FTS5 is not defined, skip this test.
    29         -ifcapable !fts5 {
    30         -  finish_test
    31         -  return
    32         -}
    33         -
    34     33   proc fts5_test_poslist {cmd} {
    35     34     set res [list]
    36     35     for {set i 0} {$i < [$cmd xInstCount]} {incr i} {
    37     36       lappend res [string map {{ } .} [$cmd xInst $i]]
    38     37     }
    39     38     set res
    40     39   }

Changes to ext/fts5/test/fts5bigtok.test.

    10     10   #*************************************************************************
    11     11   # This file implements regression tests for SQLite library.  The
    12     12   # focus of this script is testing the FTS5 module.
    13     13   #
    14     14   
    15     15   source [file join [file dirname [info script]] fts5_common.tcl]
    16     16   set testprefix fts5bigtok
           17  +return_if_no_fts5
    17     18   
    18     19   proc rndterm {} {
    19     20     set L [list a b c d e f g h i j k l m n o p q r s t u v w x y z]
    20     21     set l [lindex $L [expr int(rand() * [llength $L])]]
    21     22     string repeat $l [expr int(rand() * 5) + 60]
    22     23   }
    23     24   

Changes to ext/fts5/test/fts5merge2.test.

     9      9   #
    10     10   #***********************************************************************
    11     11   #
    12     12   # Test that focus on incremental merges of segments.
    13     13   #
    14     14   
    15     15   source [file join [file dirname [info script]] fts5_common.tcl]
    16         -set testprefix fts5merge
           16  +set testprefix fts5merge2
           17  +return_if_no_fts5
    17     18   
    18     19   proc dump_structure {} {
    19     20     db eval {SELECT fts5_decode(id, block) AS t FROM t1_data WHERE id=10} {
    20     21       foreach lvl [lrange $t 1 end] {
    21     22         set seg [string repeat . [expr [llength $lvl]-2]]
    22     23         puts "[lrange $lvl 0 1] $seg"
    23     24       }
    24     25     }
    25     26   }
    26     27   
    27     28   foreach_detail_mode $testprefix {
    28     29   
    29         -if {[detail_is_none]==0} continue
    30         -
    31     30   do_execsql_test 1.0 {
    32     31     CREATE VIRTUAL TABLE t1 USING fts5(x, detail=%DETAIL%);
    33     32     INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
    34     33     INSERT INTO t1(t1, rank) VALUES('crisismerge', 2);
    35     34     INSERT INTO t1 VALUES('1 2 3 4');
    36     35   }
    37     36   

Changes to ext/fts5/test/fts5simple.test.

   405    405     CREATE VIRTUAL TABLE x1 USING fts5(a,b,c);
   406    406   }
   407    407   
   408    408   do_catchsql_test 19.2 {
   409    409     SELECT * FROM x1 WHERE x1 MATCH 'c0 AND (c1 AND (c2 AND (c3 AND (c4 AND (c5 AND (c6 AND (c7 AND (c8 AND (c9 AND (c10 AND (c11 AND (c12 AND (c13 AND (c14 AND (c15 AND (c16 AND (c17 AND (c18 AND (c19 AND (c20 AND (c21 AND (c22 AND (c23 AND (c24 AND (c25 AND (c26 AND (c27 AND (c28 AND (c29 AND (c30 AND (c31 AND (c32 AND (c33 AND (c34 AND (c35 AND (c36 AND (c37 AND (c38 AND (c39 AND (c40 AND (c41 AND (c42 AND (c43 AND (c44 AND (c45 AND (c46 AND (c47 AND (c48 AND (c49 AND (c50 AND (c51 AND (c52 AND (c53 AND (c54 AND (c55 AND (c56 AND (c57 AND (c58 AND (c59 AND (c60 AND (c61 AND (c62 AND (c63 AND (c64 AND (c65 AND (c66 AND (c67 AND (c68 AND (c69 AND (c70 AND (c71 AND (c72 AND (c73 AND (c74 AND (c75 AND (c76 AND (c77 AND (c78 AND (c79 AND (c80 AND (c81 AND (c82 AND (c83 AND (c84 AND (c85 AND (c86 AND (c87 AND (c88 AND (c89 AND (c90 AND (c91 AND (c92 AND (c93 AND (c94 AND (c95 AND (c96 AND (c97 AND (c98 AND (c99 AND (c100 AND (c101 AND (c102 AND (c103 AND (c104 AND (c105 AND (c106 AND (c107 AND (c108 AND (c109 AND (c110 AND (c111 AND (c112 AND (c113 AND (c114 AND (c115 AND (c116 AND (c117 AND (c118 AND (c119 AND (c120 AND (c121 AND (c122 AND (c123 AND (c124 AND (c125 AND (c126 AND (c127 AND (c128 AND (c129 AND (c130 AND (c131 AND (c132 AND (c133 AND (c134 AND (c135 AND (c136 AND (c137 AND (c138 AND (c139 AND (c140 AND (c141 AND (c142 AND (c143 AND (c144 AND (c145 AND (c146 AND (c147 AND (c148 AND (c149 AND (c150 AND (c151 AND (c152 AND (c153 AND (c154 AND (c155 AND (c156 AND (c157 AND (c158 AND (c159 AND (c160 AND (c161 AND (c162 AND (c163 AND (c164 AND (c165 AND (c166 AND (c167 AND (c168 AND (c169 AND (c170 AND (c171 AND (c172 AND (c173 AND (c174 AND (c175 AND (c176 AND (c177 AND (c178 AND (c179 AND (c180 AND (c181 AND (c182 AND (c183 AND (c184 AND (c185 AND (c186 AND (c187 AND (c188 AND (c189 AND (c190 AND (c191 AND (c192 AND (c193 AND (c194 AND (c195 AND (c196 AND (c197 AND (c198 AND (c199 AND c200)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))';
   410    410   } {1 {fts5: parser stack overflow}}
   411    411   
   412         -finish_test
          412  +#-------------------------------------------------------------------------
          413  +reset_db
          414  +do_execsql_test 20.0 {
          415  +  CREATE VIRTUAL TABLE x1 USING fts5(x);
          416  +  INSERT INTO x1(x1, rank) VALUES('pgsz', 32);
          417  +  INSERT INTO x1(rowid, x) VALUES(11111, 'onetwothree');
          418  +}
          419  +do_test 20.1 {
          420  +  for {set i 1} {$i <= 200} {incr i} {
          421  +    execsql { INSERT INTO x1(rowid, x) VALUES($i, 'one two three'); }
          422  +  }
          423  +  execsql { INSERT INTO x1(x1) VALUES('optimize'); }
          424  +  execsql { DELETE FROM x1 WHERE rowid = 4; }
          425  +} {}
          426  +do_execsql_test 20.2 {
          427  +  INSERT INTO x1(x1) VALUES('optimize');
          428  +  INSERT INTO x1(x1) VALUES('integrity-check');
          429  +} {}
   413    430   
          431  +finish_test

Changes to ext/misc/spellfix.c.

  1771   1771   /* End transliterate
  1772   1772   ******************************************************************************
  1773   1773   ******************************************************************************
  1774   1774   ** Begin spellfix1 virtual table.
  1775   1775   */
  1776   1776   
  1777   1777   /* Maximum length of a phonehash used for querying the shadow table */
  1778         -#define SPELLFIX_MX_HASH  8
         1778  +#define SPELLFIX_MX_HASH  32
  1779   1779   
  1780   1780   /* Maximum number of hash strings to examine per query */
  1781   1781   #define SPELLFIX_MX_RUN   1
  1782   1782   
  1783   1783   typedef struct spellfix1_vtab spellfix1_vtab;
  1784   1784   typedef struct spellfix1_cursor spellfix1_cursor;
  1785   1785   

Changes to test/permutations.test.

    82     82   # various test scripts:
    83     83   #
    84     84   #   $alltests
    85     85   #   $allquicktests
    86     86   #
    87     87   set alltests [list]
    88     88   foreach f [glob $testdir/*.test] { lappend alltests [file tail $f] }
    89         -foreach f [glob -nocomplain $testdir/../ext/rtree/*.test] { 
           89  +foreach f [glob -nocomplain       \
           90  +    $testdir/../ext/rtree/*.test  \
           91  +    $testdir/../ext/fts5/test/*.test   \
           92  +] { 
    90     93     lappend alltests $f 
    91     94   }
    92     95   
    93     96   if {$::tcl_platform(platform)!="unix"} {
    94     97     set alltests [test_set $alltests -exclude crash.test crash2.test]
    95     98   }
    96     99   set alltests [test_set $alltests -exclude {
................................................................................
   153    156   lappend ::testsuitelist xxx
   154    157   
   155    158   test_suite "veryquick" -prefix "" -description {
   156    159     "Very" quick test suite. Runs in minutes on a workstation.
   157    160     This test suite is the same as the "quick" tests, except that some files
   158    161     that test malloc and IO errors are omitted.
   159    162   } -files [
   160         -  test_set $allquicktests -exclude *malloc* *ioerr* *fault* *bigfile* *_err*
          163  +  test_set $allquicktests -exclude *malloc* *ioerr* *fault* *bigfile* *_err* \
          164  +      *fts5corrupt* *fts5big* *fts5aj*
   161    165   ]
   162    166   
   163    167   test_suite "extraquick" -prefix "" -description {
   164    168     "Extra" quick test suite. Runs in a few minutes on a workstation.
   165    169     This test suite is the same as the "veryquick" tests, except that
   166    170     slower tests are omitted.
   167    171   } -files [

Changes to test/releasetest.tcl.

   199    199       -DSQLITE_MAX_ATTACHED=62
   200    200     }
   201    201     "Devkit" {
   202    202       -DSQLITE_DEFAULT_FILE_FORMAT=4
   203    203       -DSQLITE_MAX_ATTACHED=30
   204    204       -DSQLITE_ENABLE_COLUMN_METADATA
   205    205       -DSQLITE_ENABLE_FTS4
          206  +    -DSQLITE_ENABLE_FTS5
   206    207       -DSQLITE_ENABLE_FTS4_PARENTHESIS
   207    208       -DSQLITE_DISABLE_FTS4_DEFERRED
   208    209       -DSQLITE_ENABLE_RTREE
   209    210       --enable-json1 --enable-fts5
   210    211     }
   211    212     "No-lookaside" {
   212    213       -DSQLITE_TEST_REALLOC_STRESS=1

Changes to tool/build-all-msvc.bat.

    18     18   REM name of an existing directory to be used as the final destination directory
    19     19   REM for the generated output files, which will be placed in sub-directories
    20     20   REM created therein.  Ideally, the directory specified should be empty.
    21     21   REM
    22     22   REM Example:
    23     23   REM
    24     24   REM                        CD /D C:\dev\sqlite\core
    25         -REM                        tool\build-all-msvc.bat C:\Temp
           25  +REM                        CALL tool\build-all-msvc.bat C:\Temp
    26     26   REM
    27     27   REM In the example above, "C:\dev\sqlite\core" represents the root of the
    28     28   REM source tree for SQLite and "C:\Temp" represents the final destination
    29     29   REM directory for the generated output files.
    30     30   REM
    31     31   REM Please note that the SQLite build process performed by the Makefile
    32     32   REM associated with this batch script requires a Tcl shell to be present
................................................................................
    50     50   REM may be necessary, depending on the platforms to be built.  These values in
    51     51   REM these three variables should be surrounded by double quotes if they contain
    52     52   REM spaces.
    53     53   REM
    54     54   REM There are a few other environment variables that impact the build process
    55     55   REM when set ^(to anything^), they are:
    56     56   REM
           57  +REM                        USE_AUTOCONF_MAKEFILE
           58  +REM
           59  +REM When set, the "autoconf" Makefile for MSVC will be used instead of the main
           60  +REM Makefile for MSVC.  It must exist at "%ROOT%\autoconf\Makefile.msc".
           61  +REM
    57     62   REM                        NOCLEAN
    58     63   REM
    59     64   REM When set, the "clean" target will not be used during each build iteration.
    60     65   REM However, the target binaries, if any, will still be deleted manually prior
    61     66   REM to being rebuilt.  Setting this environment variable is only rarely needed
    62     67   REM and could cause issues in some circumstances; therefore, setting it is not
    63     68   REM recommended.
................................................................................
    64     69   REM
    65     70   REM                        NOSYMBOLS
    66     71   REM
    67     72   REM When set, copying of symbol files ^(*.pdb^) created during the build will
    68     73   REM be skipped and they will not appear in the final destination directory.
    69     74   REM Setting this environment variable is never strictly needed and could cause
    70     75   REM issues in some circumstances; therefore, setting it is not recommended.
           76  +REM
           77  +REM                        NOMEMDEBUG
           78  +REM
           79  +REM When set, disables use of MEMDEBUG when building binaries for the "Debug"
           80  +REM configuration.
    71     81   REM
    72     82   REM                        BUILD_ALL_SHELL
    73     83   REM
    74     84   REM When set, the command line shell will be built for each selected platform
    75     85   REM and configuration as well.  In addition, the command line shell binaries
    76     86   REM will be copied, with their symbols, to the final destination directory.
    77     87   REM
................................................................................
    84     94   REM                        USE_WINV100_NSDKLIBPATH
    85     95   REM
    86     96   REM When set, modifies how the NSDKLIBPATH environment variable is built, based
    87     97   REM on the WindowsSdkDir environment variable.  It causes this batch script to
    88     98   REM assume the Windows 10.0 SDK location should be used.
    89     99   REM
    90    100   REM                        NMAKE_ARGS
          101  +REM                        NMAKE_ARGS_DEBUG
          102  +REM                        NMAKE_ARGS_RETAIL
    91    103   REM
    92         -REM When set, the value is expanded and passed to the NMAKE command line, after
    93         -REM its other arguments.  This is used to specify additional NMAKE options, for
    94         -REM example:
          104  +REM When set, these values are expanded and passed to the NMAKE command line,
          105  +REM after its other arguments.  These may be used to specify additional NMAKE
          106  +REM options, for example:
    95    107   REM
    96    108   REM                        SET NMAKE_ARGS=FOR_WINRT=1
          109  +REM                        SET NMAKE_ARGS_DEBUG=MEMDEBUG=1
          110  +REM                        SET NMAKE_ARGS_RETAIL=WIN32HEAP=1
    97    111   REM
    98    112   REM Using the above command before running this tool will cause the compiled
    99    113   REM binaries to target the WinRT environment, which provides a subset of the
   100    114   REM Win32 API.
          115  +REM
          116  +REM                        DLL_FILE_NAME
          117  +REM                        DLL_PDB_FILE_NAME
          118  +REM                        LIB_FILE_NAME
          119  +REM                        EXE_FILE_NAME
          120  +REM                        EXE_PDB_FILE_NAME
          121  +REM
          122  +REM When set, these values will override the associated target file name used
          123  +REM for the build.
   101    124   REM
   102    125   SETLOCAL
   103    126   
   104    127   REM SET __ECHO=ECHO
   105    128   REM SET __ECHO2=ECHO
   106    129   REM SET __ECHO3=ECHO
   107    130   IF NOT DEFINED _AECHO (SET _AECHO=REM)
................................................................................
   200    223   %_VECHO% Configurations = '%CONFIGURATIONS%'
   201    224   
   202    225   REM
   203    226   REM NOTE: If the command used to invoke NMAKE is not already set, use the
   204    227   REM       default.
   205    228   REM
   206    229   IF NOT DEFINED NMAKE_CMD (
   207         -  SET NMAKE_CMD=nmake -B -f Makefile.msc
          230  +  IF DEFINED USE_AUTOCONF_MAKEFILE (
          231  +    SET NMAKE_CMD=nmake -B -f autoconf\Makefile.msc
          232  +  ) ELSE (
          233  +    SET NMAKE_CMD=nmake -B -f Makefile.msc
          234  +  )
   208    235   )
   209    236   
   210    237   %_VECHO% NmakeCmd = '%NMAKE_CMD%'
   211    238   %_VECHO% NmakeArgs = '%NMAKE_ARGS%'
          239  +%_VECHO% NmakeArgsDebug = '%NMAKE_ARGS_DEBUG%'
          240  +%_VECHO% NmakeArgsRetail = '%NMAKE_ARGS_RETAIL%'
   212    241   
   213    242   REM
   214    243   REM NOTE: Setup environment variables to translate between the MSVC platform
   215    244   REM       names and the names to be used for the platform-specific binary
   216    245   REM       directories.
   217    246   REM
   218    247   SET amd64_NAME=x64
................................................................................
   250    279   REM NOTE: A Tcl shell executable is required during the SQLite build process
   251    280   REM       unless a pre-existing amalgamation file is used.
   252    281   REM
   253    282   IF NOT DEFINED %TCLSH_FILE%_PATH (
   254    283     ECHO The Tcl shell executable "%TCLSH_FILE%" is required to be in the PATH.
   255    284     GOTO errors
   256    285   )
          286  +
          287  +REM
          288  +REM NOTE: Setup the default names for the build targets we are creating.  Any
          289  +REM       ^(or all^) of these may end up being overridden.
          290  +REM
          291  +IF NOT DEFINED DLL_FILE_NAME (
          292  +  SET DLL_FILE_NAME=sqlite3.dll
          293  +)
          294  +
          295  +IF NOT DEFINED DLL_PDB_FILE_NAME (
          296  +  SET DLL_PDB_FILE_NAME=sqlite3.pdb
          297  +)
          298  +
          299  +IF NOT DEFINED LIB_FILE_NAME (
          300  +  SET LIB_FILE_NAME=sqlite3.lib
          301  +)
          302  +
          303  +IF NOT DEFINED EXE_FILE_NAME (
          304  +  SET EXE_FILE_NAME=sqlite3.exe
          305  +)
          306  +
          307  +IF NOT DEFINED EXE_PDB_FILE_NAME (
          308  +  SET EXE_PDB_FILE_NAME=sqlite3sh.pdb
          309  +)
   257    310   
   258    311   REM
   259    312   REM NOTE: Set the TOOLPATH variable to contain all the directories where the
   260    313   REM       external tools were found in the search above.
   261    314   REM
   262    315   CALL :fn_CopyVariable %TCLSH_FILE%_PATH TOOLPATH
   263    316   
................................................................................
   430    483           REM
   431    484           SET DEBUG=3
   432    485   
   433    486           REM
   434    487           REM NOTE: Setting this to non-zero should enable the SQLITE_MEMDEBUG
   435    488           REM       define.
   436    489           REM
   437         -        SET MEMDEBUG=1
          490  +        IF NOT DEFINED NOMEMDEBUG (
          491  +          SET MEMDEBUG=1
          492  +        )
   438    493         ) ELSE (
   439    494           CALL :fn_UnsetVariable DEBUG
   440    495           CALL :fn_UnsetVariable MEMDEBUG
   441    496         )
   442    497   
          498  +      REM
          499  +      REM NOTE: Copy the extra NMAKE arguments for this configuration into the
          500  +      REM       common variable used by the actual commands.
          501  +      REM
          502  +      CALL :fn_CopyVariable NMAKE_ARGS_%%B NMAKE_ARGS_CFG
          503  +
   443    504         REM
   444    505         REM NOTE: Launch a nested command shell to perform the following steps:
   445    506         REM
   446    507         REM       1. Setup the MSVC environment for this platform using the
   447    508         REM          official batch file.
   448    509         REM
   449    510         REM       2. Make sure that no stale build output files are present.
................................................................................
   542    603           REM
   543    604           REM NOTE: Unless prevented from doing so, invoke NMAKE with the MSVC
   544    605           REM       makefile to clean any stale build output from previous
   545    606           REM       iterations of this loop and/or previous runs of this batch
   546    607           REM       file, etc.
   547    608           REM
   548    609           IF NOT DEFINED NOCLEAN (
   549         -          %__ECHO% %NMAKE_CMD% clean
          610  +          CALL :fn_MakeClean %%D
   550    611   
   551    612             IF ERRORLEVEL 1 (
   552    613               ECHO Failed to clean for platform %%P.
   553    614               GOTO errors
   554    615             )
   555    616           ) ELSE (
   556    617             REM
   557    618             REM NOTE: Even when the cleaning step has been disabled, we still
   558    619             REM       need to remove the build output for all the files we are
   559    620             REM       specifically wanting to build for each platform.
   560    621             REM
   561    622             %_AECHO% Cleaning final core library output files only...
   562         -          %__ECHO% DEL /Q *.lo sqlite3.dll sqlite3.lib sqlite3.pdb 2%REDIRECT% NUL
          623  +          %__ECHO% DEL /Q *.lo "%DLL_FILE_NAME%" "%LIB_FILE_NAME%" "%DLL_PDB_FILE_NAME%" 2%REDIRECT% NUL
   563    624           )
   564    625   
   565    626           REM
   566    627           REM NOTE: Call NMAKE with the MSVC makefile to build the "sqlite3.dll"
   567    628           REM       binary.  The x86 compiler will be used to compile the native
   568    629           REM       command line tools needed during the build process itself.
   569    630           REM       Also, disable looking for and/or linking to the native Tcl
   570    631           REM       runtime library.
   571    632           REM
   572         -        %__ECHO% %NMAKE_CMD% sqlite3.dll XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS%
          633  +        CALL :fn_MakeDll %%D
   573    634   
   574    635           IF ERRORLEVEL 1 (
   575         -          ECHO Failed to build %%B "sqlite3.dll" for platform %%P.
          636  +          ECHO Failed to build %%B "%DLL_FILE_NAME%" for platform %%P.
   576    637             GOTO errors
   577    638           )
   578    639   
   579    640           REM
   580    641           REM NOTE: Copy the "sqlite3.dll" file to the appropriate directory for
   581    642           REM       the build and platform beneath the binary directory.
   582    643           REM
   583         -        %__ECHO% XCOPY sqlite3.dll "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
          644  +        %__ECHO% XCOPY "%DLL_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
   584    645   
   585    646           IF ERRORLEVEL 1 (
   586         -          ECHO Failed to copy "sqlite3.dll" to "%BINARYDIRECTORY%\%%B\%%D\".
          647  +          ECHO Failed to copy "%DLL_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
   587    648             GOTO errors
   588    649           )
   589    650   
   590    651           REM
   591    652           REM NOTE: Copy the "sqlite3.lib" file to the appropriate directory for
   592    653           REM       the build and platform beneath the binary directory.
   593    654           REM
   594         -        %__ECHO% XCOPY sqlite3.lib "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
          655  +        %__ECHO% XCOPY "%LIB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
   595    656   
   596    657           IF ERRORLEVEL 1 (
   597         -          ECHO Failed to copy "sqlite3.lib" to "%BINARYDIRECTORY%\%%B\%%D\".
          658  +          ECHO Failed to copy "%LIB_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
   598    659             GOTO errors
   599    660           )
   600    661   
   601    662           REM
   602    663           REM NOTE: Copy the "sqlite3.pdb" file to the appropriate directory for
   603    664           REM       the build and platform beneath the binary directory unless we
   604    665           REM       are prevented from doing so.
   605    666           REM
   606    667           IF NOT DEFINED NOSYMBOLS (
   607         -          %__ECHO% XCOPY sqlite3.pdb "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
          668  +          %__ECHO% XCOPY "%DLL_PDB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
   608    669   
   609    670             IF ERRORLEVEL 1 (
   610         -            ECHO Failed to copy "sqlite3.pdb" to "%BINARYDIRECTORY%\%%B\%%D\".
          671  +            ECHO Failed to copy "%DLL_PDB_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
   611    672               GOTO errors
   612    673             )
   613    674           )
   614    675   
   615    676           REM
   616    677           REM NOTE: If requested, also build the shell executable.
   617    678           REM
................................................................................
   623    684             IF DEFINED NOCLEAN (
   624    685               REM
   625    686               REM NOTE: Even when the cleaning step has been disabled, we still
   626    687               REM       need to remove the build output for all the files we are
   627    688               REM       specifically wanting to build for each platform.
   628    689               REM
   629    690               %_AECHO% Cleaning final shell executable output files only...
   630         -            %__ECHO% DEL /Q sqlite3.exe sqlite3sh.pdb 2%REDIRECT% NUL
          691  +            %__ECHO% DEL /Q "%EXE_FILE_NAME%" "%EXE_PDB_FILE_NAME%" 2%REDIRECT% NUL
   631    692             )
   632    693   
   633    694             REM
   634    695             REM NOTE: Call NMAKE with the MSVC makefile to build the "sqlite3.exe"
   635    696             REM       binary.  The x86 compiler will be used to compile the native
   636    697             REM       command line tools needed during the build process itself.
   637    698             REM       Also, disable looking for and/or linking to the native Tcl
   638    699             REM       runtime library.
   639    700             REM
   640         -          %__ECHO% %NMAKE_CMD% sqlite3.exe XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS%
          701  +          CALL :fn_MakeExe %%D
   641    702   
   642    703             IF ERRORLEVEL 1 (
   643         -            ECHO Failed to build %%B "sqlite3.exe" for platform %%P.
          704  +            ECHO Failed to build %%B "%EXE_FILE_NAME%" for platform %%P.
   644    705               GOTO errors
   645    706             )
   646    707   
   647    708             REM
   648    709             REM NOTE: Copy the "sqlite3.exe" file to the appropriate directory
   649    710             REM       for the build and platform beneath the binary directory.
   650    711             REM
   651         -          %__ECHO% XCOPY sqlite3.exe "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
          712  +          %__ECHO% XCOPY "%EXE_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
   652    713   
   653    714             IF ERRORLEVEL 1 (
   654         -            ECHO Failed to copy "sqlite3.exe" to "%BINARYDIRECTORY%\%%B\%%D\".
          715  +            ECHO Failed to copy "%EXE_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
   655    716               GOTO errors
   656    717             )
   657    718   
   658    719             REM
   659    720             REM NOTE: Copy the "sqlite3sh.pdb" file to the appropriate directory
   660    721             REM       for the build and platform beneath the binary directory
   661    722             REM       unless we are prevented from doing so.
   662    723             REM
   663    724             IF NOT DEFINED NOSYMBOLS (
   664         -            %__ECHO% XCOPY sqlite3sh.pdb "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
          725  +            %__ECHO% XCOPY "%EXE_PDB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
   665    726   
   666    727               IF ERRORLEVEL 1 (
   667         -              ECHO Failed to copy "sqlite3sh.pdb" to "%BINARYDIRECTORY%\%%B\%%D\".
          728  +              ECHO Failed to copy "%EXE_PDB_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
   668    729                 GOTO errors
   669    730               )
   670    731             )
   671    732           )
   672    733         )
   673    734       )
   674    735     )
................................................................................
   691    752     GOTO errors
   692    753   )
   693    754   
   694    755   REM
   695    756   REM NOTE: If we get to this point, we have succeeded.
   696    757   REM
   697    758   GOTO no_errors
          759  +
          760  +:fn_MakeClean
          761  +  %__ECHO% %NMAKE_CMD% clean "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG%
          762  +  GOTO :EOF
          763  +
          764  +:fn_MakeDll
          765  +  %__ECHO% %NMAKE_CMD% "%DLL_FILE_NAME%" "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG%
          766  +  GOTO :EOF
          767  +
          768  +:fn_MakeExe
          769  +  %__ECHO% %NMAKE_CMD% "%EXE_FILE_NAME%" "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG%
          770  +  GOTO :EOF
   698    771   
   699    772   :fn_ShowVariable
   700    773     SETLOCAL
   701    774     SET __ECHO_CMD=ECHO %%%2%%
   702    775     FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO (
   703    776       IF NOT "%%V" == "" (
   704    777         IF NOT "%%V" == "%%%2%%" (

Changes to tool/mkmsvcmin.tcl.

    88     88         {# <<block${i}>>\n.*?# <</block${i}>>\n}] \
    89     89         $data [escapeSubSpec $blocks($i)] data
    90     90   }
    91     91   
    92     92   set data [string map [list " -I\$(TOP)\\src" ""] $data]
    93     93   set data [string map [list " /DEF:sqlite3.def" ""] $data]
    94     94   set data [string map [list " sqlite3.def" ""] $data]
           95  +set data [string map [list " libsqlite3.lib" ""] $data]
    95     96   set data [string map [list " \$(ALL_TCL_TARGETS)" ""] $data]
    96     97   set data [string map [list "\$(TOP)\\src\\" "\$(TOP)\\"] $data]
    97     98   
    98     99   writeFile $toFileName $data

Changes to tool/mkvsix.tcl.

   459    459     if {$vsVersion ne "2015"} then {
   460    460       fail [appendArgs \
   461    461           "unsupported combination, package flavor " $packageFlavor \
   462    462           " is only supported with Visual Studio 2015"]
   463    463     }
   464    464     set shortName $shortNames($packageFlavor,$vsVersion)
   465    465     set displayName $displayNames($packageFlavor,$vsVersion)
   466         -  set targetPlatformIdentifier UWP
          466  +  set targetPlatformIdentifier UAP; # NOTE: Not "UWP".
   467    467     set targetPlatformVersion v0.8.0.0
   468    468     set minVsVersion [getMinVsVersionXmlChunk $vsVersion]
   469    469     set maxPlatformVersion \
   470    470         [getMaxPlatformVersionXmlChunk $packageFlavor $vsVersion]
   471    471     set extraSdkPath "\\..\\$targetPlatformIdentifier"
   472    472     set extraFileListAttributes \
   473    473         [getExtraFileListXmlChunk $packageFlavor $vsVersion]