Skip to content

Commit 4d9565b

Browse files
committed
Snapshot of upstream SQLite 3.26.0
1 parent e62fa49 commit 4d9565b

File tree

284 files changed

+7621
-1563
lines changed

Some content is hidden

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

284 files changed

+7621
-1563
lines changed

Makefile.in

Lines changed: 59 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ TOP = @abs_srcdir@
2222
#
2323
BCC = @BUILD_CC@ @BUILD_CFLAGS@
2424

25-
# TCC is the C Compile and options for use in building executables that
25+
# TCC is the C Compile and options for use in building executables that
2626
# will run on the target platform. (BCC and TCC are usually the
2727
# same unless your are cross-compiling.) Separate CC and CFLAGS macros
2828
# are provide so that these aspects of the build process can be changed
@@ -32,10 +32,11 @@ CC = @CC@
3232
CFLAGS = @CPPFLAGS@ @CFLAGS@
3333
TCC = ${CC} ${CFLAGS} -I. -I${TOP}/src -I${TOP}/ext/rtree -I${TOP}/ext/icu
3434
TCC += -I${TOP}/ext/fts3 -I${TOP}/ext/async -I${TOP}/ext/session
35+
TCC += -I${TOP}/ext/userauth
3536

3637
# Define this for the autoconf-based build, so that the code knows it can
3738
# include the generated config.h
38-
#
39+
#
3940
TCC += -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite
4041

4142
# Define -DNDEBUG to compile without debugging (i.e., for production usage)
@@ -66,7 +67,7 @@ LIBREADLINE = @TARGET_READLINE_LIBS@
6667
TCC += -DSQLITE_THREADSAFE=@SQLITE_THREADSAFE@
6768

6869
# Any target libraries which libsqlite must be linked against
69-
#
70+
#
7071
TLIBS = @LIBS@ $(LIBS)
7172

7273
# Flags controlling use of the in memory btree implementation
@@ -78,8 +79,8 @@ TLIBS = @LIBS@ $(LIBS)
7879
TEMP_STORE = -DSQLITE_TEMP_STORE=@TEMP_STORE@
7980

8081
# Enable/disable loadable extensions, and other optional features
81-
# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).
82-
# The same set of OMIT and ENABLE flags should be passed to the
82+
# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).
83+
# The same set of OMIT and ENABLE flags should be passed to the
8384
# LEMON parser generator and the mkkeywordhash tool as well.
8485
OPT_FEATURE_FLAGS = @OPT_FEATURE_FLAGS@
8586

@@ -126,8 +127,8 @@ SHLIB_SUFFIX = @TCL_SHLIB_SUFFIX@
126127
# If gcov support was enabled by the configure script, add the appropriate
127128
# flags here. It's not always as easy as just having the user add the right
128129
# CFLAGS / LDFLAGS, because libtool wants to use CFLAGS when linking, which
129-
# causes build errors with -fprofile-arcs -ftest-coverage with some GCCs.
130-
# Supposedly GCC does the right thing if you use --coverage, but in
130+
# causes build errors with -fprofile-arcs -ftest-coverage with some GCCs.
131+
# Supposedly GCC does the right thing if you use --coverage, but in
131132
# practice it still fails. See:
132133
#
133134
# http://www.mail-archive.com/debian-gcc@lists.debian.org/msg26197.html
@@ -187,7 +188,7 @@ LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \
187188
random.lo resolve.lo rowset.lo rtree.lo \
188189
sqlite3session.lo select.lo sqlite3rbu.lo status.lo stmt.lo \
189190
table.lo threads.lo tokenize.lo treeview.lo trigger.lo \
190-
update.lo upsert.lo util.lo vacuum.lo \
191+
update.lo userauth.lo upsert.lo util.lo vacuum.lo \
191192
vdbe.lo vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \
192193
vdbetrace.lo wal.lo walker.lo where.lo wherecode.lo whereexpr.lo \
193194
window.lo utf.lo vtab.lo
@@ -355,6 +356,9 @@ SRC += \
355356
SRC += \
356357
$(TOP)/ext/session/sqlite3session.c \
357358
$(TOP)/ext/session/sqlite3session.h
359+
SRC += \
360+
$(TOP)/ext/userauth/userauth.c \
361+
$(TOP)/ext/userauth/sqlite3userauth.h
358362
SRC += \
359363
$(TOP)/ext/rbu/sqlite3rbu.h \
360364
$(TOP)/ext/rbu/sqlite3rbu.c
@@ -425,7 +429,7 @@ TESTSRC = \
425429
$(TOP)/ext/fts3/fts3_term.c \
426430
$(TOP)/ext/fts3/fts3_test.c \
427431
$(TOP)/ext/session/test_session.c \
428-
$(TOP)/ext/rbu/test_rbu.c
432+
$(TOP)/ext/rbu/test_rbu.c
429433

430434
# Statically linked extensions
431435
#
@@ -437,6 +441,7 @@ TESTSRC += \
437441
$(TOP)/ext/misc/closure.c \
438442
$(TOP)/ext/misc/csv.c \
439443
$(TOP)/ext/misc/eval.c \
444+
$(TOP)/ext/misc/explain.c \
440445
$(TOP)/ext/misc/fileio.c \
441446
$(TOP)/ext/misc/fuzzer.c \
442447
$(TOP)/ext/fts5/fts5_tcl.c \
@@ -454,7 +459,8 @@ TESTSRC += \
454459
$(TOP)/ext/misc/totype.c \
455460
$(TOP)/ext/misc/unionvtab.c \
456461
$(TOP)/ext/misc/wholenumber.c \
457-
$(TOP)/ext/misc/zipfile.c
462+
$(TOP)/ext/misc/zipfile.c \
463+
$(TOP)/ext/userauth/userauth.c
458464

459465
# Source code to the library files needed by the test fixture
460466
#
@@ -470,6 +476,7 @@ TESTSRC2 = \
470476
$(TOP)/src/dbstat.c \
471477
$(TOP)/src/expr.c \
472478
$(TOP)/src/func.c \
479+
$(TOP)/src/global.c \
473480
$(TOP)/src/insert.c \
474481
$(TOP)/src/wal.c \
475482
$(TOP)/src/main.c \
@@ -506,7 +513,7 @@ TESTSRC2 = \
506513
$(TOP)/ext/fts3/fts3_write.c \
507514
$(TOP)/ext/async/sqlite3async.c \
508515
$(TOP)/ext/session/sqlite3session.c \
509-
$(TOP)/ext/misc/stmt.c
516+
$(TOP)/ext/misc/stmt.c
510517

511518
# Header files used by all library source files.
512519
#
@@ -559,6 +566,8 @@ EXTHDR += \
559566
$(TOP)/ext/icu/sqliteicu.h
560567
EXTHDR += \
561568
$(TOP)/ext/rtree/sqlite3rtree.h
569+
EXTHDR += \
570+
$(TOP)/ext/userauth/sqlite3userauth.h
562571

563572
# executables needed for testing
564573
#
@@ -578,7 +587,8 @@ FUZZDATA = \
578587
$(TOP)/test/fuzzdata3.db \
579588
$(TOP)/test/fuzzdata4.db \
580589
$(TOP)/test/fuzzdata5.db \
581-
$(TOP)/test/fuzzdata6.db
590+
$(TOP)/test/fuzzdata6.db \
591+
$(TOP)/test/fuzzdata7.db
582592

583593
# Standard options to testfixture
584594
#
@@ -595,13 +605,14 @@ SHELL_OPT += -DSQLITE_ENABLE_STMTVTAB
595605
SHELL_OPT += -DSQLITE_ENABLE_DBPAGE_VTAB
596606
SHELL_OPT += -DSQLITE_ENABLE_DBSTAT_VTAB
597607
SHELL_OPT += -DSQLITE_ENABLE_OFFSET_SQL_FUNC
608+
SHELL_OPT += -DSQLITE_ENABLE_DESERIALIZE
598609
SHELL_OPT += -DSQLITE_INTROSPECTION_PRAGMAS
599610
FUZZERSHELL_OPT = -DSQLITE_ENABLE_JSON1
600611
FUZZCHECK_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5 -DSQLITE_OSS_FUZZ
601612
FUZZCHECK_OPT += -DSQLITE_MAX_MEMORY=50000000
602613
FUZZCHECK_OPT += -DSQLITE_PRINTF_PRECISION_LIMIT=1000
603614
FUZZCHECK_SRC = $(TOP)/test/fuzzcheck.c $(TOP)/test/ossfuzz.c
604-
DBFUZZ_OPT =
615+
DBFUZZ_OPT =
605616

606617
# This is the default Makefile target. The objects listed here
607618
# are what get build when you type just "make" with no arguments.
@@ -663,6 +674,22 @@ sessionfuzz$(TEXE): $(TOP)/test/sessionfuzz.c sqlite3.c sqlite3.h
663674
dbfuzz$(TEXE): $(TOP)/test/dbfuzz.c sqlite3.c sqlite3.h
664675
$(LTLINK) -o $@ $(DBFUZZ_OPT) $(TOP)/test/dbfuzz.c sqlite3.c $(TLIBS)
665676

677+
DBFUZZ2_OPTS = \
678+
-DSQLITE_THREADSAFE=0 \
679+
-DSQLITE_OMIT_LOAD_EXTENSION \
680+
-DSQLITE_ENABLE_DESERIALIZE \
681+
-DSQLITE_DEBUG \
682+
-DSQLITE_ENABLE_DBSTAT_VTAB \
683+
-DSQLITE_ENABLE_RTREE \
684+
-DSQLITE_ENABLE_FTS4 \
685+
-DSQLITE_EANBLE_FTS5
686+
687+
dbfuzz2: $(TOP)/test/dbfuzz2.c sqlite3.c sqlite3.h
688+
clang-6.0 -I. -g -O0 -fsanitize=fuzzer,undefined,address -o dbfuzz2 \
689+
$(DBFUZZ2_OPTS) $(TOP)/test/dbfuzz2.c sqlite3.c
690+
mkdir -p dbfuzz2-dir
691+
cp $(TOP)/test/dbfuzz2-seed* dbfuzz2-dir
692+
666693
mptester$(TEXE): sqlite3.lo $(TOP)/mptest/mptest.c
667694
$(LTLINK) -o $@ -I. $(TOP)/mptest/mptest.c sqlite3.lo \
668695
$(TLIBS) -rpath "$(libdir)"
@@ -1098,7 +1125,10 @@ fts3_write.lo: $(TOP)/ext/fts3/fts3_write.c $(HDR) $(EXTHDR)
10981125
rtree.lo: $(TOP)/ext/rtree/rtree.c $(HDR) $(EXTHDR)
10991126
$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/rtree/rtree.c
11001127

1101-
sqlite3session.lo: $(TOP)/ext/session/sqlite3session.c $(HDR) $(EXTHDR)
1128+
sqlite3session.lo: $(TOP)/ext/userauth/userauth.c $(HDR) $(EXTHDR)
1129+
$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/userauth/userauth.c
1130+
1131+
userauth.lo: $(TOP)/ext/session/sqlite3session.c $(HDR) $(EXTHDR)
11021132
$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/session/sqlite3session.c
11031133

11041134
json1.lo: $(TOP)/ext/misc/json1.c
@@ -1126,7 +1156,7 @@ FTS5_SRC = \
11261156
$(TOP)/ext/fts5/fts5_varint.c \
11271157
$(TOP)/ext/fts5/fts5_vocab.c \
11281158

1129-
fts5parse.c: $(TOP)/ext/fts5/fts5parse.y lemon
1159+
fts5parse.c: $(TOP)/ext/fts5/fts5parse.y lemon
11301160
cp $(TOP)/ext/fts5/fts5parse.y .
11311161
rm -f fts5parse.h
11321162
./lemon$(BEXE) $(OPTS) fts5parse.y
@@ -1153,7 +1183,7 @@ sqlite3rbu.lo: $(TOP)/ext/rbu/sqlite3rbu.c $(HDR) $(EXTHDR)
11531183
#
11541184
TESTFIXTURE_FLAGS = -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
11551185
TESTFIXTURE_FLAGS += -DTCLSH_INIT_PROC=sqlite3TestInit
1156-
TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE
1186+
TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE
11571187
TESTFIXTURE_FLAGS += -DBUILD_sqlite
11581188
TESTFIXTURE_FLAGS += -DSQLITE_SERIES_CONSTRAINT_VERIFY=1
11591189
TESTFIXTURE_FLAGS += -DSQLITE_DEFAULT_PAGE_SIZE=1024
@@ -1169,6 +1199,10 @@ testfixture$(TEXE): $(TESTFIXTURE_SRC)
11691199
$(LTLINK) -DSQLITE_NO_SYNC=1 $(TEMP_STORE) $(TESTFIXTURE_FLAGS) \
11701200
-o $@ $(TESTFIXTURE_SRC) $(LIBTCL) $(TLIBS)
11711201

1202+
coretestprogs: $(TESTPROGS)
1203+
1204+
testprogs: coretestprogs srcck1$(BEXE) fuzzcheck$(TEXE) sessionfuzz$(TEXE)
1205+
11721206
# A very detailed test running most or all test cases
11731207
fulltest: $(TESTPROGS) fuzztest
11741208
./testfixture$(TEXE) $(TOP)/test/all.test $(TESTOPTS)
@@ -1228,7 +1262,7 @@ sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $
12281262
sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
12291263
$(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
12301264

1231-
sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
1265+
sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
12321266
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
12331267

12341268
sqltclsh$(TEXE): sqltclsh.c
@@ -1275,6 +1309,9 @@ showshm$(TEXE): $(TOP)/tool/showshm.c
12751309
changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
12761310
$(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
12771311

1312+
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
1313+
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
1314+
12781315
rollback-test$(TEXE): $(TOP)/tool/rollback-test.c sqlite3.lo
12791316
$(LTLINK) -o $@ $(TOP)/tool/rollback-test.c sqlite3.lo $(TLIBS)
12801317

@@ -1295,7 +1332,7 @@ KV_OPT += -DSQLITE_DIRECT_OVERFLOW_READ
12951332
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
12961333
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
12971334

1298-
rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
1335+
rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
12991336
$(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
13001337

13011338
loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
@@ -1323,7 +1360,7 @@ snapshot-tarball: sqlite3.c
13231360
# The next two rules are used to support the "threadtest" target. Building
13241361
# threadtest runs a few thread-safety tests that are implemented in C. This
13251362
# target is invoked by the releasetest.tcl script.
1326-
#
1363+
#
13271364
THREADTEST3_SRC = $(TOP)/test/threadtest3.c \
13281365
$(TOP)/test/tt3_checkpoint.c \
13291366
$(TOP)/test/tt3_index.c \
@@ -1337,15 +1374,15 @@ threadtest3$(TEXE): sqlite3.lo $(THREADTEST3_SRC)
13371374
threadtest: threadtest3$(TEXE)
13381375
./threadtest3$(TEXE)
13391376

1340-
releasetest:
1377+
releasetest:
13411378
$(TCLSH_CMD) $(TOP)/test/releasetest.tcl
13421379

13431380
# Standard install and cleanup targets
13441381
#
13451382
lib_install: libsqlite3.la
13461383
$(INSTALL) -d $(DESTDIR)$(libdir)
13471384
$(LTINSTALL) libsqlite3.la $(DESTDIR)$(libdir)
1348-
1385+
13491386
install: sqlite3$(TEXE) lib_install sqlite3.h sqlite3.pc ${HAVE_TCL:1=tcl_install}
13501387
$(INSTALL) -d $(DESTDIR)$(bindir)
13511388
$(LTINSTALL) sqlite3$(TEXE) $(DESTDIR)$(bindir)
@@ -1363,7 +1400,7 @@ tcl_install: lib_install libtclsqlite3.la pkgIndex.tcl
13631400
rm -f $(DESTDIR)$(TCLLIBDIR)/libtclsqlite3.la $(DESTDIR)$(TCLLIBDIR)/libtclsqlite3.a
13641401
$(INSTALL) -m 0644 pkgIndex.tcl $(DESTDIR)$(TCLLIBDIR)
13651402

1366-
clean:
1403+
clean:
13671404
rm -f *.lo *.la *.o sqlite3$(TEXE) libsqlite3.la
13681405
rm -f sqlite3.h opcodes.*
13691406
rm -rf .libs .deps

Makefile.msc

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@ OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_STMTVTAB=1
345345
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_DBPAGE_VTAB=1
346346
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_DBSTAT_VTAB=1
347347
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_INTROSPECTION_PRAGMAS=1
348+
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_DESERIALIZE=1
348349
!ENDIF
349350
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
350351
!ENDIF
@@ -1515,6 +1516,7 @@ TESTEXT = \
15151516
$(TOP)\ext\misc\closure.c \
15161517
$(TOP)\ext\misc\csv.c \
15171518
$(TOP)\ext\misc\eval.c \
1519+
$(TOP)\ext\misc\explain.c \
15181520
$(TOP)\ext\misc\fileio.c \
15191521
$(TOP)\ext\misc\fuzzer.c \
15201522
$(TOP)\ext\fts5\fts5_tcl.c \
@@ -1622,7 +1624,8 @@ FUZZDATA = \
16221624
$(TOP)\test\fuzzdata3.db \
16231625
$(TOP)\test\fuzzdata4.db \
16241626
$(TOP)\test\fuzzdata5.db \
1625-
$(TOP)\test\fuzzdata6.db
1627+
$(TOP)\test\fuzzdata6.db \
1628+
$(TOP)\test\fuzzdata7.db
16261629
# <</mark>>
16271630

16281631
# Additional compiler options for the shell. These are only effective
@@ -1632,6 +1635,7 @@ FUZZDATA = \
16321635
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_FTS4=1
16331636
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS=1
16341637
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_OFFSET_SQL_FUNC=1
1638+
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_DESERIALIZE=1
16351639
!ENDIF
16361640

16371641
# <<mark>>
@@ -2334,6 +2338,10 @@ extensiontest: testfixture.exe testloadext.dll
23342338
@set PATH=$(LIBTCLPATH);$(PATH)
23352339
.\testfixture.exe $(TOP)\test\loadext.test $(TESTOPTS)
23362340

2341+
coretestprogs: $(TESTPROGS)
2342+
2343+
testprogs: coretestprogs srcck1.exe fuzzcheck.exe sessionfuzz.exe
2344+
23372345
fulltest: $(TESTPROGS) fuzztest
23382346
@set PATH=$(LIBTCLPATH);$(PATH)
23392347
.\testfixture.exe $(TOP)\test\all.test $(TESTOPTS)
@@ -2441,6 +2449,11 @@ changeset.exe: $(TOP)\ext\session\changeset.c $(SQLITE3C) $(SQLITE3H)
24412449
-DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 \
24422450
$(TOP)\ext\session\changeset.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
24432451

2452+
changesetfuzz.exe: $(TOP)\ext\session\changesetfuzz.c $(SQLITE3C) $(SQLITE3H)
2453+
$(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
2454+
-DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 \
2455+
$(TOP)\ext\session\changesetfuzz.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
2456+
24442457
fts3view.exe: $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) $(SQLITE3H)
24452458
$(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
24462459
$(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.25.2
1+
3.26.0

0 commit comments

Comments
 (0)