Index: third_party/sqlite/src/main.mk |
diff --git a/third_party/sqlite/src/main.mk b/third_party/sqlite/src/main.mk |
index 2a8da33266c9ecf6601ef89e0342e3d0d8a1a162..a8e8ffe27562654ddc8af50720aabfd75018de3f 100644 |
--- a/third_party/sqlite/src/main.mk |
+++ b/third_party/sqlite/src/main.mk |
@@ -46,6 +46,7 @@ |
TCCX = $(TCC) $(OPTS) -I. -I$(TOP)/src -I$(TOP) |
TCCX += -I$(TOP)/ext/rtree -I$(TOP)/ext/icu -I$(TOP)/ext/fts3 |
TCCX += -I$(TOP)/ext/async -I$(TOP)/ext/userauth |
+TCCX += -I$(TOP)/ext/session |
TCCX += -I$(TOP)/ext/fts5 |
THREADLIB += $(LIBS) |
@@ -61,20 +62,22 @@ LIBOBJ+= vdbe.o parse.o \ |
fts3_tokenize_vtab.o \ |
fts3_unicode.o fts3_unicode2.o \ |
fts3_write.o fts5.o func.o global.o hash.o \ |
- icu.o insert.o journal.o json1.o legacy.o loadext.o \ |
+ icu.o insert.o json1.o legacy.o loadext.o \ |
main.o malloc.o mem0.o mem1.o mem2.o mem3.o mem5.o \ |
memjournal.o \ |
mutex.o mutex_noop.o mutex_unix.o mutex_w32.o \ |
notify.o opcodes.o os.o os_unix.o os_win.o \ |
pager.o pcache.o pcache1.o pragma.o prepare.o printf.o \ |
- random.o recover.o recover_varint.o resolve.o rowset.o rtree.o \ |
- select.o sqlite3rbu.o status.o \ |
+ random.o resolve.o rowset.o rtree.o select.o sqlite3rbu.o status.o \ |
table.o threads.o tokenize.o treeview.o trigger.o \ |
update.o userauth.o util.o vacuum.o \ |
vdbeapi.o vdbeaux.o vdbeblob.o vdbemem.o vdbesort.o \ |
vdbetrace.o wal.o walker.o where.o wherecode.o whereexpr.o \ |
utf.o vtab.o |
+LIBOBJ += recover.o recover_varint.o resolve.o |
+ |
+LIBOBJ += sqlite3session.o |
# All of the source code files. |
# |
@@ -105,7 +108,6 @@ SRC = \ |
$(TOP)/src/hash.h \ |
$(TOP)/src/hwtime.h \ |
$(TOP)/src/insert.c \ |
- $(TOP)/src/journal.c \ |
$(TOP)/src/legacy.c \ |
$(TOP)/src/loadext.c \ |
$(TOP)/src/main.c \ |
@@ -225,6 +227,9 @@ SRC += \ |
$(TOP)/ext/rtree/rtree.h \ |
$(TOP)/ext/rtree/rtree.c |
SRC += \ |
+ $(TOP)/ext/session/sqlite3session.c \ |
+ $(TOP)/ext/session/sqlite3session.h |
+SRC += \ |
$(TOP)/ext/userauth/userauth.c \ |
$(TOP)/ext/userauth/sqlite3userauth.h |
SRC += \ |
@@ -286,9 +291,11 @@ TESTSRC = \ |
$(TOP)/src/test_autoext.c \ |
$(TOP)/src/test_async.c \ |
$(TOP)/src/test_backup.c \ |
+ $(TOP)/src/test_bestindex.c \ |
$(TOP)/src/test_blob.c \ |
$(TOP)/src/test_btree.c \ |
$(TOP)/src/test_config.c \ |
+ $(TOP)/src/test_delete.c \ |
$(TOP)/src/test_demovfs.c \ |
$(TOP)/src/test_devsym.c \ |
$(TOP)/src/test_fs.c \ |
@@ -320,7 +327,9 @@ TESTSRC = \ |
# |
TESTSRC += \ |
$(TOP)/ext/misc/amatch.c \ |
+ $(TOP)/ext/misc/carray.c \ |
$(TOP)/ext/misc/closure.c \ |
+ $(TOP)/ext/misc/csv.c \ |
$(TOP)/ext/misc/eval.c \ |
$(TOP)/ext/misc/fileio.c \ |
$(TOP)/ext/misc/fuzzer.c \ |
@@ -328,13 +337,15 @@ TESTSRC += \ |
$(TOP)/ext/misc/nextchar.c \ |
$(TOP)/ext/misc/percentile.c \ |
$(TOP)/ext/misc/regexp.c \ |
+ $(TOP)/ext/misc/remember.c \ |
$(TOP)/ext/misc/series.c \ |
$(TOP)/ext/misc/spellfix.c \ |
$(TOP)/ext/misc/totype.c \ |
$(TOP)/ext/misc/wholenumber.c \ |
$(TOP)/ext/misc/vfslog.c \ |
$(TOP)/ext/fts5/fts5_tcl.c \ |
- $(TOP)/ext/fts5/fts5_test_mi.c |
+ $(TOP)/ext/fts5/fts5_test_mi.c \ |
+ $(TOP)/ext/fts5/fts5_test_tok.c |
#TESTSRC += $(TOP)/ext/fts2/fts2_tokenizer.c |
@@ -383,7 +394,9 @@ TESTSRC2 = \ |
$(TOP)/ext/fts3/fts3_expr.c \ |
$(TOP)/ext/fts3/fts3_tokenizer.c \ |
$(TOP)/ext/fts3/fts3_write.c \ |
- $(TOP)/ext/async/sqlite3async.c |
+ $(TOP)/ext/async/sqlite3async.c \ |
+ $(TOP)/ext/session/sqlite3session.c \ |
+ $(TOP)/ext/session/test_session.c |
# Header files used by all library source files. |
# |
@@ -445,7 +458,8 @@ TESTPROGS = \ |
testfixture$(EXE) \ |
sqlite3$(EXE) \ |
sqlite3_analyzer$(EXE) \ |
- sqldiff$(EXE) |
+ sqldiff$(EXE) \ |
+ dbhash$(EXE) |
# Databases containing fuzzer test cases |
# |
@@ -453,7 +467,8 @@ FUZZDATA = \ |
$(TOP)/test/fuzzdata1.db \ |
$(TOP)/test/fuzzdata2.db \ |
$(TOP)/test/fuzzdata3.db \ |
- $(TOP)/test/fuzzdata4.db |
+ $(TOP)/test/fuzzdata4.db \ |
+ $(TOP)/test/fuzzdata5.db |
# Standard options to testfixture |
# |
@@ -462,8 +477,15 @@ TESTOPTS = --verbose=file --output=test-out.txt |
# Extra compiler options for various shell tools |
# |
SHELL_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 |
+SHELL_OPT += -DSQLITE_ENABLE_EXPLAIN_COMMENTS |
+SHELL_OPT += -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION |
FUZZERSHELL_OPT = -DSQLITE_ENABLE_JSON1 |
FUZZCHECK_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5 |
+DBFUZZ_OPT = |
+KV_OPT = -DSQLITE_THREADSAFE=0 -DSQLITE_DIRECT_OVERFLOW_READ |
+DBSELFTEST_OPT = -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION |
+DBSELFTEST_OPT += -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 |
+ST_OPT = -DSQLITE_THREADSAFE=0 |
# This is the default Makefile target. The objects listed here |
# are what get build when you type just "make" with no arguments. |
@@ -482,24 +504,46 @@ sqldiff$(EXE): $(TOP)/tool/sqldiff.c sqlite3.c sqlite3.h |
$(TCCX) -o sqldiff$(EXE) -DSQLITE_THREADSAFE=0 \ |
$(TOP)/tool/sqldiff.c sqlite3.c $(TLIBS) $(THREADLIB) |
+dbhash$(EXE): $(TOP)/tool/dbhash.c sqlite3.c sqlite3.h |
+ $(TCCX) -o dbhash$(EXE) -DSQLITE_THREADSAFE=0 \ |
+ $(TOP)/tool/dbhash.c sqlite3.c $(TLIBS) $(THREADLIB) |
+ |
+scrub$(EXE): $(TOP)/ext/misc/scrub.c sqlite3.o |
+ $(TCC) -I. -DSCRUB_STANDALONE -o scrub$(EXE) $(TOP)/ext/misc/scrub.c sqlite3.o $(THREADLIB) |
+ |
+srcck1$(EXE): $(TOP)/tool/srcck1.c |
+ $(BCC) -o srcck1$(EXE) $(TOP)/tool/srcck1.c |
+ |
+sourcetest: srcck1$(EXE) sqlite3.c |
+ ./srcck1 sqlite3.c |
+ |
fuzzershell$(EXE): $(TOP)/tool/fuzzershell.c sqlite3.c sqlite3.h |
$(TCCX) -o fuzzershell$(EXE) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \ |
$(FUZZERSHELL_OPT) $(TOP)/tool/fuzzershell.c sqlite3.c \ |
$(TLIBS) $(THREADLIB) |
-fuzzcheck$(EXE): $(TOP)/test/fuzzcheck.c sqlite3.c sqlite3.h |
+dbfuzz$(EXE): $(TOP)/test/dbfuzz.c sqlite3.c sqlite3.h |
+ $(TCCX) -o dbfuzz$(EXE) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \ |
+ $(DBFUZZ_OPT) $(TOP)/test/dbfuzz.c sqlite3.c \ |
+ $(TLIBS) $(THREADLIB) |
+ |
+fuzzcheck$(EXE): $(TOP)/test/fuzzcheck.c sqlite3.c sqlite3.h $(TOP)/test/ossfuzz.c |
$(TCCX) -o fuzzcheck$(EXE) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \ |
+ -DSQLITE_ENABLE_MEMSYS5 $(FUZZCHECK_OPT) -DSQLITE_OSS_FUZZ \ |
+ $(TOP)/test/fuzzcheck.c $(TOP)/test/ossfuzz.c sqlite3.c $(TLIBS) $(THREADLIB) |
+ |
+ossshell$(EXE): $(TOP)/test/ossfuzz.c $(TOP)/test/ossshell.c sqlite3.c sqlite3.h |
+ $(TCCX) -o ossshell$(EXE) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \ |
-DSQLITE_ENABLE_MEMSYS5 $(FUZZCHECK_OPT) \ |
- $(TOP)/test/fuzzcheck.c sqlite3.c $(TLIBS) $(THREADLIB) |
+ $(TOP)/test/ossfuzz.c $(TOP)/test/ossshell.c sqlite3.c $(TLIBS) $(THREADLIB) |
mptester$(EXE): sqlite3.c $(TOP)/mptest/mptest.c |
$(TCCX) -o $@ -I. $(TOP)/mptest/mptest.c sqlite3.c \ |
$(TLIBS) $(THREADLIB) |
-MPTEST1=./mptester$(EXE) mptest.db $(TOP)/mptest/crash01.test --repeat 20 |
-MPTEST2=./mptester$(EXE) mptest.db $(TOP)/mptest/multiwrite01.test --repeat 20 |
+MPTEST1=./mptester$(EXE) mptest1.db $(TOP)/mptest/crash01.test --repeat 20 |
+MPTEST2=./mptester$(EXE) mptest2.db $(TOP)/mptest/multiwrite01.test --repeat 20 |
mptest: mptester$(EXE) |
- rm -f mptest.db |
$(MPTEST1) --journalmode DELETE |
$(MPTEST2) --journalmode WAL |
$(MPTEST1) --journalmode WAL |
@@ -531,6 +575,7 @@ target_source: $(SRC) $(TOP)/tool/vdbe-compress.tcl fts5.c |
sqlite3.c: target_source $(TOP)/tool/mksqlite3c.tcl |
tclsh $(TOP)/tool/mksqlite3c.tcl |
cp tsrc/shell.c tsrc/sqlite3ext.h . |
+ cp $(TOP)/ext/session/sqlite3session.h . |
echo '#ifndef USE_SYSTEM_SQLITE' >tclsqlite3.c |
cat sqlite3.c >>tclsqlite3.c |
echo '#endif /* USE_SYSTEM_SQLITE */' >>tclsqlite3.c |
@@ -697,10 +742,12 @@ fts5.c: $(FTS5_SRC) $(FTS5_HDR) |
userauth.o: $(TOP)/ext/userauth/userauth.c $(HDR) $(EXTHDR) |
$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/userauth/userauth.c |
+sqlite3session.o: $(TOP)/ext/session/sqlite3session.c $(HDR) $(EXTHDR) |
+ $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/session/sqlite3session.c |
+ |
sqlite3rbu.o: $(TOP)/ext/rbu/sqlite3rbu.c $(HDR) $(EXTHDR) |
$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/rbu/sqlite3rbu.c |
- |
# Rules for building test programs and for running tests |
# |
tclsqlite3: $(TOP)/src/tclsqlite.c libsqlite3.a |
@@ -722,7 +769,9 @@ sqlite3_analyzer$(EXE): sqlite3_analyzer.c |
# Rules to build the 'testfixture' application. |
# |
TESTFIXTURE_FLAGS = -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 |
-TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE |
+TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE |
+TESTFIXTURE_FLAGS += -DSQLITE_SERIES_CONSTRAINT_VERIFY=1 |
+TESTFIXTURE_FLAGS += -DSQLITE_DEFAULT_PAGE_SIZE=1024 |
TESTFIXTURE_FLAGS += -DDEFAULT_ENABLE_RECOVER=1 |
testfixture$(EXE): $(TESTSRC2) libsqlite3.a $(TESTSRC) $(TOP)/src/tclsqlite.c |
@@ -730,9 +779,11 @@ testfixture$(EXE): $(TESTSRC2) libsqlite3.a $(TESTSRC) $(TOP)/src/tclsqlite.c |
$(TESTSRC) $(TESTSRC2) $(TOP)/src/tclsqlite.c \ |
-o testfixture$(EXE) $(LIBTCL) libsqlite3.a $(THREADLIB) |
-amalgamation-testfixture$(EXE): sqlite3.c $(TESTSRC) $(TOP)/src/tclsqlite.c |
+amalgamation-testfixture$(EXE): sqlite3.c $(TESTSRC) $(TOP)/src/tclsqlite.c \ |
+ $(TOP)/ext/session/test_session.c |
$(TCCX) $(TCL_FLAGS) -DTCLSH=1 $(TESTFIXTURE_FLAGS) \ |
$(TESTSRC) $(TOP)/src/tclsqlite.c sqlite3.c \ |
+ $(TOP)/ext/session/test_session.c \ |
-o testfixture$(EXE) $(LIBTCL) $(THREADLIB) |
fts3-testfixture$(EXE): sqlite3.c fts3amal.c $(TESTSRC) $(TOP)/src/tclsqlite.c |
@@ -762,6 +813,11 @@ fastfuzztest: fuzzcheck$(EXE) $(FUZZDATA) |
valgrindfuzz: fuzzcheck$(EXE) $(FUZZDATA) |
valgrind ./fuzzcheck$(EXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA) |
+# The veryquick.test TCL tests. |
+# |
+tcltest: ./testfixture$(EXE) |
+ ./testfixture$(EXE) $(TOP)/test/veryquick.test $(TESTOPTS) |
+ |
# A very quick test using only testfixture and omitting all the slower |
# tests. Designed to run in under 3 minutes on a workstation. |
# |
@@ -770,9 +826,7 @@ quicktest: ./testfixture$(EXE) |
# The default test case. Runs most of the faster standard TCL tests, |
# and fuzz tests, and sqlite3_analyzer and sqldiff tests. |
-# |
-test: $(TESTPROGS) fastfuzztest |
- ./testfixture$(EXE) $(TOP)/test/veryquick.test $(TESTOPTS) |
+test: fastfuzztest sourcetest $(TESTPROGS) tcltest |
# Run a test using valgrind. This can take a really long time |
# because valgrind is so much slower than a native machine. |
@@ -828,6 +882,10 @@ showwal$(EXE): $(TOP)/tool/showwal.c sqlite3.o |
$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o showwal$(EXE) \ |
$(TOP)/tool/showwal.c sqlite3.o $(THREADLIB) |
+changeset$(EXE): $(TOP)/ext/session/changeset.c sqlite3.o |
+ $(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o changeset$(EXE) \ |
+ $(TOP)/ext/session/changeset.c sqlite3.o $(THREADLIB) |
+ |
fts3view$(EXE): $(TOP)/ext/fts3/tool/fts3view.c sqlite3.o |
$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o fts3view$(EXE) \ |
$(TOP)/ext/fts3/tool/fts3view.c sqlite3.o $(THREADLIB) |
@@ -843,8 +901,14 @@ wordcount$(EXE): $(TOP)/test/wordcount.c sqlite3.c |
$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o wordcount$(EXE) \ |
$(TOP)/test/wordcount.c sqlite3.c |
-speedtest1$(EXE): $(TOP)/test/speedtest1.c sqlite3.o |
- $(TCC) -I. $(OTAFLAGS) -o speedtest1$(EXE) $(TOP)/test/speedtest1.c sqlite3.o $(THREADLIB) |
+speedtest1$(EXE): $(TOP)/test/speedtest1.c sqlite3.c |
+ $(TCCX) -I. $(ST_OPT) -o speedtest1$(EXE) $(TOP)/test/speedtest1.c sqlite3.c $(THREADLIB) |
+ |
+kvtest$(EXE): $(TOP)/test/kvtest.c sqlite3.c |
+ $(TCCX) -I. $(KV_OPT) -o kvtest$(EXE) $(TOP)/test/kvtest.c sqlite3.c $(THREADLIB) |
+ |
+dbselftest$(EXE): $(TOP)/test/dbselftest.c sqlite3.c |
+ $(TCCX) -I. $(DBSELFTEST_OPT) -o dbselftest$(EXE) $(TOP)/test/dbselftest.c sqlite3.c $(THREADLIB) |
rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.o |
$(TCC) -I. -o rbu$(EXE) $(TOP)/ext/rbu/rbu.c sqlite3.o \ |
@@ -860,10 +924,15 @@ loadfts: $(TOP)/tool/loadfts.c libsqlite3.a |
checksymbols: sqlite3.o |
nm -g --defined-only sqlite3.o | grep -v " sqlite3_" ; test $$? -ne 0 |
-# Build the amalgamation-autoconf package. |
+# Build the amalgamation-autoconf package. The amalamgation-tarball target builds |
+# a tarball named for the version number. Ex: sqlite-autoconf-3110000.tar.gz. |
+# The snapshot-tarball target builds a tarball named by the SHA1 hash |
# |
amalgamation-tarball: sqlite3.c |
- TOP=$(TOP) sh $(TOP)/tool/mkautoconfamal.sh |
+ TOP=$(TOP) sh $(TOP)/tool/mkautoconfamal.sh --normal |
+ |
+snapshot-tarball: sqlite3.c |
+ TOP=$(TOP) sh $(TOP)/tool/mkautoconfamal.sh --snapshot |
# Standard install and cleanup targets |
@@ -879,7 +948,6 @@ clean: |
rm -f mkkeywordhash mkkeywordhash.exe keywordhash.h |
rm -f $(PUBLISH) |
rm -f *.da *.bb *.bbg gmon.out |
- rm -rf quota2a quota2b quota2c |
rm -rf tsrc target_source |
rm -f testloadext.dll libtestloadext.so |
rm -f amalgamation-testfixture amalgamation-testfixture.exe |
@@ -893,8 +961,11 @@ clean: |
rm -f showjournal showjournal.exe |
rm -f showstat4 showstat4.exe |
rm -f showwal showwal.exe |
+ rm -f changeset changeset.exe |
rm -f speedtest1 speedtest1.exe |
rm -f wordcount wordcount.exe |
+ rm -f rbu rbu.exe |
+ rm -f srcck1 srcck1.exe |
rm -f sqlite3.c sqlite3-*.c fts?amal.c tclsqlite3.c |
rm -f sqlite3rc.h |
rm -f shell.c sqlite3ext.h |