mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-16 09:26:58 +02:00
Merge pull request #160 from kinvolk/dongsu/sqlite-3.34.1
dev-db/sqlite: update to 3.34.1
This commit is contained in:
commit
c91afd01bf
@ -1,4 +1,14 @@
|
||||
DIST sqlite-doc-3320300.zip 9772933 BLAKE2B efd72c18d0398c103e3f9c4cfeb03e7794fd69691b1bcea95b74a0c5d8af22aa13abc84ce8dc5864b5f4cb79be239433933b4daca34d1adfcc6f31ce2cde66bf SHA512 af9dca970b4c03c058d7d1cd55a3d11fa4b112dccac942b8660d82a7e9ba2956963fcb429eedfdc85915637c102e1f904ace98c8e0455c4120422bbd9f2f3cd0
|
||||
DIST sqlite-doc-3330000.zip 9834159 BLAKE2B f67155a8ce8e46c2fbc0a4e35722d1fcad86e905a15230adc70732cee267b6b2002c7499883b938129aaa908b99634e4214360e9d1dbdae333b09060de24530e SHA512 14a3cccb4ff6af57738990eeadd37a1b827f89c9c1b16201c62ca5bb9301d39223d48677b9c269ce332210e5c9ae3f42aa0f9de7d79b38acb9809c732d038368
|
||||
DIST sqlite-src-3320300.zip 12461750 BLAKE2B 59cce74d284191cfc69ac09b6014701ddd2b7b3d7ebaad5da4ad71cc200e70285b3b201ff174819aa8dde5f610589d7947f547450334f0f17149014078316185 SHA512 7e027c7163a760fb9b6dbfd2e4ccffb39d4972280583fb0d7f8390017101dfed3b12a36653b3130a548ae4d04c6abb11c0a1921b6f09c54c6ae1e72fbdcb2fd4
|
||||
DIST sqlite-doc-3340000.zip 10069888 BLAKE2B 343df62bc8b75d57dffe69c779cceb856d9e94a5b2a77c3a972761eedd8b4b0f5f8849102ec271652c3aa4039df75d7f2e503fd04b0547be03e024fdfbd894ac SHA512 1bdf20030e656ec4ce38a264c8ef7a95c9f2731cd7d756a44b35b6c68827e8aba92018007139ee09d1c27b34bcd72bff1a201dc3f30aa13e96120af5d58e835e
|
||||
DIST sqlite-doc-3340100.zip 10074559 BLAKE2B 66aa999d87b7f3c994c289eda320d6a4e371b0a6a2ab8bcebde540aa955f3bdf4f00b739ca32aa913685cd35a88ee83bebd7fa43a0c148614e9086a1d3f5652a SHA512 20cbb9f05cd329bf7aa2877431781e46192544806042f4104e4eb0e87d84cd2dfc02c7ff226d4bef9bb2c6a69cc612201844d116abe99b0cfed9602adf243a60
|
||||
DIST sqlite-doc-3350000.zip 10165959 BLAKE2B e24ae04764617d07fafc82f4c27d96b853df77de2a945109c2ff28abd3b61f8bdd318756d14b8d20e22a0dff05fcca26c9a8c9972f600af0a996cd8e13478c9d SHA512 f6b92cf1a087a97071c55605e85676c4d76b9435a1a433e4663ff3d7937557d72e4fb99931a14abda9ab3dece654da09d10f7ca2560ca3e0972e4b7690997132
|
||||
DIST sqlite-doc-3350100.zip 10175402 BLAKE2B c8ac8814837dc88320ae0f6973b5ec0b815a4fbfefae26ea2b5365485decb33e9e4add9097865819a5facb2568198535166dd8c492cb621ec845d8bfc2056721 SHA512 4843d8186f4cc98fc9ad5459a1b987d4512e72ceeeb985372c22d44f35856e33ee41ab0fa4372c273cfa4730f9461dc3f359ba50f26e53a0c7abd87e70cdfe86
|
||||
DIST sqlite-doc-3350200.zip 10182547 BLAKE2B f50b04495aa79eca1ce935c8a96fe83d0a415f15ec55fda0cd982d02b4473ba8f5175c97d9816de2b79526787bc958b3be5e1234994e5f00d8ee1b432627391e SHA512 7ef973b804d059cf00c759a0ae001b7714df0472398e7cd55e34f59222df816a36511cefd15fa99abf67dec4291ee6babbc12bd87855194608ff556a5c1182ae
|
||||
DIST sqlite-doc-3350300.zip 10197905 BLAKE2B ffe3e800fa7c9066c6f180a5989cceb89dfff81729258278256901eee717872ef6993a8bb30ebb6c1de5a66c128009c21494ec9bf0011accdd6f8beef712213a SHA512 260981abaf54f452777e37e99474d100010ec2340c740f78445b7794fa17bcbb814e90f004f870d929a9ccab1d89417ee3d65ffe3b65dbf511ca1de7b6a6a4c8
|
||||
DIST sqlite-src-3330000.zip 12591089 BLAKE2B 14888bca229683e97c4666f8efb535be5bd3e322de0089f0175ba15e038016be3a3cc00b5bfa8c111538116914cf6d8439839ca5d1e20339b184e547ddf260a4 SHA512 3260e3e03ee2f6a4ff2bc4ea4bada5a1497afeca33878c155a8005824970c6c1eb8a2db58eb3023cab084af475fadb81d1c3c9892ae92c07f884881e6602e173
|
||||
DIST sqlite-src-3340000.zip 12623425 BLAKE2B 548293cf0166407727cd068804eb5e1ce62f654533c88a87b71a6ff62da37eb2af21b89b8d63ee677777ca917e0d685ddcf9b8d5c3c8b2a2b787d71da8e5a161 SHA512 520fbca59da02452e2861a140bde891aedfc8254eafaa6894e8d845369d60d6a921595a411efb2611c0f7b0cadd69a713dcdaaeaad1e4254e9fd9a6efde07f91
|
||||
DIST sqlite-src-3340100.zip 12623711 BLAKE2B 08c98d0c56d46fe909f449f322002ae4d69fd952930d2f04514988a939b31744a13aea85935d84bc05db52faca1aad6a70d7c31e7da0e396bb649685a49699bb SHA512 5ed02fe609b3d08c3297cc43b21e6ee3f56fb51a6616ac391a0e50cd1677dbad03c6bf9bf9c8409cf94b83b16fe6b6e4a112640b18c7d4fd95328066da3c3943
|
||||
DIST sqlite-src-3350000.zip 12814378 BLAKE2B f77880bfb335da078623841f9d9d9fc690085630757d8d8e3d40d42646902f809febf8dcc5048d38be0e2d74c0114c35f09789bc261e51d49f9685201f6d1297 SHA512 4b77d963092a6aed61b50e59450edf2af187f16b185b05ca54d81c3eecf71b1cb9bc2883a8aadeb971fcebe343fa430ea788aedb77e3712c8b39d4892c93a797
|
||||
DIST sqlite-src-3350100.zip 12814875 BLAKE2B bc4f6913ce93c32e1c6fbd39f45666a14476096b09f7534047aee56cbb18e949bf5225c080c813281a0abae9198a35165161393db39df0c2af2a92138b4604d9 SHA512 004bcca9c2ae883b05d8f15c8bf28a12fd2fdf9527d1560d137f8e2570c153d14ea5405c500d0e79966a3881a516df4d9ed07be751712f1584df411e86c60977
|
||||
DIST sqlite-src-3350200.zip 12815298 BLAKE2B a65034fc59c32e950b5337ef4fe1b2476190fe6f1272494b12f9e1d048aac759ac31e7c0f252774c850b0f313bf44b34a97fc563c049e30d2a896f262b199dce SHA512 d5382bf31d812bc51533d28a583c78d3f389b1ecbe1f9f30cc755059f2867f832c0529e9f97b090be5c5bc855c45611b220b8c29b5648c451490566a70cc5122
|
||||
DIST sqlite-src-3350300.zip 12817388 BLAKE2B 5b07d15ec5ed934ffa776ae4e079d4b4a3d9c91c526577683c7eea4f95ba62738d82b6fd26f1c10560a6f87fd02b070e5786bcc45e908a338a316071009e5b92 SHA512 5b994833e37e5f7579f4e3eefbbadd5b2a3d691b5f662b7d3dc2bbf80ff1cdaf89262ce5612513fcb2daa0a7d1db3de871dfc462f9d162c954593ff7f4ad90fd
|
||||
|
@ -1,640 +0,0 @@
|
||||
Enable some extensions in libsqlite3.so.
|
||||
Move some code to libsqlite3.so to avoid duplication.
|
||||
Link executables against libsqlite3.so.
|
||||
Increase timeout for fuzzcheck.
|
||||
Fix building with dlopen() not available.
|
||||
|
||||
--- /Makefile.in
|
||||
+++ /Makefile.in
|
||||
@@ -313,6 +313,9 @@
|
||||
# Source code for extensions
|
||||
#
|
||||
SRC += \
|
||||
+ $(TOP)/ext/expert/sqlite3expert.c \
|
||||
+ $(TOP)/ext/expert/sqlite3expert.h
|
||||
+SRC += \
|
||||
$(TOP)/ext/fts1/fts1.c \
|
||||
$(TOP)/ext/fts1/fts1.h \
|
||||
$(TOP)/ext/fts1/fts1_hash.c \
|
||||
@@ -365,8 +368,24 @@
|
||||
$(TOP)/ext/rbu/sqlite3rbu.h \
|
||||
$(TOP)/ext/rbu/sqlite3rbu.c
|
||||
SRC += \
|
||||
+ $(TOP)/ext/misc/appendvfs.c \
|
||||
+ $(TOP)/ext/misc/carray.c \
|
||||
+ $(TOP)/ext/misc/completion.c \
|
||||
+ $(TOP)/ext/misc/csv.c \
|
||||
+ $(TOP)/ext/misc/dbdata.c \
|
||||
+ $(TOP)/ext/misc/eval.c \
|
||||
+ $(TOP)/ext/misc/fileio.c \
|
||||
+ $(TOP)/ext/misc/ieee754.c \
|
||||
$(TOP)/ext/misc/json1.c \
|
||||
- $(TOP)/ext/misc/stmt.c
|
||||
+ $(TOP)/ext/misc/regexp.c \
|
||||
+ $(TOP)/ext/misc/sha1.c \
|
||||
+ $(TOP)/ext/misc/shathree.c \
|
||||
+ $(TOP)/ext/misc/sqlar.c \
|
||||
+ $(TOP)/ext/misc/stmt.c \
|
||||
+ $(TOP)/ext/misc/totype.c \
|
||||
+ $(TOP)/ext/misc/uint.c \
|
||||
+ $(TOP)/ext/misc/uuid.c \
|
||||
+ $(TOP)/ext/misc/zipfile.c
|
||||
|
||||
# Generated source code files
|
||||
#
|
||||
@@ -437,33 +456,24 @@
|
||||
# Statically linked extensions
|
||||
#
|
||||
TESTSRC += \
|
||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
||||
$(TOP)/ext/expert/test_expert.c \
|
||||
$(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/explain.c \
|
||||
- $(TOP)/ext/misc/fileio.c \
|
||||
$(TOP)/ext/misc/fuzzer.c \
|
||||
$(TOP)/ext/fts5/fts5_tcl.c \
|
||||
$(TOP)/ext/fts5/fts5_test_mi.c \
|
||||
$(TOP)/ext/fts5/fts5_test_tok.c \
|
||||
- $(TOP)/ext/misc/ieee754.c \
|
||||
$(TOP)/ext/misc/mmapwarm.c \
|
||||
$(TOP)/ext/misc/nextchar.c \
|
||||
$(TOP)/ext/misc/normalize.c \
|
||||
$(TOP)/ext/misc/percentile.c \
|
||||
$(TOP)/ext/misc/prefixes.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/unionvtab.c \
|
||||
$(TOP)/ext/misc/wholenumber.c \
|
||||
- $(TOP)/ext/misc/zipfile.c \
|
||||
$(TOP)/ext/userauth/userauth.c
|
||||
|
||||
# Source code to the library files needed by the test fixture
|
||||
@@ -645,25 +655,25 @@
|
||||
|
||||
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
|
||||
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
|
||||
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
|
||||
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
|
||||
-rpath "$(TCLLIBDIR)" \
|
||||
-version-info "8:6:8" \
|
||||
-avoid-version
|
||||
|
||||
-sqlite3$(TEXE): shell.c sqlite3.c
|
||||
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
|
||||
- shell.c sqlite3.c \
|
||||
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
|
||||
+sqlite3$(TEXE): shell.c libsqlite3.la
|
||||
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
|
||||
+ shell.c libsqlite3.la \
|
||||
+ $(LIBREADLINE)
|
||||
|
||||
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
|
||||
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
|
||||
|
||||
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
|
||||
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
|
||||
|
||||
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
|
||||
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
|
||||
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
|
||||
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
|
||||
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
|
||||
|
||||
srcck1$(BEXE): $(TOP)/tool/srcck1.c
|
||||
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
|
||||
@@ -774,7 +784,7 @@
|
||||
# Rule to build the amalgamation
|
||||
#
|
||||
sqlite3.lo: sqlite3.c
|
||||
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
|
||||
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
|
||||
|
||||
# Rules to build the LEMON compiler generator
|
||||
#
|
||||
@@ -1074,15 +1084,6 @@
|
||||
# Source files that go into making shell.c
|
||||
SHELL_SRC = \
|
||||
$(TOP)/src/shell.c.in \
|
||||
- $(TOP)/ext/misc/appendvfs.c \
|
||||
- $(TOP)/ext/misc/shathree.c \
|
||||
- $(TOP)/ext/misc/fileio.c \
|
||||
- $(TOP)/ext/misc/completion.c \
|
||||
- $(TOP)/ext/misc/sqlar.c \
|
||||
- $(TOP)/ext/misc/uint.c \
|
||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
||||
- $(TOP)/ext/expert/sqlite3expert.h \
|
||||
- $(TOP)/ext/misc/zipfile.c \
|
||||
$(TOP)/ext/misc/memtrace.c \
|
||||
$(TOP)/src/test_windirent.c
|
||||
|
||||
@@ -1251,11 +1252,11 @@
|
||||
|
||||
# Fuzz testing
|
||||
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
||||
- ./fuzzcheck$(TEXE) $(FUZZDATA)
|
||||
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
|
||||
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
||||
|
||||
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
||||
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA)
|
||||
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
|
||||
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
||||
|
||||
# The veryquick.test TCL tests.
|
||||
@@ -1286,24 +1287,23 @@
|
||||
smoketest: $(TESTPROGS) fuzzcheck$(TEXE)
|
||||
./testfixture$(TEXE) $(TOP)/test/main.test $(TESTOPTS)
|
||||
|
||||
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
||||
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
|
||||
|
||||
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
|
||||
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
|
||||
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-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
|
||||
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
|
||||
|
||||
-sqltclsh$(TEXE): sqltclsh.c
|
||||
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
|
||||
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
|
||||
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
|
||||
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
|
||||
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
|
||||
|
||||
CHECKER_DEPS =\
|
||||
$(TOP)/tool/mkccode.tcl \
|
||||
- sqlite3.c \
|
||||
$(TOP)/src/tclsqlite.c \
|
||||
$(TOP)/ext/repair/sqlite3_checker.tcl \
|
||||
$(TOP)/ext/repair/checkindex.c \
|
||||
@@ -1314,36 +1314,36 @@
|
||||
sqlite3_checker.c: $(CHECKER_DEPS)
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
|
||||
|
||||
-sqlite3_checker$(TEXE): sqlite3_checker.c
|
||||
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
|
||||
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
|
||||
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
||||
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
|
||||
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
|
||||
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
||||
|
||||
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
||||
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
|
||||
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
|
||||
|
||||
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
|
||||
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
|
||||
|
||||
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
|
||||
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
|
||||
|
||||
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
|
||||
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
|
||||
|
||||
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
|
||||
+showwal$(TEXE): $(TOP)/tool/showwal.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
|
||||
|
||||
showshm$(TEXE): $(TOP)/tool/showshm.c
|
||||
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
|
||||
|
||||
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
|
||||
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
|
||||
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
|
||||
|
||||
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
|
||||
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
|
||||
|
||||
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
|
||||
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
|
||||
@@ -1368,11 +1368,11 @@
|
||||
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
|
||||
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
|
||||
|
||||
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
|
||||
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
|
||||
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
||||
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
||||
|
||||
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
||||
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
|
||||
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
||||
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
|
||||
|
||||
# This target will fail if the SQLite amalgamation contains any exported
|
||||
# symbols that do not begin with "sqlite3_". It is run as part of the
|
||||
--- /configure.ac
|
||||
+++ /configure.ac
|
||||
@@ -587,6 +587,9 @@
|
||||
if test "${enable_load_extension}" = "yes" ; then
|
||||
OPT_FEATURE_FLAGS=""
|
||||
AC_SEARCH_LIBS(dlopen, dl)
|
||||
+ if test "${ac_cv_search_dlopen}" = "no" ; then
|
||||
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
||||
+ fi
|
||||
else
|
||||
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
||||
fi
|
||||
--- /ext/repair/sqlite3_checker.c.in
|
||||
+++ /ext/repair/sqlite3_checker.c.in
|
||||
@@ -2,6 +2,7 @@
|
||||
** Read an SQLite database file and analyze its space utilization. Generate
|
||||
** text on standard output.
|
||||
*/
|
||||
+#define SQLITE_CORE 1
|
||||
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
|
||||
#define SQLITE_ENABLE_DBPAGE_VTAB 1
|
||||
#define SQLITE_ENABLE_JSON1 1
|
||||
@@ -14,7 +15,7 @@
|
||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
-INCLUDE sqlite3.c
|
||||
+#include "sqlite3.h"
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
INCLUDE $ROOT/ext/misc/btreeinfo.c
|
||||
INCLUDE $ROOT/ext/repair/checkindex.c
|
||||
--- /src/main.c
|
||||
+++ /src/main.c
|
||||
@@ -50,12 +50,31 @@
|
||||
#ifdef SQLITE_ENABLE_FTS5
|
||||
int sqlite3Fts5Init(sqlite3*);
|
||||
#endif
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
+int sqlite3DbdataRegister(sqlite3*);
|
||||
+#endif
|
||||
#ifdef SQLITE_ENABLE_JSON1
|
||||
int sqlite3Json1Init(sqlite3*);
|
||||
#endif
|
||||
#ifdef SQLITE_ENABLE_STMTVTAB
|
||||
int sqlite3StmtVtabInit(sqlite3*);
|
||||
#endif
|
||||
+int sqlite3CarrayInit(sqlite3*);
|
||||
+int sqlite3CompletionVtabInit(sqlite3*);
|
||||
+int sqlite3CsvInit(sqlite3*);
|
||||
+int sqlite3EvalInit(sqlite3*);
|
||||
+int sqlite3FileioInit(sqlite3*);
|
||||
+int sqlite3IeeeInit(sqlite3*);
|
||||
+int sqlite3RegexpInit(sqlite3*);
|
||||
+int sqlite3ShaInit(sqlite3*);
|
||||
+int sqlite3ShathreeInit(sqlite3*);
|
||||
+int sqlite3TotypeInit(sqlite3*);
|
||||
+int sqlite3UintInit(sqlite3*);
|
||||
+int sqlite3UuidInit(sqlite3*);
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
||||
+int sqlite3ZipfileInit(sqlite3*);
|
||||
+int sqlite3SqlarInit(sqlite3*);
|
||||
+#endif
|
||||
|
||||
/*
|
||||
** An array of pointers to extension initializer functions for
|
||||
@@ -83,6 +102,9 @@
|
||||
#ifdef SQLITE_ENABLE_DBPAGE_VTAB
|
||||
sqlite3DbpageRegister,
|
||||
#endif
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
+ sqlite3DbdataRegister,
|
||||
+#endif
|
||||
#ifdef SQLITE_ENABLE_DBSTAT_VTAB
|
||||
sqlite3DbstatRegister,
|
||||
#endif
|
||||
@@ -96,6 +118,22 @@
|
||||
#ifdef SQLITE_ENABLE_BYTECODE_VTAB
|
||||
sqlite3VdbeBytecodeVtabInit,
|
||||
#endif
|
||||
+ sqlite3CarrayInit,
|
||||
+ sqlite3CompletionVtabInit,
|
||||
+ sqlite3CsvInit,
|
||||
+ sqlite3EvalInit,
|
||||
+ sqlite3FileioInit,
|
||||
+ sqlite3IeeeInit,
|
||||
+ sqlite3RegexpInit,
|
||||
+ sqlite3ShaInit,
|
||||
+ sqlite3ShathreeInit,
|
||||
+ sqlite3TotypeInit,
|
||||
+ sqlite3UintInit,
|
||||
+ sqlite3UuidInit,
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
||||
+ sqlite3ZipfileInit,
|
||||
+ sqlite3SqlarInit,
|
||||
+#endif
|
||||
};
|
||||
|
||||
#ifndef SQLITE_AMALGAMATION
|
||||
--- /src/shell.c.in
|
||||
+++ /src/shell.c.in
|
||||
@@ -69,6 +69,7 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "sqlite3.h"
|
||||
+#include "ext/expert/sqlite3expert.h"
|
||||
typedef sqlite3_int64 i64;
|
||||
typedef sqlite3_uint64 u64;
|
||||
typedef unsigned char u8;
|
||||
@@ -135,6 +136,10 @@
|
||||
# define SHELL_USE_LOCAL_GETLINE 1
|
||||
#endif
|
||||
|
||||
+#ifdef SQLITE_HAVE_ZLIB
|
||||
+#include <zlib.h>
|
||||
+#endif
|
||||
+
|
||||
|
||||
#if defined(_WIN32) || defined(WIN32)
|
||||
# if SQLITE_OS_WINRT
|
||||
@@ -1005,22 +1010,7 @@
|
||||
INCLUDE test_windirent.c
|
||||
#define dirent DIRENT
|
||||
#endif
|
||||
-INCLUDE ../ext/misc/shathree.c
|
||||
-INCLUDE ../ext/misc/fileio.c
|
||||
-INCLUDE ../ext/misc/completion.c
|
||||
-INCLUDE ../ext/misc/appendvfs.c
|
||||
INCLUDE ../ext/misc/memtrace.c
|
||||
-INCLUDE ../ext/misc/uint.c
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
-INCLUDE ../ext/misc/zipfile.c
|
||||
-INCLUDE ../ext/misc/sqlar.c
|
||||
-#endif
|
||||
-INCLUDE ../ext/expert/sqlite3expert.h
|
||||
-INCLUDE ../ext/expert/sqlite3expert.c
|
||||
-
|
||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
-INCLUDE ../ext/misc/dbdata.c
|
||||
-#endif
|
||||
|
||||
#if defined(SQLITE_ENABLE_SESSION)
|
||||
/*
|
||||
@@ -4261,17 +4251,6 @@
|
||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
||||
sqlite3_enable_load_extension(p->db, 1);
|
||||
#endif
|
||||
- sqlite3_fileio_init(p->db, 0, 0);
|
||||
- sqlite3_shathree_init(p->db, 0, 0);
|
||||
- sqlite3_completion_init(p->db, 0, 0);
|
||||
- sqlite3_uint_init(p->db, 0, 0);
|
||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
- sqlite3_dbdata_init(p->db, 0, 0);
|
||||
-#endif
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
- sqlite3_zipfile_init(p->db, 0, 0);
|
||||
- sqlite3_sqlar_init(p->db, 0, 0);
|
||||
-#endif
|
||||
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
|
||||
shellAddSchemaName, 0, 0);
|
||||
sqlite3_create_function(p->db, "shell_module_schema", 1, SQLITE_UTF8, 0,
|
||||
@@ -6281,8 +6260,6 @@
|
||||
);
|
||||
goto end_ar_command;
|
||||
}
|
||||
- sqlite3_fileio_init(cmd.db, 0, 0);
|
||||
- sqlite3_sqlar_init(cmd.db, 0, 0);
|
||||
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
|
||||
shellPutsFunc, 0, 0);
|
||||
|
||||
@@ -10621,6 +10598,7 @@
|
||||
#endif
|
||||
}
|
||||
data.out = stdout;
|
||||
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
|
||||
sqlite3_appendvfs_init(0,0,0);
|
||||
|
||||
/* Go ahead and open the database file if it already exists. If the
|
||||
--- /src/test_config.c
|
||||
+++ /src/test_config.c
|
||||
@@ -540,6 +540,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "regexp", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_REINDEX
|
||||
Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
@@ -662,6 +664,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "uint", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_UTF16
|
||||
Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
--- /test/e_expr.test
|
||||
+++ /test/e_expr.test
|
||||
@@ -1078,7 +1078,7 @@
|
||||
#
|
||||
# There is a regexp function if ICU is enabled though.
|
||||
#
|
||||
-ifcapable !icu {
|
||||
+ifcapable !icu&&!regexp {
|
||||
do_catchsql_test e_expr-18.1.1 {
|
||||
SELECT regexp('abc', 'def')
|
||||
} {1 {no such function: regexp}}
|
||||
--- /test/icu.test
|
||||
+++ /test/icu.test
|
||||
@@ -41,7 +41,7 @@
|
||||
#
|
||||
test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1
|
||||
test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1
|
||||
- test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0
|
||||
+ test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell$'} 0
|
||||
test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1
|
||||
test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}
|
||||
|
||||
--- /test/pragma.test
|
||||
+++ /test/pragma.test
|
||||
@@ -1360,17 +1360,32 @@
|
||||
} ;# ifcapable trigger
|
||||
|
||||
ifcapable schema_pragmas {
|
||||
- do_test pragma-11.1 {
|
||||
- execsql2 {
|
||||
- pragma collation_list;
|
||||
- }
|
||||
- } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
||||
- do_test pragma-11.2 {
|
||||
- db collate New_Collation blah...
|
||||
- execsql {
|
||||
- pragma collation_list;
|
||||
- }
|
||||
- } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
||||
+ ifcapable uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name UINT seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 UINT 2 RTRIM 3 NOCASE 4 BINARY}
|
||||
+ }
|
||||
+ ifcapable !uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
||||
+ }
|
||||
}
|
||||
|
||||
ifcapable schema_pragmas&&tempdb {
|
||||
--- /test/sessionfuzz.c
|
||||
+++ /test/sessionfuzz.c
|
||||
@@ -700,42 +700,6 @@
|
||||
#include <assert.h>
|
||||
#include "zlib.h"
|
||||
|
||||
-/*
|
||||
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
|
||||
-**
|
||||
-** Parameter SZ is interpreted as an integer. If it is less than or
|
||||
-** equal to zero, then this function returns a copy of X. Or, if
|
||||
-** SZ is equal to the size of X when interpreted as a blob, also
|
||||
-** return a copy of X. Otherwise, decompress blob X using zlib
|
||||
-** utility function uncompress() and return the results (another
|
||||
-** blob).
|
||||
-*/
|
||||
-static void sqlarUncompressFunc(
|
||||
- sqlite3_context *context,
|
||||
- int argc,
|
||||
- sqlite3_value **argv
|
||||
-){
|
||||
- uLong nData;
|
||||
- uLongf sz;
|
||||
-
|
||||
- assert( argc==2 );
|
||||
- sz = sqlite3_value_int(argv[1]);
|
||||
-
|
||||
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
|
||||
- sqlite3_result_value(context, argv[0]);
|
||||
- }else{
|
||||
- const Bytef *pData= sqlite3_value_blob(argv[0]);
|
||||
- Bytef *pOut = sqlite3_malloc(sz);
|
||||
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
|
||||
- sqlite3_result_error(context, "error in uncompress()", -1);
|
||||
- }else{
|
||||
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
|
||||
- }
|
||||
- sqlite3_free(pOut);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-
|
||||
/* Run a chunk of SQL. If any errors happen, print an error message
|
||||
** and exit.
|
||||
*/
|
||||
--- /tool/mksqlite3c.tcl
|
||||
+++ /tool/mksqlite3c.tcl
|
||||
@@ -117,6 +117,7 @@
|
||||
rtree.h
|
||||
sqlite3session.h
|
||||
sqlite3.h
|
||||
+ sqlite3expert.h
|
||||
sqlite3ext.h
|
||||
sqlite3rbu.h
|
||||
sqliteicu.h
|
||||
@@ -404,6 +405,23 @@
|
||||
sqlite3session.c
|
||||
fts5.c
|
||||
stmt.c
|
||||
+ appendvfs.c
|
||||
+ carray.c
|
||||
+ completion.c
|
||||
+ csv.c
|
||||
+ dbdata.c
|
||||
+ eval.c
|
||||
+ fileio.c
|
||||
+ ieee754.c
|
||||
+ regexp.c
|
||||
+ sha1.c
|
||||
+ shathree.c
|
||||
+ sqlar.c
|
||||
+ sqlite3expert.c
|
||||
+ totype.c
|
||||
+ uint.c
|
||||
+ uuid.c
|
||||
+ zipfile.c
|
||||
} {
|
||||
copy_file tsrc/$file
|
||||
}
|
||||
--- /tool/sqlite3_analyzer.c.in
|
||||
+++ /tool/sqlite3_analyzer.c.in
|
||||
@@ -14,9 +14,6 @@
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
#define SQLITE_OMIT_LOAD_EXTENSION 1
|
||||
-#ifndef USE_EXTERNAL_SQLITE
|
||||
-INCLUDE sqlite3.c
|
||||
-#endif
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
|
||||
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
|
||||
--- /tool/sqltclsh.c.in
|
||||
+++ /tool/sqltclsh.c.in
|
||||
@@ -27,21 +27,13 @@
|
||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
-INCLUDE sqlite3.c
|
||||
-INCLUDE $ROOT/ext/misc/appendvfs.c
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
-INCLUDE $ROOT/ext/misc/zipfile.c
|
||||
-INCLUDE $ROOT/ext/misc/sqlar.c
|
||||
-#endif
|
||||
+#include "sqlite3.h"
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
|
||||
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
|
||||
(void)interp;
|
||||
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
|
||||
sqlite3_appendvfs_init(0,0,0);
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
- sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
|
||||
- sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
|
||||
-#endif
|
||||
|
||||
return
|
||||
BEGIN_STRING
|
@ -1,361 +0,0 @@
|
||||
https://sqlite.org/src/info/d48af4d2cfff3d5f
|
||||
https://sqlite.org/src/info/cc888878ea8d5bc7
|
||||
https://sqlite.org/src/info/be545f85a6ef09cc
|
||||
https://sqlite.org/src/info/6e0ffa2053124168
|
||||
https://sqlite.org/src/info/4d0cfb1236884349
|
||||
https://sqlite.org/src/info/ccff8cb8267d4c56
|
||||
https://sqlite.org/src/info/5124732370fd53c9
|
||||
|
||||
--- /ext/fts3/fts3.c
|
||||
+++ /ext/fts3/fts3.c
|
||||
@@ -2068,7 +2068,7 @@
|
||||
sqlite3_int64 *piPrev, /* IN/OUT: Previous value written to list */
|
||||
sqlite3_int64 iVal /* Write this value to the list */
|
||||
){
|
||||
- assert( iVal-*piPrev > 0 || (*piPrev==0 && iVal==0) );
|
||||
+ assert_fts3_nc( iVal-*piPrev > 0 || (*piPrev==0 && iVal==0) );
|
||||
*pp += sqlite3Fts3PutVarint(*pp, iVal-*piPrev);
|
||||
*piPrev = iVal;
|
||||
}
|
||||
@@ -5208,10 +5208,12 @@
|
||||
);
|
||||
if( res ){
|
||||
nNew = (int)(pOut - pPhrase->doclist.pList) - 1;
|
||||
- assert( pPhrase->doclist.pList[nNew]=='\0' );
|
||||
- assert( nNew<=pPhrase->doclist.nList && nNew>0 );
|
||||
- memset(&pPhrase->doclist.pList[nNew], 0, pPhrase->doclist.nList - nNew);
|
||||
- pPhrase->doclist.nList = nNew;
|
||||
+ if( nNew>=0 ){
|
||||
+ assert( pPhrase->doclist.pList[nNew]=='\0' );
|
||||
+ assert( nNew<=pPhrase->doclist.nList && nNew>0 );
|
||||
+ memset(&pPhrase->doclist.pList[nNew], 0, pPhrase->doclist.nList - nNew);
|
||||
+ pPhrase->doclist.nList = nNew;
|
||||
+ }
|
||||
*paPoslist = pPhrase->doclist.pList;
|
||||
*pnToken = pPhrase->nToken;
|
||||
}
|
||||
@@ -5563,7 +5565,10 @@
|
||||
}else
|
||||
#endif
|
||||
{
|
||||
- bHit = (pExpr->bEof==0 && pExpr->iDocid==pCsr->iPrevId);
|
||||
+ bHit = (
|
||||
+ pExpr->bEof==0 && pExpr->iDocid==pCsr->iPrevId
|
||||
+ && pExpr->pPhrase->doclist.nList>0
|
||||
+ );
|
||||
}
|
||||
break;
|
||||
}
|
||||
--- /ext/fts3/fts3_write.c
|
||||
+++ /ext/fts3/fts3_write.c
|
||||
@@ -341,7 +341,9 @@
|
||||
** created by merging the oldest :2 segments from absolute level :1. See
|
||||
** function sqlite3Fts3Incrmerge() for details. */
|
||||
/* 29 */ "SELECT 2 * total(1 + leaves_end_block - start_block) "
|
||||
- " FROM %Q.'%q_segdir' WHERE level = ? AND idx < ?",
|
||||
+ " FROM (SELECT * FROM %Q.'%q_segdir' "
|
||||
+ " WHERE level = ? ORDER BY idx ASC LIMIT ?"
|
||||
+ " )",
|
||||
|
||||
/* SQL_DELETE_SEGDIR_ENTRY
|
||||
** Delete the %_segdir entry on absolute level :1 with index :2. */
|
||||
@@ -2853,6 +2855,19 @@
|
||||
return SQLITE_OK;
|
||||
}
|
||||
|
||||
+static int fts3GrowSegReaderBuffer(Fts3MultiSegReader *pCsr, int nReq){
|
||||
+ if( nReq>pCsr->nBuffer ){
|
||||
+ char *aNew;
|
||||
+ pCsr->nBuffer = nReq*2;
|
||||
+ aNew = sqlite3_realloc(pCsr->aBuffer, pCsr->nBuffer);
|
||||
+ if( !aNew ){
|
||||
+ return SQLITE_NOMEM;
|
||||
+ }
|
||||
+ pCsr->aBuffer = aNew;
|
||||
+ }
|
||||
+ return SQLITE_OK;
|
||||
+}
|
||||
+
|
||||
|
||||
int sqlite3Fts3SegReaderStep(
|
||||
Fts3Table *p, /* Virtual table handle */
|
||||
@@ -2987,15 +3002,9 @@
|
||||
}
|
||||
|
||||
nByte = sqlite3Fts3VarintLen(iDelta) + (isRequirePos?nList+1:0);
|
||||
- if( nDoclist+nByte>pCsr->nBuffer ){
|
||||
- char *aNew;
|
||||
- pCsr->nBuffer = (nDoclist+nByte)*2;
|
||||
- aNew = sqlite3_realloc(pCsr->aBuffer, pCsr->nBuffer);
|
||||
- if( !aNew ){
|
||||
- return SQLITE_NOMEM;
|
||||
- }
|
||||
- pCsr->aBuffer = aNew;
|
||||
- }
|
||||
+
|
||||
+ rc = fts3GrowSegReaderBuffer(pCsr, nByte+nDoclist);
|
||||
+ if( rc ) return rc;
|
||||
|
||||
if( isFirst ){
|
||||
char *a = &pCsr->aBuffer[nDoclist];
|
||||
@@ -3020,6 +3029,9 @@
|
||||
fts3SegReaderSort(apSegment, nMerge, j, xCmp);
|
||||
}
|
||||
if( nDoclist>0 ){
|
||||
+ rc = fts3GrowSegReaderBuffer(pCsr, nDoclist+FTS3_NODE_PADDING);
|
||||
+ if( rc ) return rc;
|
||||
+ memset(&pCsr->aBuffer[nDoclist], 0, FTS3_NODE_PADDING);
|
||||
pCsr->aDoclist = pCsr->aBuffer;
|
||||
pCsr->nDoclist = nDoclist;
|
||||
rc = SQLITE_ROW;
|
||||
@@ -4288,7 +4300,7 @@
|
||||
int i;
|
||||
int nHeight = (int)aRoot[0];
|
||||
NodeWriter *pNode;
|
||||
- if( nHeight<1 || nHeight>FTS_MAX_APPENDABLE_HEIGHT ){
|
||||
+ if( nHeight<1 || nHeight>=FTS_MAX_APPENDABLE_HEIGHT ){
|
||||
sqlite3_reset(pSelect);
|
||||
return FTS_CORRUPT_VTAB;
|
||||
}
|
||||
--- /src/expr.c
|
||||
+++ /src/expr.c
|
||||
@@ -4272,7 +4272,9 @@
|
||||
int nCol;
|
||||
testcase( op==TK_EXISTS );
|
||||
testcase( op==TK_SELECT );
|
||||
- if( op==TK_SELECT && (nCol = pExpr->x.pSelect->pEList->nExpr)!=1 ){
|
||||
+ if( pParse->db->mallocFailed ){
|
||||
+ return 0;
|
||||
+ }else if( op==TK_SELECT && (nCol = pExpr->x.pSelect->pEList->nExpr)!=1 ){
|
||||
sqlite3SubselectError(pParse, nCol, 1);
|
||||
}else{
|
||||
return sqlite3CodeSubselect(pParse, pExpr);
|
||||
--- /test/fts3corrupt4.test
|
||||
+++ /test/fts3corrupt4.test
|
||||
@@ -6123,4 +6123,163 @@
|
||||
SELECT offsets(t1) FROM t1 WHERE t1 MATCH 'rtree ner "json1^enable"';
|
||||
}
|
||||
|
||||
+#-------------------------------------------------------------------------
|
||||
+do_execsql_test 42.1 {
|
||||
+ CREATE VIRTUAL TABLE f USING fts3(a, b);
|
||||
+}
|
||||
+do_execsql_test 42.2 {
|
||||
+ INSERT INTO f_segdir VALUES(0,2,1111,0,0,X'00');
|
||||
+ INSERT INTO f_segdir VALUES(0,3,0 ,0,0,X'00013003010200');
|
||||
+}
|
||||
+do_execsql_test 42.3 {
|
||||
+ INSERT INTO f(f) VALUES ('merge=107,2');
|
||||
+}
|
||||
+
|
||||
+#-------------------------------------------------------------------------
|
||||
+reset_db
|
||||
+set saved $sqlite_fts3_enable_parentheses
|
||||
+set sqlite_fts3_enable_parentheses 1
|
||||
+do_execsql_test 43.1 {
|
||||
+ CREATE VIRTUAL TABLE def USING fts3(xyz);
|
||||
+ INSERT INTO def_segdir VALUES(0,0,0,0,0, X'0001310301c9000103323334050d81');
|
||||
+} {}
|
||||
+
|
||||
+do_execsql_test 43.2 {
|
||||
+ SELECT rowid FROM def WHERE def MATCH '1 NEAR 1'
|
||||
+} {1}
|
||||
+
|
||||
+set sqlite_fts3_enable_parentheses $saved
|
||||
+
|
||||
+#-------------------------------------------------------------------------
|
||||
+reset_db
|
||||
+do_execsql_test 44.1 {
|
||||
+ CREATE VIRTUAL TABLE t0 USING fts3(col0 INTEGER PRIMARY KEY,col1 VARCHAR(8),col2 BINARY,col3 BINARY);
|
||||
+ INSERT INTO t0_content VALUES(0,NULL,NULL,NULL,NULL);
|
||||
+ INSERT INTO t0_segdir VALUES(0,0,0,0,'0 42',X'00013103010200010332333405010201ba00000461616161050101020200000462626262050101030200');
|
||||
+}
|
||||
+
|
||||
+do_execsql_test 44.2 {
|
||||
+ SELECT matchinfo(t0, t0) IS NULL FROM t0 WHERE t0 MATCH '1*'
|
||||
+} {0}
|
||||
+
|
||||
+#-------------------------------------------------------------------------
|
||||
+#
|
||||
+reset_db
|
||||
+do_test 45.0 {
|
||||
+ sqlite3 db {}
|
||||
+ db deserialize [decode_hexdb {
|
||||
+.open --hexdb
|
||||
+| size 24576 pagesize 4096 filename crash-65c98512cc9e49.db
|
||||
+| page 1 offset 0
|
||||
+| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
|
||||
+| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 06 .....@ ........
|
||||
+| 96: 00 00 00 00 0d 0e fc 00 06 0d bc 00 0f ca 0f 6c ...............l
|
||||
+| 112: 0f 04 0e 13 0e c9 0d bc 00 00 00 00 00 00 00 00 ................
|
||||
+| 3504: 00 00 00 00 00 00 00 00 00 00 00 00 55 06 07 17 ............U...
|
||||
+| 3520: 1b 1b 01 81 01 74 61 62 6c 65 78 31 5f 73 74 61 .....tablex1_sta
|
||||
+| 3536: 74 78 31 5f 73 74 61 74 06 43 52 45 41 54 45 20 tx1_stat.CREATE
|
||||
+| 3552: 54 41 42 4c 45 20 27 78 31 5f 73 74 61 74 27 28 TABLE 'x1_stat'(
|
||||
+| 3568: 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 id INTEGER PRIMA
|
||||
+| 3584: 52 59 20 4b 45 59 2c 20 76 61 6c 75 65 20 42 4c RY KEY, value BL
|
||||
+| 3600: 41 82 29 81 33 04 07 17 1f 1f 01 82 35 74 61 62 A.).3.......5tab
|
||||
+| 3616: 6c 65 78 31 5f 73 65 67 64 69 72 78 31 5f 73 65 lex1_segdirx1_se
|
||||
+| 3632: 67 64 69 72 04 43 52 45 41 54 45 20 54 41 42 4c gdir.CREATE TABL
|
||||
+| 3648: 45 20 27 78 31 5f 73 65 67 64 69 72 27 28 6c 65 E 'x1_segdir'(le
|
||||
+| 3664: 76 65 6c 20 49 4e 54 45 47 45 52 2c 69 64 78 20 vel INTEGER,idx
|
||||
+| 3680: 49 4e 54 45 47 45 52 2c 73 74 61 72 74 5f 62 6c INTEGER,start_bl
|
||||
+| 3696: 6f 63 6b 20 49 4e 54 45 47 45 52 2c 6c 65 61 76 ock INTEGER,leav
|
||||
+| 3712: 65 73 5f 65 6e 64 5f 62 6c 6f 63 6b 20 49 4e 54 es_end_block INT
|
||||
+| 3728: 45 47 45 52 2c 65 6e 64 5f 62 6c 6f 63 6b 20 49 EGER,end_block I
|
||||
+| 3744: 4e 54 45 47 45 52 2c 72 6f 6f 74 20 42 4c 4f 42 NTEGER,root BLOB
|
||||
+| 3760: 2c 50 52 49 4d 41 52 59 20 4b 45 59 28 6c 65 76 ,PRIMARY KEY(lev
|
||||
+| 3776: 65 6c 2c 20 69 64 78 29 29 31 05 06 17 45 1f 01 el, idx))1...E..
|
||||
+| 3792: 00 69 6e 64 65 78 73 71 6c 69 74 65 5f 61 75 74 .indexsqlite_aut
|
||||
+| 3808: 6f 69 6e 64 65 78 5f 78 31 5f 73 65 67 64 69 72 oindex_x1_segdir
|
||||
+| 3824: 5f 31 78 31 5f 73 65 67 64 69 72 05 00 00 00 08 _1x1_segdir.....
|
||||
+| 3840: 60 00 00 00 66 03 07 17 23 23 01 81 13 74 61 62 `...f...##...tab
|
||||
+| 3856: 6c 65 78 31 5f 73 65 67 6d 65 6e 74 73 78 31 5f lex1_segmentsx1_
|
||||
+| 3872: 73 65 67 6d 65 6e 74 73 03 43 52 45 41 54 45 20 segments.CREATE
|
||||
+| 3888: 54 41 42 4c 45 20 27 78 31 5f 73 65 67 6d 65 6e TABLE 'x1_segmen
|
||||
+| 3904: 74 73 27 28 62 6c 6f 63 6b 69 64 20 49 4e 54 45 ts'(blockid INTE
|
||||
+| 3920: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c GER PRIMARY KEY,
|
||||
+| 3936: 20 62 6c 6f 63 6b 20 42 4c 4f 42 29 5c 02 07 17 block BLOB)....
|
||||
+| 3952: 21 21 01 81 03 74 61 62 6c 65 78 31 5f 63 6f 6e !!...tablex1_con
|
||||
+| 3968: 74 65 6e 74 78 31 5f 63 6f 6e 74 65 6e 74 02 43 tentx1_content.C
|
||||
+| 3984: 52 45 41 54 45 20 54 41 42 4c 45 20 27 78 31 5f REATE TABLE 'x1_
|
||||
+| 4000: 63 6f 6e 74 65 6e 74 27 28 64 6f 63 69 64 20 49 content'(docid I
|
||||
+| 4016: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b NTEGER PRIMARY K
|
||||
+| 4032: 45 59 2c 20 27 63 30 78 27 29 34 01 06 17 11 11 EY, 'c0x')4.....
|
||||
+| 4048: 08 57 74 61 62 6c 65 78 31 78 31 43 52 45 41 54 .Wtablex1x1CREAT
|
||||
+| 4064: 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c 45 20 E VIRTUAL TABLE
|
||||
+| 4080: 78 31 20 55 53 49 4e 47 20 66 74 73 33 28 78 29 x1 USING fts3(x)
|
||||
+| page 2 offset 4096
|
||||
+| 0: 0d 00 00 00 11 0f 77 f0 0f f8 0f f0 0f e8 0f e0 ......w.........
|
||||
+| 16: 0f d8 0f d0 0f c8 0f c0 00 00 00 00 00 00 00 00 ................
|
||||
+| 3952: 00 00 00 00 00 00 00 00 06 11 03 00 13 77 78 79 .............wxy
|
||||
+| 3968: 06 10 03 00 13 74 75 76 06 0f 03 00 13 71 33 73 .....tuv.....q3s
|
||||
+| 3984: 06 0e 03 00 13 6e 6f 70 06 0d 03 00 13 6b 6c 6d .....nop.....klm
|
||||
+| 4000: 06 0c 03 04 c3 68 69 6a 06 0b 03 00 13 65 66 67 .....hij.....efg
|
||||
+| 4016: 06 0a 03 00 13 62 63 64 06 09 03 00 13 79 7a 61 .....bcd.....yza
|
||||
+| 4032: 06 08 03 00 13 76 77 78 06 07 03 00 13 73 74 75 .....vwx.....stu
|
||||
+| 4048: 06 06 03 00 13 70 71 72 06 05 03 00 13 6d 6e 6f .....pqr.....mno
|
||||
+| 4064: 06 03 03 00 13 6a 6b 6c 06 03 03 00 13 67 68 69 .....jkl.....ghi
|
||||
+| 4080: 06 02 02 00 03 64 65 66 06 01 03 00 13 61 52 63 .....def.....aRc
|
||||
+| page 3 offset 8192
|
||||
+| 0: 0d 00 00 00 03 0f a7 00 0f b5 0f a7 0f fa 01 00 ................
|
||||
+| 4000: 00 00 00 00 00 00 00 0c 02 03 00 1e 00 03 6b 6c ..............kl
|
||||
+| 4016: 6d 03 0d 02 00 43 01 04 00 81 0a 00 03 61 62 63 m....C.......abc
|
||||
+| 4032: 03 0b 32 00 00 03 62 63 64 03 0a 02 00 00 03 64 ..2...bcd......d
|
||||
+| 4048: 69 26 03 02 02 00 00 03 65 66 67 03 0b 02 00 00 i&......efg.....
|
||||
+| 4064: 03 67 68 69 03 03 02 00 00 03 68 69 6a 03 0c 02 .ghi......hij...
|
||||
+| 4080: 00 00 03 6a 6a 2c 03 04 02 00 03 81 00 03 00 00 ...jj,..........
|
||||
+| page 4 offset 12288
|
||||
+| 0: 0d 0f 3a 00 05 0f 25 00 0f 9e 0f 88 0f 43 0f 25 ..:...%......C.%
|
||||
+| 16: 0f 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .r..............
|
||||
+| 3856: 00 00 00 00 00 00 00 00 00 56 01 08 08 13 1e 03 .........V......
|
||||
+| 3872: 30 20 39 00 03 13 05 07 08 08 18 08 13 1e 30 20 0 9...........0
|
||||
+| 3888: 39 00 03 77 78 79 03 11 02 00 0f 6c 00 09 01 08 9..wxy.....l....
|
||||
+| 3904: 08 15 54 27 04 07 09 01 08 08 15 42 02 30 20 33 ..T'.......B.0 3
|
||||
+| 3920: 36 00 03 6e 6f 70 03 0e 02 00 00 03 71 72 73 03 6..nop......qrs.
|
||||
+| 3936: 0f 02 00 00 03 74 75 76 03 10 02 00 0f cf b1 06 .....tuv........
|
||||
+| 3952: 01 08 14 06 07 01 08 09 01 1b 14 02 02 31 32 38 .............128
|
||||
+| 3968: 20 2d 37 32 10 01 01 6b 14 03 07 09 09 08 08 15 -72...k........
|
||||
+| 3984: 1e 30 20 33 36 00 03 79 7a 61 03 09 02 00 2f 02 .0 36..yza..../.
|
||||
+| 4000: 07 09 08 08 08 15 54 30 20 33 36 00 03 6d 6e 6f ......T0 36..mno
|
||||
+| 4016: 03 05 02 00 00 03 70 71 72 03 06 02 00 00 03 73 ......pqr......s
|
||||
+| 4032: 74 75 03 07 02 00 00 03 76 77 78 03 08 02 00 00 tu......vwx.....
|
||||
+| 4048: 00 00 4a 08 08 08 15 54 30 20 33 36 00 03 61 62 ..J....T0 36..ab
|
||||
+| 4064: 63 03 01 02 00 00 03 64 65 66 03 02 02 00 00 03 c......def......
|
||||
+| 4080: 67 68 69 03 03 67 00 00 03 6a 6b 6c 03 04 02 00 ghi..g...jkl....
|
||||
+| page 5 offset 16384
|
||||
+| 0: 0a 0f e7 00 05 0f da 00 0f e1 0f fa 0f f4 0f ed ................
|
||||
+| 16: 0f da 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
+| 4048: 00 00 00 00 00 00 00 1a 01 03 06 04 01 08 01 02 ................
|
||||
+| 4064: 06 05 04 08 08 01 05 00 00 00 06 01 03 06 04 09 ................
|
||||
+| 4080: 02 01 02 04 05 04 09 09 01 03 05 04 09 08 01 02 ................
|
||||
+| page 6 offset 20480
|
||||
+| 0: 0d 00 10 00 01 0f f9 00 0f f9 00 00 00 00 00 00 ................
|
||||
+| 4080: 00 00 00 00 00 00 00 00 00 05 01 03 00 10 01 03 ................
|
||||
+| end crash-65c98512cc9e49.db
|
||||
+}]} {}
|
||||
+
|
||||
+do_catchsql_test 45.2 {
|
||||
+ INSERT INTO x1(x1) VALUES( 'merge=1' )
|
||||
+} {1 {database disk image is malformed}}
|
||||
+
|
||||
+#-------------------------------------------------------------------------
|
||||
+reset_db
|
||||
+set saved $sqlite_fts3_enable_parentheses
|
||||
+set sqlite_fts3_enable_parentheses 1
|
||||
+do_execsql_test 46.1 {
|
||||
+ CREATE VIRTUAL TABLE t0 USING fts3(a INTEGER PRIMARY KEY,b,c,d);
|
||||
+ INSERT INTO t0_segdir VALUES(0,0,0,0,'0 42',X'0001310301c9000103323334050d8000f200000461616161050101020200000462626262050101030200');
|
||||
+} {}
|
||||
+
|
||||
+do_catchsql_test 46.2 {
|
||||
+ SELECT * FROM t0
|
||||
+ WHERE t0 MATCH x'2b0a312b0a312a312a2a0b5d0a0b0b0a312a0a0b0b0a312a0b310a392a0b0a27312a2a0b5d0a312a0b310a31315d0b310a312a316d2a0b313b15bceaa50a312a0b0a27312a2a0b5d0a312a0b310a312b0b2a310a312a0b2a0b2a0b2e5d0a0bff313336e34a2a312a0b0a3c310b0a0b4b4b0b4b2a4bec40322b2a0b310a0a312a0a0a0a0a0a0a0a0a0b310a312a2a2a0b5d0a0b0b0a312a0b310a312a0b0a4e4541530b310a5df5ced70a0a0a0a0a4f520a0a0a0a0a0a0a312a0b0a4e4541520b310a5d616161610a0a0a0a4f520a0a0a0a0a0a312b0a312a312a0a0a0a0a0a0a004a0b0a310b220a0b0a310a4a22310a0b0a7e6fe0e0e030e0e0e0e0e01176e02000e0e0e0e0e01131320226310a0b0a310a4a22310a0b0a310a766f8b8b4ee0e0300ae0090909090909090909090909090909090909090909090909090909090909090947aaaa540b09090909090909090909090909090909090909090909090909090909090909fae0e0f2f22164e0e0f273e07fefefef7d6dfafafafa6d6d6d6d';
|
||||
+} {1 {database disk image is malformed}}
|
||||
+
|
||||
+set sqlite_fts3_enable_parentheses $saved
|
||||
+
|
||||
finish_test
|
||||
--- /test/fts3corrupt6.test
|
||||
+++ /test/fts3corrupt6.test
|
||||
@@ -0,0 +1,60 @@
|
||||
+# 2020 June 8
|
||||
+#
|
||||
+# The author disclaims copyright to this source code. In place of
|
||||
+# a legal notice, here is a blessing:
|
||||
+#
|
||||
+# May you do good and not evil.
|
||||
+# May you find forgiveness for yourself and forgive others.
|
||||
+# May you share freely, never taking more than you give.
|
||||
+#
|
||||
+#*************************************************************************
|
||||
+# This file implements regression tests for SQLite library. The
|
||||
+# focus of this script is testing the FTS3 module.
|
||||
+#
|
||||
+# $Id: fts3aa.test,v 1.1 2007/08/20 17:38:42 shess Exp $
|
||||
+#
|
||||
+
|
||||
+set testdir [file dirname $argv0]
|
||||
+source $testdir/tester.tcl
|
||||
+source $testdir/fts3_common.tcl
|
||||
+set testprefix fts3corrupt6
|
||||
+
|
||||
+# If SQLITE_ENABLE_FTS3 is defined, omit this file.
|
||||
+ifcapable !fts3 {
|
||||
+ finish_test
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set ::saved_sqlite_fts3_enable_parentheses $::sqlite_fts3_enable_parentheses
|
||||
+set sqlite_fts3_enable_parentheses 1
|
||||
+sqlite3_fts3_may_be_corrupt 1
|
||||
+database_may_be_corrupt
|
||||
+
|
||||
+do_execsql_test 1.0 {
|
||||
+ BEGIN TRANSACTION;
|
||||
+ CREATE TABLE t_content(col0 INTEGER);
|
||||
+ PRAGMA writable_schema=ON;
|
||||
+ CREATE VIRTUAL TABLE t0 USING fts3(col0 INTEGER PRIMARY KEY,col1 VARCHAR(8),col2 BINARY,col3 BINARY);
|
||||
+ INSERT INTO t0_content VALUES(0,NULL,NULL,NULL,NULL);
|
||||
+ INSERT INTO t0_segdir VALUES(0,0,0,0,'0 42',X'000131030102000103323334050101010200000461616161050101020200000462626262050101030200');
|
||||
+ COMMIT;
|
||||
+}
|
||||
+
|
||||
+do_execsql_test 1.1 {
|
||||
+ SELECT 0+matchinfo(t0,'yxyyxy') FROM t0 WHERE t0 MATCH CAST( x'2b0a312b0a312a312a2a0b5d0a0b0b0a312a0a0b0b0a312a0b310a392a0b0a27312a2a0b5d0a312a0b310a31315d0b310a312a316d2a0b313b15bceaa50a312a0b0a27312a2a0b5d0a312a0b310a312b0b2a310a312a0b2a0b2a0b2e5d0a0bff313336e34a2a312a0b0a3c310b0a0b4b4b0b4b2a4bec40322b2a0b310a0a312a0a0a0a0a0a0a0a0a0b310a312a2a2a0b5d0a0b0b0a312a0b310a312a0b0a4e4541530b310a5df5ced70a0a0a0a0a4f520a0a0a0a0a0a0a312a0b0a4e4541520b310a5d616161610a0a0a0a4f520a0a0a0a0a0a312b0a312a312a0a0a0a0a0a0a004a0b0a310b220a0b0a310a4a22310a0b0a7e6fe0e0e030e0e0e0e0e01176e02000e0e0e0e0e01131320226310a0b0a310a4a22310a0b0a310a766f8b8b4ee0e0300ae0090909090909090909090909090909090909090909090909090909090909090947aaaa540b09090909090909090909090909090909090909090909090909090909090909fae0e0f2f22164e0e0f273e07fefefef7d6dfafafafa6d6d6d6d' AS TEXT);
|
||||
+} {0}
|
||||
+
|
||||
+do_execsql_test 1.2 {
|
||||
+ CREATE VIRTUAL TABLE t1 USING fts3(col0 INTEGER PRIMARY KEY,col1 VARCHAR(8),col2 BINARY,col3 BINARY);
|
||||
+ INSERT INTO t1_content VALUES(0,NULL,NULL,NULL,NULL);
|
||||
+ INSERT INTO t1_segdir VALUES(0,0,0,0,'0 42',X'000131030102000103323334050101010200000461616161050101020200000462626262050101030200');
|
||||
+}
|
||||
+
|
||||
+do_execsql_test 1.3 {
|
||||
+ SELECT 42+matchinfo(t1,'yxyyxy') FROM t1 WHERE t1 MATCH x'2b0a312b0a312a312a2a0b5d0a0b0b0a312a0a0b0b0a312a0b310a392a0b0a27312a2a0b5d0a312a0b310a31315d0b310a312a316d2a0b313b15bceaa50a312a0b0a27312a2a0b5d0a312a0b310a312b0b2a310a312a0b2a0b2a0b2e5d0a0bff313336e34a2a312a0b0a3c310b0a0b4b4b0b4b2a4bec40322b2a0b310a0a312a0a0a0a0a0a0a0a0a0b310a312a2a2a0b5d0a0b0b0a312a0b310a312a0b0a4e4541530b310a5df5ced70a0a0a0a0a4f520a0a0a0a0a0a0a312a0b0a4e4541520b310a5d616161610a0a0a0a4f520a0a0a0a0a0a312b0a312a312a0a0a0a0a0a0a004a0b0a310b220a0b0a310a4a22310a0b0a7e6fe0e0e030e0e0e0e0e01176e02000e0e0e0e0e01131320226310a0b0a310a4a22310a0b0a310a766f8b8b4ee0e0300ae0090909090909090909090909090909090909090909090909090909090909090947aaaa540b09090909090909090909090909090909090909090909090909090909090909fae0e0f2f22164e0e0f273e07fefefef7d6dfafafafa6d6d6d6d';
|
||||
+} {42}
|
||||
+
|
||||
+set sqlite_fts3_enable_parentheses $saved_sqlite_fts3_enable_parentheses
|
||||
+finish_test
|
||||
+
|
||||
+
|
@ -1,302 +0,0 @@
|
||||
https://sqlite.org/src/info/30735432bc33cb95
|
||||
https://sqlite.org/src/info/1bd18ca35bdbf303
|
||||
https://sqlite.org/src/info/49da8bdce17ced91
|
||||
https://sqlite.org/src/info/f25a56c26e28abd4
|
||||
|
||||
--- /ext/fts5/fts5_index.c
|
||||
+++ /ext/fts5/fts5_index.c
|
||||
@@ -2321,11 +2321,11 @@
|
||||
}
|
||||
|
||||
search_success:
|
||||
- pIter->iLeafOffset = iOff + nNew;
|
||||
- if( pIter->iLeafOffset>n || nNew<1 ){
|
||||
+ if( (i64)iOff+nNew>n || nNew<1 ){
|
||||
p->rc = FTS5_CORRUPT;
|
||||
return;
|
||||
}
|
||||
+ pIter->iLeafOffset = iOff + nNew;
|
||||
pIter->iTermLeafOffset = pIter->iLeafOffset;
|
||||
pIter->iTermLeafPgno = pIter->iLeafPgno;
|
||||
|
||||
--- /ext/fts5/test/fts5corrupt3.test
|
||||
+++ /ext/fts5/test/fts5corrupt3.test
|
||||
@@ -10108,6 +10108,221 @@
|
||||
INSERT INTO t1(t1) SELECT x FROM t2;
|
||||
} {1 {database disk image is malformed}}
|
||||
|
||||
+#-------------------------------------------------------------------------
|
||||
+reset_db
|
||||
+do_test 69.0 {
|
||||
+ sqlite3 db {}
|
||||
+ db deserialize [decode_hexdb {
|
||||
+.open --hexdb
|
||||
+| size 32768 pagesize 4096 filename crash-31c462b8b665d0.db
|
||||
+| page 1 offset 0
|
||||
+| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
|
||||
+| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 08 .....@ ........
|
||||
+| 32: 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
+| 96: 00 00 00 00 0d 0f c7 00 07 0d 92 00 0f 8d 0f 36 ...............6
|
||||
+| 112: 0e cb 0e 6b 0e 0e 0d b6 0d 92 00 00 00 00 00 00 ...k............
|
||||
+| 3472: 00 00 22 08 06 17 11 11 01 31 74 61 62 6c 65 74 .........1tablet
|
||||
+| 3488: 32 74 32 08 43 52 45 41 54 45 20 54 41 42 4c 45 2t2.CREATE TABLE
|
||||
+| 3504: 20 74 32 28 78 29 56 07 06 17 1f 1f 01 7d 74 61 t2(x)V.......ta
|
||||
+| 3520: 62 6c 65 74 31 5f 63 6f 6e 66 69 67 74 31 5f 63 blet1_configt1_c
|
||||
+| 3536: 6f 6e 66 69 67 07 43 52 45 41 54 45 20 54 41 42 onfig.CREATE TAB
|
||||
+| 3552: 4c 45 20 27 74 31 5f 63 6f 6e 66 69 67 27 28 6b LE 't1_config'(k
|
||||
+| 3568: 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 76 29 PRIMARY KEY, v)
|
||||
+| 3584: 20 57 49 54 48 4f 55 54 20 52 4f 57 49 44 5b 06 WITHOUT ROWID[.
|
||||
+| 3600: 07 17 21 21 01 81 01 74 61 62 6c 65 74 31 5f 64 ..!!...tablet1_d
|
||||
+| 3616: 6f 63 73 69 7a 65 74 31 5f 64 6f 63 73 69 7a 65 ocsizet1_docsize
|
||||
+| 3632: 06 43 52 45 41 54 45 20 54 41 42 4c 45 20 27 74 .CREATE TABLE 't
|
||||
+| 3648: 31 5f 64 6f 63 73 69 7a 65 27 28 69 64 20 49 4e 1_docsize'(id IN
|
||||
+| 3664: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 TEGER PRIMARY KE
|
||||
+| 3680: 59 2c 20 73 7a 20 42 4c 4f 42 29 5e 05 07 17 21 Y, sz BLOB)^...!
|
||||
+| 3696: 21 01 81 07 74 61 62 6c 65 74 31 5f 63 6f 6e 74 !...tablet1_cont
|
||||
+| 3712: 65 6e 74 74 31 5f 63 6f 6e 74 65 6e 74 05 43 52 entt1_content.CR
|
||||
+| 3728: 45 41 54 45 20 54 41 42 4c 45 20 27 74 31 5f 63 EATE TABLE 't1_c
|
||||
+| 3744: 6f 6e 74 65 6e 74 27 28 69 64 20 49 4e 54 45 47 ontent'(id INTEG
|
||||
+| 3760: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 ER PRIMARY KEY,
|
||||
+| 3776: 63 39 2c 20 63 31 2c 20 63 32 29 69 04 07 17 19 c9, c1, c2)i....
|
||||
+| 3792: 19 01 81 2d 74 61 62 6c 65 74 31 5f 69 64 78 74 ...-tablet1_idxt
|
||||
+| 3808: 31 5f 69 64 78 04 43 52 45 41 54 45 20 54 41 42 1_idx.CREATE TAB
|
||||
+| 3824: 4c 45 20 27 74 31 5f 69 64 78 27 28 73 65 67 69 LE 't1_idx'(segi
|
||||
+| 3840: 64 2c 20 74 65 72 6d 2c 20 70 67 6e 6f 2c 20 50 d, term, pgno, P
|
||||
+| 3856: 52 49 4d 41 52 59 20 4b 45 59 28 73 65 67 69 64 RIMARY KEY(segid
|
||||
+| 3872: 2c 20 74 65 72 6d 29 29 20 57 49 54 48 4f 55 54 , term)) WITHOUT
|
||||
+| 3888: 20 52 4f 57 49 44 55 03 07 17 1b 1b 01 81 01 74 ROWIDU........t
|
||||
+| 3904: 61 62 6c 65 74 31 5f 64 61 74 61 74 31 5f 64 61 ablet1_datat1_da
|
||||
+| 3920: 74 61 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 ta.CREATE TABLE
|
||||
+| 3936: 27 74 31 5f 64 61 74 61 27 28 69 64 20 49 4e 54 't1_data'(id INT
|
||||
+| 3952: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 EGER PRIMARY KEY
|
||||
+| 3968: 2c 20 62 6c 6f 63 6b 20 42 4c 4f 42 29 38 02 06 , block BLOB)8..
|
||||
+| 3984: 17 11 11 08 5f 74 61 62 6c 65 74 31 74 31 43 52 ...._tablet1t1CR
|
||||
+| 4000: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 EATE VIRTUAL TAB
|
||||
+| 4016: 4c 45 20 74 31 20 55 53 49 4e 47 20 66 74 73 35 LE t1 USING fts5
|
||||
+| 4032: 28 61 2c 62 2c 63 29 00 00 00 00 00 00 00 00 00 (a,b,c).........
|
||||
+| page 3 offset 8192
|
||||
+| 0: 0d 00 00 00 03 0c 94 00 0f e6 0f ef 0c 94 00 00 ................
|
||||
+| 3216: 00 00 00 00 86 4a 84 80 80 80 80 01 04 00 8d 18 .....J..........
|
||||
+| 3232: 00 00 03 2b 02 30 30 01 02 06 01 02 06 01 02 06 ...+.00.........
|
||||
+| 3248: 1f 02 03 01 02 03 01 02 03 01 08 32 30 31 36 30 ...........20160
|
||||
+| 3264: 36 30 39 01 02 07 01 02 07 01 02 07 01 01 34 01 609...........4.
|
||||
+| 3280: 02 05 01 02 05 01 02 05 01 01 35 01 02 04 01 02 ..........5.....
|
||||
+| 3296: 04 01 02 04 02 07 30 30 30 30 30 30 30 1c 02 04 ......0000000...
|
||||
+| 3312: 01 02 04 01 02 04 01 06 62 69 6e 61 72 79 03 06 ........binary..
|
||||
+| 3328: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 ................
|
||||
+| 3344: 02 02 03 06 00 02 02 03 06 01 02 02 03 06 01 02 ................
|
||||
+| 3360: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 ................
|
||||
+| 3376: 03 06 01 02 02 03 06 01 02 02 01 08 63 6f 6d 70 ............comp
|
||||
+| 3392: 69 6c 65 72 01 02 02 01 02 02 01 02 02 01 06 64 iler...........d
|
||||
+| 3408: 62 73 74 61 74 07 02 03 01 02 03 01 02 03 02 04 bstat...........
|
||||
+| 3424: 65 62 75 67 04 02 02 01 02 02 01 02 02 01 06 65 ebug...........e
|
||||
+| 3440: 6e 61 62 6c 65 07 02 02 01 02 02 01 02 02 01 02 nable...........
|
||||
+| 3456: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 ................
|
||||
+| 3472: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 ................
|
||||
+| 3488: 01 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 ................
|
||||
+| 3504: 02 01 02 02 02 08 78 74 65 6e 73 69 6f 6e 1f 02 ......xtension..
|
||||
+| 3520: 04 01 02 04 01 02 04 01 04 66 74 73 34 1a 02 03 .........fts4...
|
||||
+| 3536: 01 02 03 01 02 03 04 01 35 0d 02 03 01 02 03 01 ........5.......
|
||||
+| 3552: 02 03 01 03 67 63 63 01 aa 03 01 02 03 01 02 03 ....gcc.........
|
||||
+| 3568: 02 06 65 6f 70 6f 6c 79 10 02 03 02 02 03 01 02 ..eopoly........
|
||||
+| 3584: 03 01 05 6a 73 6f 6e 31 13 02 03 01 02 03 01 02 ...json1........
|
||||
+| 3600: 03 01 04 6c 6f 61 64 1f 02 03 01 02 03 01 02 03 ...load.........
|
||||
+| 3616: 01 03 6d 61 78 1c 02 02 01 02 02 01 02 02 02 05 ..max...........
|
||||
+| 3632: 65 6d 6f 72 79 1c 02 03 01 02 03 01 02 03 04 04 emory...........
|
||||
+| 3648: 73 79 73 35 16 02 03 01 02 03 01 02 03 01 06 6e sys5...........n
|
||||
+| 3664: 6f 63 61 73 65 02 06 01 02 02 03 06 01 02 02 03 ocase...........
|
||||
+| 3680: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 ................
|
||||
+| 3696: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 ................
|
||||
+| 3712: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 ................
|
||||
+| 3728: 02 01 04 6f 6d 69 74 1f 02 02 01 02 02 01 02 01 ...omit.........
|
||||
+| 3744: ff ff ff ff ff ff ff ff f0 00 00 00 00 00 01 02 ................
|
||||
+| 3760: 58 81 96 4d 01 06 01 02 02 03 06 01 02 02 03 06 X..M............
|
||||
+| 3776: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 ................
|
||||
+| 3792: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 ................
|
||||
+| 3808: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 ................
|
||||
+| 3824: 01 0a 74 68 72 65 61 64 73 61 66 65 22 02 02 01 ..threadsafe....
|
||||
+| 3840: 02 02 01 02 02 01 04 76 74 61 62 07 02 04 01 02 .......vtab.....
|
||||
+| 3856: 04 01 02 04 01 01 78 01 06 01 01 02 01 06 01 01 ......x.........
|
||||
+| 3872: 02 01 06 01 1e 02 01 06 01 01 02 01 06 01 01 02 ................
|
||||
+| 3888: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 ................
|
||||
+| 3904: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 ................
|
||||
+| 3920: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 ................
|
||||
+| 3936: 00 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 ................
|
||||
+| 3952: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 ................
|
||||
+| 3968: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 ................
|
||||
+| 3984: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 ................
|
||||
+| 4000: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 ................
|
||||
+| 4016: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 ................
|
||||
+| 4032: 02 01 06 01 01 02 01 06 01 01 02 04 15 13 0c 0c ................
|
||||
+| 4048: 12 44 13 11 0f 47 13 0f 0b 0e 11 10 0f 0e 10 0f .D...G..........
|
||||
+| 4064: 44 0f 10 40 15 0f 07 01 03 00 14 24 5a 24 24 0f D..@.......$Z$$.
|
||||
+| 4080: 0a 03 00 24 00 00 00 00 01 01 01 00 01 01 01 01 ...$............
|
||||
+| page 4 offset 12288
|
||||
+| 0: 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
+| 4080: 00 00 00 00 00 00 00 00 00 00 05 04 09 0c 01 02 ................
|
||||
+| page 5 offset 16384
|
||||
+| 0: 0d 00 00 00 24 0c 0a 00 0f d8 0f af 0f 86 0f 74 ....$..........t
|
||||
+| 16: 0f 61 0f 4e 0f 2f 0f 0f 0e ef 0e d7 0e be 0e a5 .a.N./..........
|
||||
+| 32: 0e 8d 0e 74 0e 5b 0e 40 0e 24 0e 08 0d ef 0d d5 ...t.[.@.$......
|
||||
+| 48: 0d bb 0d a0 0d 84 0d 68 0d 4f 0d 00 00 00 00 00 .......h.O......
|
||||
+| 3072: 00 00 00 00 00 00 00 00 00 00 18 24 05 00 25 0f ...........$..%.
|
||||
+| 3088: 19 54 48 52 45 41 44 53 41 46 45 3d 30 58 42 49 .THREADSAFE=0XBI
|
||||
+| 3104: 4e 41 52 59 18 23 05 00 25 0f 19 54 48 52 45 41 NARY.#..%..THREA
|
||||
+| 3120: 44 53 41 46 45 3d 30 58 4e 4f 43 41 53 45 17 22 DSAFE=0XNOCASE..
|
||||
+| 3136: 05 00 25 0f 17 54 48 52 45 41 44 53 41 46 45 3d ..%..THREADSAFE=
|
||||
+| 3152: 30 58 52 54 52 49 4d 1f 21 05 00 33 0f 19 4f 4d 0XRTRIM.!..3..OM
|
||||
+| 3168: 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 49 4f IT LOAD EXTENSIO
|
||||
+| 3184: 4e 58 42 49 4e 41 52 59 1f 20 05 00 33 d3 19 4f NXBINARY. ..3..O
|
||||
+| 3200: 4d 49 54 28 2c 4f 41 44 b2 04 55 85 44 54 e5 34 MIT(,OAD..U.DT.4
|
||||
+| 3216: 94 f4 e5 84 e4 f4 34 15 34 51 e1 f0 50 03 30 f1 ......4.4Q..P.0.
|
||||
+| 3232: 74 f4 d4 95 42 04 c4 f4 14 42 04 55 85 44 54 e5 t...B....B.U.DT.
|
||||
+| 3248: 34 94 f4 e5 85 25 45 24 94 d1 f1 e0 50 03 30 f1 4....%E$....P.0.
|
||||
+| 3264: 94 d4 15 82 04 d4 54 d4 f5 25 93 d3 53 03 03 03 ......T..%..S...
|
||||
+| 3280: 03 03 03 05 84 24 94 e4 15 25 91 f1 d0 50 03 30 .....$...%...P.0
|
||||
+| 3296: f1 94 d4 15 82 04 d4 54 d4 f5 25 93 d3 53 03 03 .......T..%..S..
|
||||
+| 3312: 03 03 03 03 05 84 e4 f4 34 15 34 51 e1 c0 50 03 ........4.4Q..P.
|
||||
+| 3328: 30 f1 74 d4 15 82 04 d4 54 d4 f5 25 93 d3 53 03 0.t.....T..%..S.
|
||||
+| 3344: 03 03 03 03 03 05 85 25 45 24 94 d1 81 b0 50 02 .......%E$....P.
|
||||
+| 3360: 50 f1 94 54 e4 14 24 c4 52 05 25 45 24 54 55 84 P..T..$.R.%E$TU.
|
||||
+| 3376: 24 94 e4 15 25 91 81 a0 50 02 50 f1 94 54 e4 14 $...%...P.P..T..
|
||||
+| 3392: 24 c4 52 05 25 45 24 54 55 84 e4 f4 34 15 34 51 $.R.%E$TU...4.4Q
|
||||
+| 3408: 71 90 50 02 50 f1 74 54 e4 14 24 c4 52 05 25 45 q.P.P.tT..$.R.%E
|
||||
+| 3424: 24 54 55 85 25 45 24 94 d1 a1 80 50 02 90 f1 94 $TU.%E$....P....
|
||||
+| 3440: 54 e4 14 24 c4 52 04 d4 54 d5 35 95 33 55 84 24 T..$.R..T.5.3U.$
|
||||
+| 3456: 94 e4 15 25 91 a1 70 50 02 90 f1 94 54 e4 14 24 ...%..pP....T..$
|
||||
+| 3472: c4 52 04 d4 54 d5 35 95 33 55 84 e4 f4 34 15 34 .R..T.5.3U...4.4
|
||||
+| 3488: 51 91 60 50 02 90 f1 74 54 e4 14 24 c4 52 04 d4 Q.`P...tT..$.R..
|
||||
+| 3504: 54 d5 35 95 33 55 85 25 45 24 94 d1 81 50 50 02 T.5.3U.%E$...PP.
|
||||
+| 3520: 50 f1 94 54 e4 14 24 c4 52 04 a5 34 f4 e3 15 84 P..T..$.R..4....
|
||||
+| 3536: 24 94 e4 15 25 91 81 40 50 02 50 f1 94 54 e4 14 $...%..@P.P..T..
|
||||
+| 3552: 24 c4 52 04 a5 34 f4 e3 15 84 e4 f4 34 15 34 51 $.R..4......4.4Q
|
||||
+| 3568: 71 30 50 02 4f f1 74 54 e4 14 24 c4 52 04 a5 34 q0P.O.tT..$.R..4
|
||||
+| 3584: f4 e3 15 85 25 45 24 94 d1 a1 20 50 02 90 f1 94 ....%E$... P....
|
||||
+| 3600: 54 e4 14 24 c4 52 04 74 54 f5 04 f4 c5 95 84 24 T..$.R.tT......$
|
||||
+| 3616: 94 e4 15 25 91 a1 10 50 02 90 f1 94 54 e4 14 24 ...%...P....T..$
|
||||
+| 3632: c4 52 04 74 54 f5 04 f4 c5 95 84 e4 f4 34 15 34 .R.tT........4.4
|
||||
+| 3648: 51 91 00 50 02 90 f1 74 54 e4 14 24 c4 51 f4 74 Q..P...tT..$.Q.t
|
||||
+| 3664: 54 f5 04 f4 c5 95 85 25 45 24 94 d1 70 f0 50 02 T......%E$..p.P.
|
||||
+| 3680: 30 f1 94 54 e4 14 24 c5 20 46 54 53 35 58 42 49 0..T..$. FTS5XBI
|
||||
+| 3696: 4e 41 52 59 17 0e 05 00 23 0f 19 45 4e 41 42 4c NARY....#..ENABL
|
||||
+| 3712: 45 20 46 54 53 35 58 4f 4f 43 41 53 45 16 0d 05 E FTS5XOOCASE...
|
||||
+| 3728: 00 23 0f 17 45 4e 41 42 4c 45 20 46 54 53 35 58 .#..ENABLE FTS5X
|
||||
+| 3744: 52 54 52 49 4d 17 0c 05 00 23 0f 19 45 4e 41 42 RTRIM....#..ENAB
|
||||
+| 3760: 4c 45 20 46 54 53 34 58 42 49 4e 41 52 59 97 0b LE FTS4XBINARY..
|
||||
+| 3776: 05 00 23 0f 19 45 4e 41 42 4c 45 20 46 54 53 34 ..#..ENABLE FTS4
|
||||
+| 3792: 58 4e 4f 43 41 53 45 16 0a 05 00 23 0f 17 45 4e XNOCASE....#..EN
|
||||
+| 3808: 41 42 4c 45 20 46 54 53 34 58 52 54 52 49 4d 1e ABLE FTS4XRTRIM.
|
||||
+| 3824: 09 05 00 3e 5f 19 45 4e 41 42 4c 45 20 44 42 53 ...>_.ENABLE DBS
|
||||
+| 3840: 44 41 54 20 56 54 41 42 58 42 49 4e 41 52 59 1e DAT VTABXBINARY.
|
||||
+| 3856: 08 05 00 31 0f 19 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS
|
||||
+| 3872: 54 41 54 20 56 54 41 42 58 4e 4f 43 4d e3 45 1d TAT VTABXNOCM.E.
|
||||
+| 3888: 07 05 00 31 0f 17 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS
|
||||
+| 3904: 54 41 54 20 56 54 41 42 58 52 54 52 49 4d 11 06 TAT VTABXRTRIM..
|
||||
+| 3920: 05 00 17 0f 19 44 45 42 55 47 58 42 49 4e 41 52 .....DEBUGXBINAR
|
||||
+| 3936: 59 11 05 05 00 17 0f 19 44 45 42 55 47 58 4e 4f Y.......DEBUGXNO
|
||||
+| 3952: 43 41 53 45 10 02 02 50 08 5f 17 44 45 42 55 47 CASE...P._.DEBUG
|
||||
+| 3968: 58 52 54 52 49 4d 27 03 05 00 44 0f 19 43 4f 4d XRTRIM'...D..COM
|
||||
+| 3984: 50 49 4c 45 52 3d 67 63 63 2d 35 2e 34 2e 30 20 PILER=gcc-5.4.0
|
||||
+| 4000: 32 30 31 36 30 36 30 39 58 42 49 4e 41 52 59 27 20160609XBINARY'
|
||||
+| 4016: 02 05 00 43 0f 19 43 4f 4d 50 49 4c 45 52 3d 67 ...C..COMPILER=g
|
||||
+| 4032: 63 63 2d 35 2e 34 2e 30 20 32 30 31 36 30 36 30 cc-5.4.0 2016060
|
||||
+| 4048: 39 58 4e 4f 43 41 53 45 26 01 05 00 43 c9 17 43 9XNOCASE&...C..C
|
||||
+| 4064: 4f 4d 50 49 4c 47 02 3d 67 63 63 2d 35 2e 34 2e OMPILG.=gcc-5.4.
|
||||
+| 4080: 30 20 32 30 31 36 30 36 30 39 58 52 54 52 49 4d 0 20160609XRTRIM
|
||||
+| page 6 offset 20480
|
||||
+| 0: 0d 00 00 00 24 0e e0 00 0f f8 0f f0 0f e8 0f e0 ....$...........
|
||||
+| 16: 0f d8 0f d0 0f c8 0f c0 0f b8 0f b0 0f a8 0f a0 ................
|
||||
+| 32: 0f 98 0f 90 0f 88 0f 80 0f 78 0f 70 0f 68 0f 60 .........x.p.h.`
|
||||
+| 48: 0f 58 0f 50 0f 48 0f 40 0f 38 00 00 00 00 00 00 .X.P.H.@.8......
|
||||
+| 3808: 06 24 03 00 12 02 01 01 06 23 03 00 12 02 01 01 .$.......#......
|
||||
+| 3824: 06 22 03 00 12 02 01 01 06 21 03 00 12 03 01 01 .........!......
|
||||
+| 3840: 06 20 03 00 12 03 01 01 06 1f 03 00 12 03 01 01 . ..............
|
||||
+| 3856: 06 1e 03 00 12 03 01 01 06 1d 03 00 12 03 01 01 ................
|
||||
+| 3872: 06 1c 03 00 12 03 01 01 06 1b 03 00 12 02 01 01 ................
|
||||
+| 3888: 06 1a 03 00 12 02 01 01 06 19 03 00 12 02 01 01 ................
|
||||
+| 3904: 06 18 03 00 12 02 01 01 06 17 03 00 12 02 01 01 ................
|
||||
+| 3920: 06 16 03 00 12 02 01 01 06 15 03 00 12 02 01 01 ................
|
||||
+| 3936: 06 14 03 00 12 02 01 01 06 13 03 00 12 02 01 01 ................
|
||||
+| 3952: 06 12 03 00 12 02 01 01 06 11 03 00 12 02 01 01 ................
|
||||
+| 3968: 06 10 03 00 12 02 01 01 06 1f 03 00 12 02 01 01 ................
|
||||
+| 3984: 06 0e 03 00 12 02 01 01 06 0d 03 00 12 02 01 01 ................
|
||||
+| 4000: 06 0c 03 00 12 02 01 01 06 0b 03 00 12 02 01 01 ................
|
||||
+| 4016: 06 0a 03 00 12 02 01 01 06 09 03 00 12 03 01 01 ................
|
||||
+| 4032: 06 08 03 00 12 03 01 01 06 07 03 00 12 03 01 01 ................
|
||||
+| 4048: 06 06 03 00 12 01 01 01 06 05 03 00 12 01 01 01 ................
|
||||
+| 4064: 06 04 03 00 12 01 01 01 06 03 03 00 12 06 01 01 ................
|
||||
+| 4080: 06 02 03 00 12 06 01 01 06 01 03 00 12 06 01 01 ................
|
||||
+| page 7 offset 24576
|
||||
+| 0: 0a 00 00 00 01 0f f4 00 0f f4 00 00 00 00 00 00 ................
|
||||
+| 4080: 00 00 00 00 0b 03 1b 01 76 65 72 73 69 6f 6e 04 ........version.
|
||||
+| page 8 offset 28672
|
||||
+| 0: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
+| 4048: 00 00 00 00 00 00 11 03 02 2b 69 6e 74 65 67 72 .........+integr
|
||||
+| 4064: 69 74 79 2d 63 68 65 63 6b 09 00 00 00 00 00 00 ity-check.......
|
||||
+| end crash-31c462b8b665d0.db
|
||||
+}]} {}
|
||||
+
|
||||
+
|
||||
+do_catchsql_test 69.2 {
|
||||
+ SELECT * FROM t1 WHERE a MATCH 'fx*'
|
||||
+} {1 {database disk image is malformed}}
|
||||
|
||||
sqlite3_fts5_may_be_corrupt 0
|
||||
finish_test
|
||||
--- /src/btree.c
|
||||
+++ /src/btree.c
|
||||
@@ -3886,7 +3886,7 @@
|
||||
Pgno nFree = get4byte(&pBt->pPage1->aData[36]);
|
||||
Pgno nFin = finalDbSize(pBt, nOrig, nFree);
|
||||
|
||||
- if( nOrig<nFin ){
|
||||
+ if( nOrig<nFin || nFree>=nOrig ){
|
||||
rc = SQLITE_CORRUPT_BKPT;
|
||||
}else if( nFree>0 ){
|
||||
rc = saveAllCursors(pBt, 0, 0);
|
||||
@@ -8772,7 +8772,11 @@
|
||||
assert( pPage->intKey || pX->nKey>=0 );
|
||||
assert( pPage->leaf || !pPage->intKey );
|
||||
if( pPage->nFree<0 ){
|
||||
- rc = btreeComputeFreeSpace(pPage);
|
||||
+ if( pCur->eState>CURSOR_INVALID ){
|
||||
+ rc = SQLITE_CORRUPT_BKPT;
|
||||
+ }else{
|
||||
+ rc = btreeComputeFreeSpace(pPage);
|
||||
+ }
|
||||
if( rc ) return rc;
|
||||
}
|
||||
|
||||
--- /test/corruptL.test
|
||||
+++ /test/corruptL.test
|
||||
@@ -1266,5 +1266,30 @@
|
||||
do_execsql_test 15.1 {
|
||||
UPDATE c1 SET c= NOT EXISTS(SELECT 1 FROM c1 ORDER BY (SELECT 1 FROM c1 ORDER BY a)) +10 WHERE d BETWEEN 4 AND 7;
|
||||
} {}
|
||||
+
|
||||
+#-------------------------------------------------------------------------
|
||||
+reset_db
|
||||
+do_execsql_test 16.0 {
|
||||
+ CREATE TABLE t1(w, x, y, z, UNIQUE(w, x), UNIQUE(y, z));
|
||||
+ INSERT INTO t1 VALUES(1, 1, 1, 1);
|
||||
+
|
||||
+ CREATE TABLE t1idx(x, y, i INTEGER, PRIMARY KEY(x)) WITHOUT ROWID;
|
||||
+ INSERT INTO t1idx VALUES(10, NULL, 5);
|
||||
+
|
||||
+ PRAGMA writable_schema = 1;
|
||||
+ UPDATE sqlite_master SET rootpage = (
|
||||
+ SELECT rootpage FROM sqlite_master WHERE name='t1idx'
|
||||
+ ) WHERE type = 'index';
|
||||
+}
|
||||
+
|
||||
+db close
|
||||
+sqlite3 db test.db
|
||||
+
|
||||
+do_catchsql_test 16.1 {
|
||||
+ PRAGMA writable_schema = ON;
|
||||
+ INSERT INTO t1(rowid, w, x, y, z) VALUES(5, 10, 11, 10, NULL);
|
||||
+} {1 {database disk image is malformed}}
|
||||
+
|
||||
finish_test
|
||||
|
||||
+
|
@ -1,220 +0,0 @@
|
||||
https://sqlite.org/src/info/14eed318aa9e6e16
|
||||
https://sqlite.org/src/info/9679c0c61131f0e9
|
||||
https://sqlite.org/src/info/28515bbbae4fbc26
|
||||
https://sqlite.org/src/info/892e9191dc8f8056
|
||||
https://sqlite.org/src/info/270ac1a0f232d755
|
||||
|
||||
--- /ext/fts3/fts3.c
|
||||
+++ /ext/fts3/fts3.c
|
||||
@@ -5831,7 +5831,8 @@
|
||||
fts3EvalRestart(pCsr, pRoot, &rc);
|
||||
do {
|
||||
fts3EvalNextRow(pCsr, pRoot, &rc);
|
||||
- assert( pRoot->bEof==0 );
|
||||
+ assert_fts3_nc( pRoot->bEof==0 );
|
||||
+ if( pRoot->bEof ) rc = FTS_CORRUPT_VTAB;
|
||||
}while( pRoot->iDocid!=iDocid && rc==SQLITE_OK );
|
||||
}
|
||||
}
|
||||
--- /ext/misc/appendvfs.c
|
||||
+++ /ext/misc/appendvfs.c
|
||||
@@ -439,7 +439,7 @@
|
||||
p = (ApndFile*)pFile;
|
||||
memset(p, 0, sizeof(*p));
|
||||
pSubFile = ORIGFILE(pFile);
|
||||
- p->base.pMethods = &apnd_io_methods;
|
||||
+ pFile->pMethods = &apnd_io_methods;
|
||||
rc = pSubVfs->xOpen(pSubVfs, zName, pSubFile, flags, pOutFlags);
|
||||
if( rc ) goto apnd_open_done;
|
||||
rc = pSubFile->pMethods->xFileSize(pSubFile, &sz);
|
||||
--- /ext/misc/cksumvfs.c
|
||||
+++ /ext/misc/cksumvfs.c
|
||||
@@ -634,7 +634,7 @@
|
||||
p = (CksmFile*)pFile;
|
||||
memset(p, 0, sizeof(*p));
|
||||
pSubFile = ORIGFILE(pFile);
|
||||
- p->base.pMethods = &cksm_io_methods;
|
||||
+ pFile->pMethods = &cksm_io_methods;
|
||||
rc = pSubVfs->xOpen(pSubVfs, zName, pSubFile, flags, pOutFlags);
|
||||
if( rc ) goto cksm_open_done;
|
||||
if( flags & SQLITE_OPEN_WAL ){
|
||||
--- /src/date.c
|
||||
+++ /src/date.c
|
||||
@@ -1112,8 +1112,8 @@
|
||||
case 'm': sqlite3_snprintf(3, &z[j],"%02d",x.M); j+=2; break;
|
||||
case 'M': sqlite3_snprintf(3, &z[j],"%02d",x.m); j+=2; break;
|
||||
case 's': {
|
||||
- sqlite3_snprintf(30,&z[j],"%lld",
|
||||
- (i64)(x.iJD/1000 - 21086676*(i64)10000));
|
||||
+ i64 iS = (i64)(x.iJD/1000 - 21086676*(i64)10000);
|
||||
+ sqlite3Int64ToText(iS, &z[j]);
|
||||
j += sqlite3Strlen30(&z[j]);
|
||||
break;
|
||||
}
|
||||
--- /src/memdb.c
|
||||
+++ /src/memdb.c
|
||||
@@ -339,7 +339,7 @@
|
||||
p->mFlags = SQLITE_DESERIALIZE_RESIZEABLE | SQLITE_DESERIALIZE_FREEONCLOSE;
|
||||
assert( pOutFlags!=0 ); /* True because flags==SQLITE_OPEN_MAIN_DB */
|
||||
*pOutFlags = flags | SQLITE_OPEN_MEMORY;
|
||||
- p->base.pMethods = &memdb_io_methods;
|
||||
+ pFile->pMethods = &memdb_io_methods;
|
||||
p->szMax = sqlite3GlobalConfig.mxMemdbSize;
|
||||
return SQLITE_OK;
|
||||
}
|
||||
--- /src/memjournal.c
|
||||
+++ /src/memjournal.c
|
||||
@@ -366,7 +366,7 @@
|
||||
assert( MEMJOURNAL_DFLT_FILECHUNKSIZE==fileChunkSize(p->nChunkSize) );
|
||||
}
|
||||
|
||||
- p->pMethod = (const sqlite3_io_methods*)&MemJournalMethods;
|
||||
+ pJfd->pMethods = (const sqlite3_io_methods*)&MemJournalMethods;
|
||||
p->nSpill = nSpill;
|
||||
p->flags = flags;
|
||||
p->zJournal = zName;
|
||||
@@ -392,7 +392,7 @@
|
||||
int sqlite3JournalCreate(sqlite3_file *pJfd){
|
||||
int rc = SQLITE_OK;
|
||||
MemJournal *p = (MemJournal*)pJfd;
|
||||
- if( p->pMethod==&MemJournalMethods && (
|
||||
+ if( pJfd->pMethods==&MemJournalMethods && (
|
||||
#ifdef SQLITE_ENABLE_ATOMIC_WRITE
|
||||
p->nSpill>0
|
||||
#else
|
||||
--- /src/os_unix.c
|
||||
+++ /src/os_unix.c
|
||||
@@ -5689,7 +5689,7 @@
|
||||
if( rc!=SQLITE_OK ){
|
||||
if( h>=0 ) robust_close(pNew, h, __LINE__);
|
||||
}else{
|
||||
- pNew->pMethod = pLockingStyle;
|
||||
+ pId->pMethods = pLockingStyle;
|
||||
OpenCounter(+1);
|
||||
verifyDbFile(pNew);
|
||||
}
|
||||
--- /src/os_win.c
|
||||
+++ /src/os_win.c
|
||||
@@ -5266,7 +5266,7 @@
|
||||
}
|
||||
|
||||
sqlite3_free(zTmpname);
|
||||
- pFile->pMethod = pAppData ? pAppData->pMethod : &winIoMethod;
|
||||
+ id->pMethods = pAppData ? pAppData->pMethod : &winIoMethod;
|
||||
pFile->pVfs = pVfs;
|
||||
pFile->h = h;
|
||||
if( isReadonly ){
|
||||
--- /src/sqliteInt.h
|
||||
+++ /src/sqliteInt.h
|
||||
@@ -4437,6 +4437,7 @@
|
||||
int sqlite3FixExprList(DbFixer*, ExprList*);
|
||||
int sqlite3FixTriggerStep(DbFixer*, TriggerStep*);
|
||||
int sqlite3RealSameAsInt(double,sqlite3_int64);
|
||||
+void sqlite3Int64ToText(i64,char*);
|
||||
int sqlite3AtoF(const char *z, double*, int, u8);
|
||||
int sqlite3GetInt32(const char *, int*);
|
||||
int sqlite3Atoi(const char*);
|
||||
--- /src/test_multiplex.c
|
||||
+++ /src/test_multiplex.c
|
||||
@@ -591,9 +591,9 @@
|
||||
|
||||
if( rc==SQLITE_OK ){
|
||||
if( pSubOpen->pMethods->iVersion==1 ){
|
||||
- pMultiplexOpen->base.pMethods = &gMultiplex.sIoMethodsV1;
|
||||
+ pConn->pMethods = &gMultiplex.sIoMethodsV1;
|
||||
}else{
|
||||
- pMultiplexOpen->base.pMethods = &gMultiplex.sIoMethodsV2;
|
||||
+ pConn->pMethods = &gMultiplex.sIoMethodsV2;
|
||||
}
|
||||
}else{
|
||||
multiplexFreeComponents(pGroup);
|
||||
--- /src/util.c
|
||||
+++ /src/util.c
|
||||
@@ -596,6 +596,30 @@
|
||||
#endif
|
||||
|
||||
/*
|
||||
+** Render an signed 64-bit integer as text. Store the result in zOut[].
|
||||
+**
|
||||
+** The caller must ensure that zOut[] is at least 21 bytes in size.
|
||||
+*/
|
||||
+void sqlite3Int64ToText(i64 v, char *zOut){
|
||||
+ int i;
|
||||
+ u64 x;
|
||||
+ char zTemp[22];
|
||||
+ if( v<0 ){
|
||||
+ x = (v==SMALLEST_INT64) ? ((u64)1)<<63 : -v;
|
||||
+ }else{
|
||||
+ x = v;
|
||||
+ }
|
||||
+ i = sizeof(zTemp)-2;
|
||||
+ zTemp[sizeof(zTemp)-1] = 0;
|
||||
+ do{
|
||||
+ zTemp[i--] = (x%10) + '0';
|
||||
+ x = x/10;
|
||||
+ }while( x );
|
||||
+ if( v<0 ) zTemp[i--] = '-';
|
||||
+ memcpy(zOut, &zTemp[i+1], sizeof(zTemp)-1-i);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
** Compare the 19-character string zNum against the text representation
|
||||
** value 2^63: 9223372036854775808. Return negative, zero, or positive
|
||||
** if zNum is less than, equal to, or greater than the string.
|
||||
--- /src/vdbemem.c
|
||||
+++ /src/vdbemem.c
|
||||
@@ -104,16 +104,25 @@
|
||||
static void vdbeMemRenderNum(int sz, char *zBuf, Mem *p){
|
||||
StrAccum acc;
|
||||
assert( p->flags & (MEM_Int|MEM_Real|MEM_IntReal) );
|
||||
- sqlite3StrAccumInit(&acc, 0, zBuf, sz, 0);
|
||||
+ assert( sz>22 );
|
||||
if( p->flags & MEM_Int ){
|
||||
- sqlite3_str_appendf(&acc, "%lld", p->u.i);
|
||||
- }else if( p->flags & MEM_IntReal ){
|
||||
- sqlite3_str_appendf(&acc, "%!.15g", (double)p->u.i);
|
||||
+#if GCC_VERSION>=7000000
|
||||
+ /* Work-around for GCC bug
|
||||
+ ** https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96270 */
|
||||
+ i64 x;
|
||||
+ assert( (p->flags&MEM_Int)*2==sizeof(x) );
|
||||
+ memcpy(&x, (char*)&p->u, (p->flags&MEM_Int)*2);
|
||||
+ sqlite3Int64ToText(x, zBuf);
|
||||
+#else
|
||||
+ sqlite3Int64ToText(p->u.i, zBuf);
|
||||
+#endif
|
||||
}else{
|
||||
- sqlite3_str_appendf(&acc, "%!.15g", p->u.r);
|
||||
+ sqlite3StrAccumInit(&acc, 0, zBuf, sz, 0);
|
||||
+ sqlite3_str_appendf(&acc, "%!.15g",
|
||||
+ (p->flags & MEM_IntReal)!=0 ? (double)p->u.i : p->u.r);
|
||||
+ assert( acc.zText==zBuf && acc.mxAlloc<=0 );
|
||||
+ zBuf[acc.nChar] = 0; /* Fast version of sqlite3StrAccumFinish(&acc) */
|
||||
}
|
||||
- assert( acc.zText==zBuf && acc.mxAlloc<=0 );
|
||||
- zBuf[acc.nChar] = 0; /* Fast version of sqlite3StrAccumFinish(&acc) */
|
||||
}
|
||||
|
||||
#ifdef SQLITE_DEBUG
|
||||
--- /test/fts3corrupt4.test
|
||||
+++ /test/fts3corrupt4.test
|
||||
@@ -6282,4 +6282,19 @@
|
||||
|
||||
set sqlite_fts3_enable_parentheses $saved
|
||||
|
||||
+#-------------------------------------------------------------------------
|
||||
+reset_db
|
||||
+do_execsql_test 47.1 {
|
||||
+ CREATE VIRTUAL TABLE t1 USING fts3(a,b,c);
|
||||
+}
|
||||
+do_execsql_test 47.2 {
|
||||
+ INSERT INTO t1_segdir VALUES(0,0,0,0,0,X'000130120106000106000106001f030001030001030000083230313630363039090107000107000107000001340901050001050001050000013509010400010400010400010730303030303030091c0400010400010400000662696e6172793c0301020200030102020003010202000301020200030102020003010202000301020200030102020003010202000301020200030102020003010202000008636f6d70696c657209010200010200010200000664627374617409070300010300010300010465627567090402000102000102000006656e61626c653f07020001020001020001020001020001020001020001020001020001020001020001020001010001020001020001020001020001020001020001020001020001087874656e73696f6e091f0400010400010400000466747334090a0300010300010300030135090d03000103000103000003676363090103000103000103000106656f706f6c790910030001030001030000056a736f6e310913030001030001030000046c6f6164091f030001030001030000036d6178091c02000102000102000105656d6f7279091c03000103000103000304737973350916030001030001030000066e6f636173653c02010202000301020200030102020003010202000301020200030102020003010202000301020200030102020003010202000301020200030102020000046f6d6974091f020001020001020000057274726565091903000103000103000302696d3c01010202000301020200030102020003010202000301020200030102020003010202000301a202000301020200030102020003010202000301020200000a746872656164736166650922020001020001020000047674616209070400010400010400000178b401010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200');
|
||||
+ INSERT INTO t1_segdir VALUES(0,1,0,0,0,X'0001300425061b000008323031363036303903250700000134032505000001350325040001073030303030303003251a000008636f6d70696c657203250200000664627374617403250a00010465627567032508000006656e61626c650925090504040404040001087874656e73696f6e03251d0000046674733403250d0003013503250f000003676363032503000106656f706f6c790325110000056a736f6e310325130000046c6f616403251c0000036d6178032518000105656d6f7279032519000304737973350325150000046f6d697403251b000005727472656503251700000a7468726561647361666503251e0000047674616333250b00');
|
||||
+}
|
||||
+
|
||||
+do_catchsql_test 47.3 {
|
||||
+ SELECT matchinfo(t1) FROM t1 WHERE t1 MATCH '"json1 enable"';
|
||||
+} {1 {database disk image is malformed}}
|
||||
+
|
||||
+
|
||||
finish_test
|
375
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.0-build_1.1.patch
vendored
Normal file
375
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.0-build_1.1.patch
vendored
Normal file
@ -0,0 +1,375 @@
|
||||
Add initialization functions for internal usage in libsqlite3.so.
|
||||
|
||||
SQLite revision: a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
|
||||
|
||||
--- /ext/misc/amatch.c
|
||||
+++ /ext/misc/amatch.c
|
||||
@@ -1480,9 +1480,18 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
+int sqlite3AmatchInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
||||
+#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
** Register the amatch virtual table
|
||||
*/
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -1491,11 +1500,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Not used */
|
||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
- rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
||||
-#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
- return rc;
|
||||
+ return sqlite3AmatchInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/carray.c
|
||||
+++ /ext/misc/carray.c
|
||||
@@ -498,16 +498,8 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_carray_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3CarrayInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
rc = sqlite3_create_module(db, "carray", &carrayModule, 0);
|
||||
#ifdef SQLITE_TEST
|
||||
@@ -519,3 +511,18 @@
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_carray_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3CarrayInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/completion.c
|
||||
+++ /ext/misc/completion.c
|
||||
@@ -483,12 +483,13 @@
|
||||
return rc;
|
||||
}
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
int sqlite3_completion_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
int rc = SQLITE_OK;
|
||||
@@ -499,3 +500,4 @@
|
||||
#endif
|
||||
return rc;
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/csv.c
|
||||
+++ /ext/misc/csv.c
|
||||
@@ -928,6 +928,22 @@
|
||||
#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */
|
||||
|
||||
|
||||
+int sqlite3CsvInit(sqlite3 *db){
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ int rc;
|
||||
+ rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
||||
+#ifdef SQLITE_TEST
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
||||
+ }
|
||||
+#endif
|
||||
+ return rc;
|
||||
+#else
|
||||
+ return SQLITE_OK;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -941,17 +957,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
- int rc;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
- rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
||||
-#ifdef SQLITE_TEST
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
||||
- }
|
||||
-#endif
|
||||
- return rc;
|
||||
-#else
|
||||
- return SQLITE_OK;
|
||||
-#endif
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3CsvInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/dbdata.c
|
||||
+++ /ext/misc/dbdata.c
|
||||
@@ -803,7 +803,7 @@
|
||||
/*
|
||||
** Invoke this routine to register the "sqlite_dbdata" virtual table module
|
||||
*/
|
||||
-static int sqlite3DbdataRegister(sqlite3 *db){
|
||||
+int sqlite3DbdataRegister(sqlite3 *db){
|
||||
static sqlite3_module dbdata_module = {
|
||||
0, /* iVersion */
|
||||
0, /* xCreate */
|
||||
@@ -838,6 +838,7 @@
|
||||
return rc;
|
||||
}
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -849,3 +850,4 @@
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
return sqlite3DbdataRegister(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/decimal.c
|
||||
+++ /ext/misc/decimal.c
|
||||
@@ -590,14 +590,7 @@
|
||||
decimal_free(pB);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_decimal_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3DecimalInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
static const struct {
|
||||
const char *zFuncName;
|
||||
@@ -611,10 +604,6 @@
|
||||
{ "decimal_mul", 2, decimalMulFunc },
|
||||
};
|
||||
unsigned int i;
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
-
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
-
|
||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
||||
rc = sqlite3_create_function(db, aFunc[i].zFuncName, aFunc[i].nArg,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
||||
@@ -632,3 +621,20 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_decimal_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+
|
||||
+ return sqlite3DecimalInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/eval.c
|
||||
+++ /ext/misc/eval.c
|
||||
@@ -102,6 +102,20 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3EvalInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "eval", 1,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sqlEvalFunc, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "eval", 2,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sqlEvalFunc, 0, 0);
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -110,16 +124,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "eval", 1,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sqlEvalFunc, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "eval", 2,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sqlEvalFunc, 0, 0);
|
||||
- }
|
||||
- return rc;
|
||||
+ return sqlite3EvalInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/fileio.c
|
||||
+++ /ext/misc/fileio.c
|
||||
@@ -340,7 +340,7 @@
|
||||
** This function does the work for the writefile() UDF. Refer to
|
||||
** header comments at the top of this file for details.
|
||||
*/
|
||||
-static int writeFile(
|
||||
+static int writeFileContents(
|
||||
sqlite3_context *pCtx, /* Context to return bytes written in */
|
||||
const char *zFile, /* File to write */
|
||||
sqlite3_value *pData, /* Data to write */
|
||||
@@ -480,10 +480,10 @@
|
||||
mtime = sqlite3_value_int64(argv[3]);
|
||||
}
|
||||
|
||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
||||
if( res==1 && errno==ENOENT ){
|
||||
if( makeDirectory(zFile)==SQLITE_OK ){
|
||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -970,18 +970,9 @@
|
||||
# define fsdirRegister(x) SQLITE_OK
|
||||
#endif
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_fileio_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3FileioInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "readfile", 1,
|
||||
+ rc = sqlite3_create_function(db, "readfile", 1,
|
||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
readfileFunc, 0, 0);
|
||||
if( rc==SQLITE_OK ){
|
||||
@@ -998,3 +989,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_fileio_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3FileioInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/ieee754.c
|
||||
+++ /ext/misc/ieee754.c
|
||||
@@ -245,14 +245,7 @@
|
||||
}
|
||||
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_ieee_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3IeeeInit(sqlite3 *db){
|
||||
static const struct {
|
||||
char *zFName;
|
||||
int nArg;
|
||||
@@ -269,13 +262,26 @@
|
||||
};
|
||||
unsigned int i;
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
||||
- rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
||||
+ rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS,
|
||||
(void*)&aFunc[i].iAux,
|
||||
aFunc[i].xFunc, 0, 0);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_ieee_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3IeeeInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
@ -1,225 +1,29 @@
|
||||
Add initialization functions for internal usage in libsqlite3.so.
|
||||
|
||||
--- /ext/misc/carray.c
|
||||
+++ /ext/misc/carray.c
|
||||
@@ -383,16 +383,8 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
SQLite revision: a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
|
||||
|
||||
--- /ext/misc/nextchar.c
|
||||
+++ /ext/misc/nextchar.c
|
||||
@@ -286,17 +286,8 @@
|
||||
sqlite3_free(c.aResult);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_carray_init(
|
||||
-int sqlite3_nextchar_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3CarrayInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
rc = sqlite3_create_module(db, "carray", &carrayModule, 0);
|
||||
#ifdef SQLITE_TEST
|
||||
@@ -404,3 +396,18 @@
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_carray_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3CarrayInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/completion.c
|
||||
+++ /ext/misc/completion.c
|
||||
@@ -483,12 +483,13 @@
|
||||
return rc;
|
||||
}
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
int sqlite3_completion_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
int rc = SQLITE_OK;
|
||||
@@ -499,3 +500,4 @@
|
||||
#endif
|
||||
return rc;
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/csv.c
|
||||
+++ /ext/misc/csv.c
|
||||
@@ -928,6 +928,22 @@
|
||||
#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */
|
||||
|
||||
|
||||
+int sqlite3CsvInit(sqlite3 *db){
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ int rc;
|
||||
+ rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
||||
+#ifdef SQLITE_TEST
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
||||
+ }
|
||||
+#endif
|
||||
+ return rc;
|
||||
+#else
|
||||
+ return SQLITE_OK;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -941,17 +957,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
- int rc;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
- rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
||||
-#ifdef SQLITE_TEST
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
||||
- }
|
||||
-#endif
|
||||
- return rc;
|
||||
-#else
|
||||
- return SQLITE_OK;
|
||||
-#endif
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3CsvInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/dbdata.c
|
||||
+++ /ext/misc/dbdata.c
|
||||
@@ -803,7 +803,7 @@
|
||||
/*
|
||||
** Invoke this routine to register the "sqlite_dbdata" virtual table module
|
||||
*/
|
||||
-static int sqlite3DbdataRegister(sqlite3 *db){
|
||||
+int sqlite3DbdataRegister(sqlite3 *db){
|
||||
static sqlite3_module dbdata_module = {
|
||||
0, /* iVersion */
|
||||
0, /* xCreate */
|
||||
@@ -838,6 +838,7 @@
|
||||
return rc;
|
||||
}
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -849,3 +850,4 @@
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
return sqlite3DbdataRegister(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/eval.c
|
||||
+++ /ext/misc/eval.c
|
||||
@@ -102,6 +102,20 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3EvalInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "eval", 1,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sqlEvalFunc, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "eval", 2,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sqlEvalFunc, 0, 0);
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -110,16 +124,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "eval", 1,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sqlEvalFunc, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "eval", 2,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sqlEvalFunc, 0, 0);
|
||||
- }
|
||||
- return rc;
|
||||
+ return sqlite3EvalInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/fileio.c
|
||||
+++ /ext/misc/fileio.c
|
||||
@@ -340,7 +340,7 @@
|
||||
** This function does the work for the writefile() UDF. Refer to
|
||||
** header comments at the top of this file for details.
|
||||
*/
|
||||
-static int writeFile(
|
||||
+static int writeFileContents(
|
||||
sqlite3_context *pCtx, /* Context to return bytes written in */
|
||||
const char *zFile, /* File to write */
|
||||
sqlite3_value *pData, /* Data to write */
|
||||
@@ -480,10 +480,10 @@
|
||||
mtime = sqlite3_value_int64(argv[3]);
|
||||
}
|
||||
|
||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
||||
if( res==1 && errno==ENOENT ){
|
||||
if( makeDirectory(zFile)==SQLITE_OK ){
|
||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -970,18 +970,9 @@
|
||||
# define fsdirRegister(x) SQLITE_OK
|
||||
#endif
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_fileio_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3FileioInit(sqlite3 *db){
|
||||
+int sqlite3NextcharInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "readfile", 1,
|
||||
+ rc = sqlite3_create_function(db, "readfile", 1,
|
||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
readfileFunc, 0, 0);
|
||||
if( rc==SQLITE_OK ){
|
||||
@@ -998,3 +989,18 @@
|
||||
rc = sqlite3_create_function(db, "next_char", 3,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
nextCharFunc, 0, 0);
|
||||
@@ -312,3 +303,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
@ -228,32 +32,27 @@ Add initialization functions for internal usage in libsqlite3.so.
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_fileio_init(
|
||||
+int sqlite3_nextchar_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3FileioInit(db);
|
||||
+ return sqlite3NextcharInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/ieee754.c
|
||||
+++ /ext/misc/ieee754.c
|
||||
@@ -110,6 +110,20 @@
|
||||
--- /ext/misc/percentile.c
|
||||
+++ /ext/misc/percentile.c
|
||||
@@ -202,6 +202,15 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3IeeeInit(sqlite3 *db){
|
||||
+int sqlite3PercentileInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "ieee754", 1,
|
||||
+ rc = sqlite3_create_function(db, "percentile", 2,
|
||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
+ ieee754func, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "ieee754", 2,
|
||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
+ ieee754func, 0, 0);
|
||||
+ }
|
||||
+ 0, percentStep, percentFinal);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
@ -261,23 +60,18 @@ Add initialization functions for internal usage in libsqlite3.so.
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -118,16 +132,8 @@
|
||||
@@ -210,11 +219,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "ieee754", 1,
|
||||
- rc = sqlite3_create_function(db, "percentile", 2,
|
||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
- ieee754func, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "ieee754", 2,
|
||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
- ieee754func, 0, 0);
|
||||
- }
|
||||
- 0, percentStep, percentFinal);
|
||||
- return rc;
|
||||
+ return sqlite3IeeeInit(db);
|
||||
+ return sqlite3PercentileInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/regexp.c
|
||||
@ -314,6 +108,42 @@ Add initialization functions for internal usage in libsqlite3.so.
|
||||
+ return sqlite3RegexpInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/series.c
|
||||
+++ /ext/misc/series.c
|
||||
@@ -413,6 +413,15 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
+int sqlite3SeriesInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
||||
+#endif
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -421,7 +430,6 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
if( sqlite3_libversion_number()<3008012 ){
|
||||
@@ -429,7 +437,7 @@
|
||||
"generate_series() requires SQLite 3.8.12 or later");
|
||||
return SQLITE_ERROR;
|
||||
}
|
||||
- rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
||||
#endif
|
||||
- return rc;
|
||||
+ return sqlite3SeriesInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/sha1.c
|
||||
+++ /ext/misc/sha1.c
|
||||
@@ -175,7 +175,7 @@
|
||||
@ -637,7 +467,7 @@ Add initialization functions for internal usage in libsqlite3.so.
|
||||
#include "sqlite3ext.h"
|
||||
SQLITE_EXTENSION_INIT1
|
||||
#include <stdio.h>
|
||||
@@ -2137,7 +2139,7 @@
|
||||
@@ -2139,7 +2141,7 @@
|
||||
/*
|
||||
** Register the "zipfile" virtual table.
|
||||
*/
|
||||
@ -646,7 +476,7 @@ Add initialization functions for internal usage in libsqlite3.so.
|
||||
static sqlite3_module zipfileModule = {
|
||||
1, /* iVersion */
|
||||
zipfileConnect, /* xCreate */
|
||||
@@ -2171,9 +2173,10 @@
|
||||
@@ -2173,9 +2175,10 @@
|
||||
return rc;
|
||||
}
|
||||
#else /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
@ -658,7 +488,7 @@ Add initialization functions for internal usage in libsqlite3.so.
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -2184,5 +2187,8 @@
|
||||
@@ -2186,5 +2189,8 @@
|
||||
){
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
291
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.0-build_2.1.patch
vendored
Normal file
291
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.0-build_2.1.patch
vendored
Normal file
@ -0,0 +1,291 @@
|
||||
Move some code to libsqlite3.so to avoid duplication.
|
||||
Link executables against libsqlite3.so.
|
||||
Increase timeout for fuzzcheck.
|
||||
Update list of optionally available functions.
|
||||
Fix building with dlopen() not available.
|
||||
|
||||
SQLite revision: a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
|
||||
|
||||
--- /Makefile.in
|
||||
+++ /Makefile.in
|
||||
@@ -313,6 +313,9 @@
|
||||
# Source code for extensions
|
||||
#
|
||||
SRC += \
|
||||
+ $(TOP)/ext/expert/sqlite3expert.c \
|
||||
+ $(TOP)/ext/expert/sqlite3expert.h
|
||||
+SRC += \
|
||||
$(TOP)/ext/fts1/fts1.c \
|
||||
$(TOP)/ext/fts1/fts1.h \
|
||||
$(TOP)/ext/fts1/fts1_hash.c \
|
||||
@@ -365,8 +368,29 @@
|
||||
$(TOP)/ext/rbu/sqlite3rbu.h \
|
||||
$(TOP)/ext/rbu/sqlite3rbu.c
|
||||
SRC += \
|
||||
+ $(TOP)/ext/misc/amatch.c \
|
||||
+ $(TOP)/ext/misc/appendvfs.c \
|
||||
+ $(TOP)/ext/misc/carray.c \
|
||||
+ $(TOP)/ext/misc/completion.c \
|
||||
+ $(TOP)/ext/misc/csv.c \
|
||||
+ $(TOP)/ext/misc/dbdata.c \
|
||||
+ $(TOP)/ext/misc/decimal.c \
|
||||
+ $(TOP)/ext/misc/eval.c \
|
||||
+ $(TOP)/ext/misc/fileio.c \
|
||||
+ $(TOP)/ext/misc/ieee754.c \
|
||||
$(TOP)/ext/misc/json1.c \
|
||||
- $(TOP)/ext/misc/stmt.c
|
||||
+ $(TOP)/ext/misc/nextchar.c \
|
||||
+ $(TOP)/ext/misc/percentile.c \
|
||||
+ $(TOP)/ext/misc/regexp.c \
|
||||
+ $(TOP)/ext/misc/series.c \
|
||||
+ $(TOP)/ext/misc/sha1.c \
|
||||
+ $(TOP)/ext/misc/shathree.c \
|
||||
+ $(TOP)/ext/misc/sqlar.c \
|
||||
+ $(TOP)/ext/misc/stmt.c \
|
||||
+ $(TOP)/ext/misc/totype.c \
|
||||
+ $(TOP)/ext/misc/uint.c \
|
||||
+ $(TOP)/ext/misc/uuid.c \
|
||||
+ $(TOP)/ext/misc/zipfile.c
|
||||
|
||||
# Generated source code files
|
||||
#
|
||||
@@ -437,35 +461,21 @@
|
||||
# Statically linked extensions
|
||||
#
|
||||
TESTSRC += \
|
||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
||||
$(TOP)/ext/expert/test_expert.c \
|
||||
- $(TOP)/ext/misc/amatch.c \
|
||||
- $(TOP)/ext/misc/carray.c \
|
||||
$(TOP)/ext/misc/cksumvfs.c \
|
||||
$(TOP)/ext/misc/closure.c \
|
||||
- $(TOP)/ext/misc/csv.c \
|
||||
- $(TOP)/ext/misc/decimal.c \
|
||||
- $(TOP)/ext/misc/eval.c \
|
||||
$(TOP)/ext/misc/explain.c \
|
||||
- $(TOP)/ext/misc/fileio.c \
|
||||
$(TOP)/ext/misc/fuzzer.c \
|
||||
$(TOP)/ext/fts5/fts5_tcl.c \
|
||||
$(TOP)/ext/fts5/fts5_test_mi.c \
|
||||
$(TOP)/ext/fts5/fts5_test_tok.c \
|
||||
- $(TOP)/ext/misc/ieee754.c \
|
||||
$(TOP)/ext/misc/mmapwarm.c \
|
||||
- $(TOP)/ext/misc/nextchar.c \
|
||||
$(TOP)/ext/misc/normalize.c \
|
||||
- $(TOP)/ext/misc/percentile.c \
|
||||
$(TOP)/ext/misc/prefixes.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/unionvtab.c \
|
||||
$(TOP)/ext/misc/wholenumber.c \
|
||||
- $(TOP)/ext/misc/zipfile.c \
|
||||
$(TOP)/ext/userauth/userauth.c
|
||||
|
||||
# Source code to the library files needed by the test fixture
|
||||
@@ -647,25 +657,25 @@
|
||||
|
||||
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
|
||||
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
|
||||
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
|
||||
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
|
||||
-rpath "$(TCLLIBDIR)" \
|
||||
-version-info "8:6:8" \
|
||||
-avoid-version
|
||||
|
||||
-sqlite3$(TEXE): shell.c sqlite3.c
|
||||
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
|
||||
- shell.c sqlite3.c \
|
||||
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
|
||||
+sqlite3$(TEXE): shell.c libsqlite3.la
|
||||
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
|
||||
+ shell.c libsqlite3.la \
|
||||
+ $(LIBREADLINE)
|
||||
|
||||
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
|
||||
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
|
||||
|
||||
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
|
||||
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
|
||||
|
||||
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
|
||||
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
|
||||
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
|
||||
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
|
||||
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
|
||||
|
||||
srcck1$(BEXE): $(TOP)/tool/srcck1.c
|
||||
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
|
||||
@@ -776,7 +786,7 @@
|
||||
# Rule to build the amalgamation
|
||||
#
|
||||
sqlite3.lo: sqlite3.c
|
||||
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
|
||||
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
|
||||
|
||||
# Rules to build the LEMON compiler generator
|
||||
#
|
||||
@@ -1082,18 +1092,6 @@
|
||||
# Source files that go into making shell.c
|
||||
SHELL_SRC = \
|
||||
$(TOP)/src/shell.c.in \
|
||||
- $(TOP)/ext/misc/appendvfs.c \
|
||||
- $(TOP)/ext/misc/completion.c \
|
||||
- $(TOP)/ext/misc/decimal.c \
|
||||
- $(TOP)/ext/misc/fileio.c \
|
||||
- $(TOP)/ext/misc/ieee754.c \
|
||||
- $(TOP)/ext/misc/series.c \
|
||||
- $(TOP)/ext/misc/shathree.c \
|
||||
- $(TOP)/ext/misc/sqlar.c \
|
||||
- $(TOP)/ext/misc/uint.c \
|
||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
||||
- $(TOP)/ext/expert/sqlite3expert.h \
|
||||
- $(TOP)/ext/misc/zipfile.c \
|
||||
$(TOP)/ext/misc/memtrace.c \
|
||||
$(TOP)/src/test_windirent.c
|
||||
|
||||
@@ -1263,11 +1261,11 @@
|
||||
|
||||
# Fuzz testing
|
||||
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
||||
- ./fuzzcheck$(TEXE) $(FUZZDATA)
|
||||
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
|
||||
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
||||
|
||||
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
||||
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA)
|
||||
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
|
||||
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
||||
|
||||
# The veryquick.test TCL tests.
|
||||
@@ -1301,24 +1299,23 @@
|
||||
shelltest: $(TESTPROGS)
|
||||
./testfixture$(TEXT) $(TOP)/test/permutations.test shell
|
||||
|
||||
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
||||
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
|
||||
|
||||
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
|
||||
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
|
||||
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-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
|
||||
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
|
||||
|
||||
-sqltclsh$(TEXE): sqltclsh.c
|
||||
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
|
||||
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
|
||||
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
|
||||
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
|
||||
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
|
||||
|
||||
CHECKER_DEPS =\
|
||||
$(TOP)/tool/mkccode.tcl \
|
||||
- sqlite3.c \
|
||||
$(TOP)/src/tclsqlite.c \
|
||||
$(TOP)/ext/repair/sqlite3_checker.tcl \
|
||||
$(TOP)/ext/repair/checkindex.c \
|
||||
@@ -1329,36 +1326,36 @@
|
||||
sqlite3_checker.c: $(CHECKER_DEPS)
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
|
||||
|
||||
-sqlite3_checker$(TEXE): sqlite3_checker.c
|
||||
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
|
||||
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
|
||||
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
||||
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
|
||||
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
|
||||
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
||||
|
||||
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
||||
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
|
||||
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
|
||||
|
||||
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
|
||||
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
|
||||
|
||||
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
|
||||
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
|
||||
|
||||
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
|
||||
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
|
||||
|
||||
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
|
||||
+showwal$(TEXE): $(TOP)/tool/showwal.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
|
||||
|
||||
showshm$(TEXE): $(TOP)/tool/showshm.c
|
||||
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
|
||||
|
||||
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
|
||||
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
|
||||
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
|
||||
|
||||
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
|
||||
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
|
||||
|
||||
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
|
||||
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
|
||||
@@ -1383,11 +1380,11 @@
|
||||
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
|
||||
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
|
||||
|
||||
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
|
||||
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
|
||||
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
||||
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
||||
|
||||
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
||||
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
|
||||
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
||||
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
|
||||
|
||||
# This target will fail if the SQLite amalgamation contains any exported
|
||||
# symbols that do not begin with "sqlite3_". It is run as part of the
|
||||
--- /configure.ac
|
||||
+++ /configure.ac
|
||||
@@ -108,7 +108,7 @@
|
||||
#########
|
||||
# Figure out whether or not we have these functions
|
||||
#
|
||||
-AC_CHECK_FUNCS([fdatasync gmtime_r isnan localtime_r localtime_s malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64])
|
||||
+AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])
|
||||
|
||||
#########
|
||||
# By default, we use the amalgamation (this may be changed below...)
|
||||
@@ -582,6 +582,9 @@
|
||||
if test "${enable_load_extension}" = "yes" ; then
|
||||
OPT_FEATURE_FLAGS=""
|
||||
AC_SEARCH_LIBS(dlopen, dl)
|
||||
+ if test "${ac_cv_search_dlopen}" = "no" ; then
|
||||
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
||||
+ fi
|
||||
else
|
||||
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
||||
fi
|
441
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.0-build_2.2.patch
vendored
Normal file
441
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.0-build_2.2.patch
vendored
Normal file
@ -0,0 +1,441 @@
|
||||
Move some code to libsqlite3.so to avoid duplication.
|
||||
Initialize some extensions in libsqlite3.so.
|
||||
Update test suite.
|
||||
|
||||
SQLite revision: a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
|
||||
|
||||
--- /ext/repair/sqlite3_checker.c.in
|
||||
+++ /ext/repair/sqlite3_checker.c.in
|
||||
@@ -2,6 +2,7 @@
|
||||
** Read an SQLite database file and analyze its space utilization. Generate
|
||||
** text on standard output.
|
||||
*/
|
||||
+#define SQLITE_CORE 1
|
||||
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
|
||||
#define SQLITE_ENABLE_DBPAGE_VTAB 1
|
||||
#define SQLITE_ENABLE_JSON1 1
|
||||
@@ -14,7 +15,7 @@
|
||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
-INCLUDE sqlite3.c
|
||||
+#include "sqlite3.h"
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
INCLUDE $ROOT/ext/misc/btreeinfo.c
|
||||
INCLUDE $ROOT/ext/repair/checkindex.c
|
||||
--- /src/main.c
|
||||
+++ /src/main.c
|
||||
@@ -50,12 +50,36 @@
|
||||
#ifdef SQLITE_ENABLE_FTS5
|
||||
int sqlite3Fts5Init(sqlite3*);
|
||||
#endif
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
+int sqlite3DbdataRegister(sqlite3*);
|
||||
+#endif
|
||||
#ifdef SQLITE_ENABLE_JSON1
|
||||
int sqlite3Json1Init(sqlite3*);
|
||||
#endif
|
||||
#ifdef SQLITE_ENABLE_STMTVTAB
|
||||
int sqlite3StmtVtabInit(sqlite3*);
|
||||
#endif
|
||||
+int sqlite3AmatchInit(sqlite3*);
|
||||
+int sqlite3CarrayInit(sqlite3*);
|
||||
+int sqlite3CompletionVtabInit(sqlite3*);
|
||||
+int sqlite3CsvInit(sqlite3*);
|
||||
+int sqlite3DecimalInit(sqlite3*);
|
||||
+int sqlite3EvalInit(sqlite3*);
|
||||
+int sqlite3FileioInit(sqlite3*);
|
||||
+int sqlite3IeeeInit(sqlite3*);
|
||||
+int sqlite3NextcharInit(sqlite3*);
|
||||
+int sqlite3PercentileInit(sqlite3*);
|
||||
+int sqlite3RegexpInit(sqlite3*);
|
||||
+int sqlite3SeriesInit(sqlite3*);
|
||||
+int sqlite3ShaInit(sqlite3*);
|
||||
+int sqlite3ShathreeInit(sqlite3*);
|
||||
+int sqlite3TotypeInit(sqlite3*);
|
||||
+int sqlite3UintInit(sqlite3*);
|
||||
+int sqlite3UuidInit(sqlite3*);
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
||||
+int sqlite3ZipfileInit(sqlite3*);
|
||||
+int sqlite3SqlarInit(sqlite3*);
|
||||
+#endif
|
||||
|
||||
/*
|
||||
** An array of pointers to extension initializer functions for
|
||||
@@ -83,6 +107,9 @@
|
||||
#ifdef SQLITE_ENABLE_DBPAGE_VTAB
|
||||
sqlite3DbpageRegister,
|
||||
#endif
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
+ sqlite3DbdataRegister,
|
||||
+#endif
|
||||
#ifdef SQLITE_ENABLE_DBSTAT_VTAB
|
||||
sqlite3DbstatRegister,
|
||||
#endif
|
||||
@@ -96,6 +123,27 @@
|
||||
#ifdef SQLITE_ENABLE_BYTECODE_VTAB
|
||||
sqlite3VdbeBytecodeVtabInit,
|
||||
#endif
|
||||
+ sqlite3AmatchInit,
|
||||
+ sqlite3CarrayInit,
|
||||
+ sqlite3CompletionVtabInit,
|
||||
+ sqlite3CsvInit,
|
||||
+ sqlite3DecimalInit,
|
||||
+ sqlite3EvalInit,
|
||||
+ sqlite3FileioInit,
|
||||
+ sqlite3IeeeInit,
|
||||
+ sqlite3NextcharInit,
|
||||
+ sqlite3PercentileInit,
|
||||
+ sqlite3RegexpInit,
|
||||
+ sqlite3SeriesInit,
|
||||
+ sqlite3ShaInit,
|
||||
+ sqlite3ShathreeInit,
|
||||
+ sqlite3TotypeInit,
|
||||
+ sqlite3UintInit,
|
||||
+ sqlite3UuidInit,
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
||||
+ sqlite3ZipfileInit,
|
||||
+ sqlite3SqlarInit,
|
||||
+#endif
|
||||
};
|
||||
|
||||
#ifndef SQLITE_AMALGAMATION
|
||||
--- /src/shell.c.in
|
||||
+++ /src/shell.c.in
|
||||
@@ -69,6 +69,7 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "sqlite3.h"
|
||||
+#include "ext/expert/sqlite3expert.h"
|
||||
typedef sqlite3_int64 i64;
|
||||
typedef sqlite3_uint64 u64;
|
||||
typedef unsigned char u8;
|
||||
@@ -135,6 +136,10 @@
|
||||
# define SHELL_USE_LOCAL_GETLINE 1
|
||||
#endif
|
||||
|
||||
+#ifdef SQLITE_HAVE_ZLIB
|
||||
+#include <zlib.h>
|
||||
+#endif
|
||||
+
|
||||
|
||||
#if defined(_WIN32) || defined(WIN32)
|
||||
# if SQLITE_OS_WINRT
|
||||
@@ -1018,25 +1023,7 @@
|
||||
INCLUDE test_windirent.c
|
||||
#define dirent DIRENT
|
||||
#endif
|
||||
-INCLUDE ../ext/misc/shathree.c
|
||||
-INCLUDE ../ext/misc/fileio.c
|
||||
-INCLUDE ../ext/misc/completion.c
|
||||
-INCLUDE ../ext/misc/appendvfs.c
|
||||
INCLUDE ../ext/misc/memtrace.c
|
||||
-INCLUDE ../ext/misc/uint.c
|
||||
-INCLUDE ../ext/misc/decimal.c
|
||||
-INCLUDE ../ext/misc/ieee754.c
|
||||
-INCLUDE ../ext/misc/series.c
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
-INCLUDE ../ext/misc/zipfile.c
|
||||
-INCLUDE ../ext/misc/sqlar.c
|
||||
-#endif
|
||||
-INCLUDE ../ext/expert/sqlite3expert.h
|
||||
-INCLUDE ../ext/expert/sqlite3expert.c
|
||||
-
|
||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
-INCLUDE ../ext/misc/dbdata.c
|
||||
-#endif
|
||||
|
||||
#if defined(SQLITE_ENABLE_SESSION)
|
||||
/*
|
||||
@@ -4608,20 +4595,6 @@
|
||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
||||
sqlite3_enable_load_extension(p->db, 1);
|
||||
#endif
|
||||
- sqlite3_fileio_init(p->db, 0, 0);
|
||||
- sqlite3_shathree_init(p->db, 0, 0);
|
||||
- sqlite3_completion_init(p->db, 0, 0);
|
||||
- sqlite3_uint_init(p->db, 0, 0);
|
||||
- sqlite3_decimal_init(p->db, 0, 0);
|
||||
- sqlite3_ieee_init(p->db, 0, 0);
|
||||
- sqlite3_series_init(p->db, 0, 0);
|
||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
- sqlite3_dbdata_init(p->db, 0, 0);
|
||||
-#endif
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
- sqlite3_zipfile_init(p->db, 0, 0);
|
||||
- sqlite3_sqlar_init(p->db, 0, 0);
|
||||
-#endif
|
||||
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
|
||||
shellAddSchemaName, 0, 0);
|
||||
sqlite3_create_function(p->db, "shell_module_schema", 1, SQLITE_UTF8, 0,
|
||||
@@ -6644,8 +6617,6 @@
|
||||
);
|
||||
goto end_ar_command;
|
||||
}
|
||||
- sqlite3_fileio_init(cmd.db, 0, 0);
|
||||
- sqlite3_sqlar_init(cmd.db, 0, 0);
|
||||
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
|
||||
shellPutsFunc, 0, 0);
|
||||
|
||||
@@ -11076,6 +11047,7 @@
|
||||
#endif
|
||||
}
|
||||
data.out = stdout;
|
||||
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
|
||||
sqlite3_appendvfs_init(0,0,0);
|
||||
|
||||
/* Go ahead and open the database file if it already exists. If the
|
||||
--- /src/test_config.c
|
||||
+++ /src/test_config.c
|
||||
@@ -353,6 +353,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "decimal", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_DECLTYPE
|
||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
@@ -540,6 +542,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "regexp", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_REINDEX
|
||||
Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
@@ -662,6 +666,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "uint", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_UTF16
|
||||
Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
--- /test/e_expr.test
|
||||
+++ /test/e_expr.test
|
||||
@@ -1079,7 +1079,7 @@
|
||||
#
|
||||
# There is a regexp function if ICU is enabled though.
|
||||
#
|
||||
-ifcapable !icu {
|
||||
+ifcapable !icu&&!regexp {
|
||||
do_catchsql_test e_expr-18.1.1 {
|
||||
SELECT regexp('abc', 'def')
|
||||
} {1 {no such function: regexp}}
|
||||
--- /test/icu.test
|
||||
+++ /test/icu.test
|
||||
@@ -41,7 +41,7 @@
|
||||
#
|
||||
test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1
|
||||
test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1
|
||||
- test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0
|
||||
+ test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell$'} 0
|
||||
test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1
|
||||
test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}
|
||||
|
||||
--- /test/pragma.test
|
||||
+++ /test/pragma.test
|
||||
@@ -1370,17 +1370,62 @@
|
||||
} ;# ifcapable trigger
|
||||
|
||||
ifcapable schema_pragmas {
|
||||
- do_test pragma-11.1 {
|
||||
- execsql2 {
|
||||
- pragma collation_list;
|
||||
+ ifcapable decimal {
|
||||
+ ifcapable uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name UINT seq 1 name decimal seq 2 name RTRIM seq 3 name NOCASE seq 4 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 UINT 2 decimal 3 RTRIM 4 NOCASE 5 BINARY}
|
||||
}
|
||||
- } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
||||
- do_test pragma-11.2 {
|
||||
- db collate New_Collation blah...
|
||||
- execsql {
|
||||
- pragma collation_list;
|
||||
+ ifcapable !uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name decimal seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 decimal 2 RTRIM 3 NOCASE 4 BINARY}
|
||||
}
|
||||
- } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
||||
+ }
|
||||
+ ifcapable !decimal {
|
||||
+ ifcapable uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name UINT seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 UINT 2 RTRIM 3 NOCASE 4 BINARY}
|
||||
+ }
|
||||
+ ifcapable !uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
ifcapable schema_pragmas&&tempdb {
|
||||
--- /test/sessionfuzz.c
|
||||
+++ /test/sessionfuzz.c
|
||||
@@ -698,49 +698,6 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
-#ifndef OMIT_ZLIB
|
||||
-#include "zlib.h"
|
||||
-#endif
|
||||
-
|
||||
-/*
|
||||
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
|
||||
-**
|
||||
-** Parameter SZ is interpreted as an integer. If it is less than or
|
||||
-** equal to zero, then this function returns a copy of X. Or, if
|
||||
-** SZ is equal to the size of X when interpreted as a blob, also
|
||||
-** return a copy of X. Otherwise, decompress blob X using zlib
|
||||
-** utility function uncompress() and return the results (another
|
||||
-** blob).
|
||||
-*/
|
||||
-static void sqlarUncompressFunc(
|
||||
- sqlite3_context *context,
|
||||
- int argc,
|
||||
- sqlite3_value **argv
|
||||
-){
|
||||
-#ifdef OMIT_ZLIB
|
||||
- sqlite3_result_value(context, argv[0]);
|
||||
-#else
|
||||
- uLong nData;
|
||||
- uLongf sz;
|
||||
-
|
||||
- assert( argc==2 );
|
||||
- sz = sqlite3_value_int(argv[1]);
|
||||
-
|
||||
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
|
||||
- sqlite3_result_value(context, argv[0]);
|
||||
- }else{
|
||||
- const Bytef *pData= sqlite3_value_blob(argv[0]);
|
||||
- Bytef *pOut = sqlite3_malloc(sz);
|
||||
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
|
||||
- sqlite3_result_error(context, "error in uncompress()", -1);
|
||||
- }else{
|
||||
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
|
||||
- }
|
||||
- sqlite3_free(pOut);
|
||||
- }
|
||||
-#endif
|
||||
-}
|
||||
-
|
||||
|
||||
/* Run a chunk of SQL. If any errors happen, print an error message
|
||||
** and exit.
|
||||
--- /tool/mksqlite3c.tcl
|
||||
+++ /tool/mksqlite3c.tcl
|
||||
@@ -129,6 +129,7 @@
|
||||
rtree.h
|
||||
sqlite3session.h
|
||||
sqlite3.h
|
||||
+ sqlite3expert.h
|
||||
sqlite3ext.h
|
||||
sqlite3rbu.h
|
||||
sqliteicu.h
|
||||
@@ -416,6 +417,28 @@
|
||||
sqlite3session.c
|
||||
fts5.c
|
||||
stmt.c
|
||||
+ amatch.c
|
||||
+ appendvfs.c
|
||||
+ carray.c
|
||||
+ completion.c
|
||||
+ csv.c
|
||||
+ dbdata.c
|
||||
+ decimal.c
|
||||
+ eval.c
|
||||
+ fileio.c
|
||||
+ ieee754.c
|
||||
+ nextchar.c
|
||||
+ percentile.c
|
||||
+ regexp.c
|
||||
+ series.c
|
||||
+ sha1.c
|
||||
+ shathree.c
|
||||
+ sqlar.c
|
||||
+ sqlite3expert.c
|
||||
+ totype.c
|
||||
+ uint.c
|
||||
+ uuid.c
|
||||
+ zipfile.c
|
||||
} {
|
||||
copy_file tsrc/$file
|
||||
}
|
||||
--- /tool/sqlite3_analyzer.c.in
|
||||
+++ /tool/sqlite3_analyzer.c.in
|
||||
@@ -14,9 +14,6 @@
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
#define SQLITE_OMIT_LOAD_EXTENSION 1
|
||||
-#ifndef USE_EXTERNAL_SQLITE
|
||||
-INCLUDE sqlite3.c
|
||||
-#endif
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
|
||||
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
|
||||
--- /tool/sqltclsh.c.in
|
||||
+++ /tool/sqltclsh.c.in
|
||||
@@ -27,21 +27,13 @@
|
||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
-INCLUDE sqlite3.c
|
||||
-INCLUDE $ROOT/ext/misc/appendvfs.c
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
-INCLUDE $ROOT/ext/misc/zipfile.c
|
||||
-INCLUDE $ROOT/ext/misc/sqlar.c
|
||||
-#endif
|
||||
+#include "sqlite3.h"
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
|
||||
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
|
||||
(void)interp;
|
||||
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
|
||||
sqlite3_appendvfs_init(0,0,0);
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
- sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
|
||||
- sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
|
||||
-#endif
|
||||
|
||||
return
|
||||
BEGIN_STRING
|
375
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.1-build_1.1.patch
vendored
Normal file
375
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.1-build_1.1.patch
vendored
Normal file
@ -0,0 +1,375 @@
|
||||
Add initialization functions for internal usage in libsqlite3.so.
|
||||
|
||||
SQLite revision: 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
||||
|
||||
--- /ext/misc/amatch.c
|
||||
+++ /ext/misc/amatch.c
|
||||
@@ -1480,9 +1480,18 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
+int sqlite3AmatchInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
||||
+#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
** Register the amatch virtual table
|
||||
*/
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -1491,11 +1500,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Not used */
|
||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
- rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
||||
-#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
- return rc;
|
||||
+ return sqlite3AmatchInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/carray.c
|
||||
+++ /ext/misc/carray.c
|
||||
@@ -498,16 +498,8 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_carray_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3CarrayInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
rc = sqlite3_create_module(db, "carray", &carrayModule, 0);
|
||||
#ifdef SQLITE_TEST
|
||||
@@ -519,3 +511,18 @@
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_carray_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3CarrayInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/completion.c
|
||||
+++ /ext/misc/completion.c
|
||||
@@ -483,12 +483,13 @@
|
||||
return rc;
|
||||
}
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
int sqlite3_completion_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
int rc = SQLITE_OK;
|
||||
@@ -499,3 +500,4 @@
|
||||
#endif
|
||||
return rc;
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/csv.c
|
||||
+++ /ext/misc/csv.c
|
||||
@@ -928,6 +928,22 @@
|
||||
#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */
|
||||
|
||||
|
||||
+int sqlite3CsvInit(sqlite3 *db){
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ int rc;
|
||||
+ rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
||||
+#ifdef SQLITE_TEST
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
||||
+ }
|
||||
+#endif
|
||||
+ return rc;
|
||||
+#else
|
||||
+ return SQLITE_OK;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -941,17 +957,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
- int rc;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
- rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
||||
-#ifdef SQLITE_TEST
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
||||
- }
|
||||
-#endif
|
||||
- return rc;
|
||||
-#else
|
||||
- return SQLITE_OK;
|
||||
-#endif
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3CsvInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/dbdata.c
|
||||
+++ /ext/misc/dbdata.c
|
||||
@@ -803,7 +803,7 @@
|
||||
/*
|
||||
** Invoke this routine to register the "sqlite_dbdata" virtual table module
|
||||
*/
|
||||
-static int sqlite3DbdataRegister(sqlite3 *db){
|
||||
+int sqlite3DbdataRegister(sqlite3 *db){
|
||||
static sqlite3_module dbdata_module = {
|
||||
0, /* iVersion */
|
||||
0, /* xCreate */
|
||||
@@ -838,6 +838,7 @@
|
||||
return rc;
|
||||
}
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -849,3 +850,4 @@
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
return sqlite3DbdataRegister(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/decimal.c
|
||||
+++ /ext/misc/decimal.c
|
||||
@@ -590,14 +590,7 @@
|
||||
decimal_free(pB);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_decimal_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3DecimalInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
static const struct {
|
||||
const char *zFuncName;
|
||||
@@ -611,10 +604,6 @@
|
||||
{ "decimal_mul", 2, decimalMulFunc },
|
||||
};
|
||||
unsigned int i;
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
-
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
-
|
||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
||||
rc = sqlite3_create_function(db, aFunc[i].zFuncName, aFunc[i].nArg,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
||||
@@ -632,3 +621,20 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_decimal_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+
|
||||
+ return sqlite3DecimalInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/eval.c
|
||||
+++ /ext/misc/eval.c
|
||||
@@ -102,6 +102,20 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3EvalInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "eval", 1,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sqlEvalFunc, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "eval", 2,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sqlEvalFunc, 0, 0);
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -110,16 +124,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "eval", 1,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sqlEvalFunc, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "eval", 2,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sqlEvalFunc, 0, 0);
|
||||
- }
|
||||
- return rc;
|
||||
+ return sqlite3EvalInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/fileio.c
|
||||
+++ /ext/misc/fileio.c
|
||||
@@ -340,7 +340,7 @@
|
||||
** This function does the work for the writefile() UDF. Refer to
|
||||
** header comments at the top of this file for details.
|
||||
*/
|
||||
-static int writeFile(
|
||||
+static int writeFileContents(
|
||||
sqlite3_context *pCtx, /* Context to return bytes written in */
|
||||
const char *zFile, /* File to write */
|
||||
sqlite3_value *pData, /* Data to write */
|
||||
@@ -480,10 +480,10 @@
|
||||
mtime = sqlite3_value_int64(argv[3]);
|
||||
}
|
||||
|
||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
||||
if( res==1 && errno==ENOENT ){
|
||||
if( makeDirectory(zFile)==SQLITE_OK ){
|
||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -970,18 +970,9 @@
|
||||
# define fsdirRegister(x) SQLITE_OK
|
||||
#endif
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_fileio_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3FileioInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "readfile", 1,
|
||||
+ rc = sqlite3_create_function(db, "readfile", 1,
|
||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
readfileFunc, 0, 0);
|
||||
if( rc==SQLITE_OK ){
|
||||
@@ -998,3 +989,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_fileio_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3FileioInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/ieee754.c
|
||||
+++ /ext/misc/ieee754.c
|
||||
@@ -245,14 +245,7 @@
|
||||
}
|
||||
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_ieee_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3IeeeInit(sqlite3 *db){
|
||||
static const struct {
|
||||
char *zFName;
|
||||
int nArg;
|
||||
@@ -269,13 +262,26 @@
|
||||
};
|
||||
unsigned int i;
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
||||
- rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
||||
+ rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS,
|
||||
(void*)&aFunc[i].iAux,
|
||||
aFunc[i].xFunc, 0, 0);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_ieee_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3IeeeInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
500
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.1-build_1.2.patch
vendored
Normal file
500
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.1-build_1.2.patch
vendored
Normal file
@ -0,0 +1,500 @@
|
||||
Add initialization functions for internal usage in libsqlite3.so.
|
||||
|
||||
SQLite revision: 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
||||
|
||||
--- /ext/misc/nextchar.c
|
||||
+++ /ext/misc/nextchar.c
|
||||
@@ -286,17 +286,8 @@
|
||||
sqlite3_free(c.aResult);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_nextchar_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3NextcharInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
rc = sqlite3_create_function(db, "next_char", 3,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
nextCharFunc, 0, 0);
|
||||
@@ -312,3 +303,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_nextchar_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3NextcharInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/percentile.c
|
||||
+++ /ext/misc/percentile.c
|
||||
@@ -202,6 +202,15 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3PercentileInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "percentile", 2,
|
||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
+ 0, percentStep, percentFinal);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -210,11 +219,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "percentile", 2,
|
||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
- 0, percentStep, percentFinal);
|
||||
- return rc;
|
||||
+ return sqlite3PercentileInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/regexp.c
|
||||
+++ /ext/misc/regexp.c
|
||||
@@ -740,10 +740,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
+int sqlite3RegexpInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
||||
+ 0, re_sql_func, 0, 0);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
** Invoke this routine to register the regexp() function with the
|
||||
** SQLite database connection.
|
||||
*/
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -752,9 +760,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
- rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
||||
- 0, re_sql_func, 0, 0);
|
||||
- return rc;
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3RegexpInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/series.c
|
||||
+++ /ext/misc/series.c
|
||||
@@ -413,6 +413,15 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
+int sqlite3SeriesInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
||||
+#endif
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -421,7 +430,6 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
if( sqlite3_libversion_number()<3008012 ){
|
||||
@@ -429,7 +437,7 @@
|
||||
"generate_series() requires SQLite 3.8.12 or later");
|
||||
return SQLITE_ERROR;
|
||||
}
|
||||
- rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
||||
#endif
|
||||
- return rc;
|
||||
+ return sqlite3SeriesInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/sha1.c
|
||||
+++ /ext/misc/sha1.c
|
||||
@@ -175,7 +175,7 @@
|
||||
}
|
||||
|
||||
/* Compute a string using sqlite3_vsnprintf() and hash it */
|
||||
-static void hash_step_vformat(
|
||||
+static void sha1_hash_step_vformat(
|
||||
SHA1Context *p, /* Add content to this context */
|
||||
const char *zFormat,
|
||||
...
|
||||
@@ -306,7 +306,7 @@
|
||||
nCol = sqlite3_column_count(pStmt);
|
||||
z = sqlite3_sql(pStmt);
|
||||
n = (int)strlen(z);
|
||||
- hash_step_vformat(&cx,"S%d:",n);
|
||||
+ sha1_hash_step_vformat(&cx,"S%d:",n);
|
||||
hash_step(&cx,(unsigned char*)z,n);
|
||||
|
||||
/* Compute a hash over the result of the query */
|
||||
@@ -349,14 +349,14 @@
|
||||
case SQLITE_TEXT: {
|
||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
||||
- hash_step_vformat(&cx,"T%d:",n2);
|
||||
+ sha1_hash_step_vformat(&cx,"T%d:",n2);
|
||||
hash_step(&cx, z2, n2);
|
||||
break;
|
||||
}
|
||||
case SQLITE_BLOB: {
|
||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
||||
- hash_step_vformat(&cx,"B%d:",n2);
|
||||
+ sha1_hash_step_vformat(&cx,"B%d:",n2);
|
||||
hash_step(&cx, z2, n2);
|
||||
break;
|
||||
}
|
||||
@@ -370,6 +370,20 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3ShaInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "sha1", 1,
|
||||
+ SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
||||
+ 0, sha1Func, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "sha1_query", 1,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sha1QueryFunc, 0, 0);
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -378,16 +392,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "sha1", 1,
|
||||
- SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
||||
- 0, sha1Func, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "sha1_query", 1,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sha1QueryFunc, 0, 0);
|
||||
- }
|
||||
- return rc;
|
||||
+ return sqlite3ShaInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/shathree.c
|
||||
+++ /ext/misc/shathree.c
|
||||
@@ -527,7 +527,7 @@
|
||||
/* Compute a string using sqlite3_vsnprintf() with a maximum length
|
||||
** of 50 bytes and add it to the hash.
|
||||
*/
|
||||
-static void hash_step_vformat(
|
||||
+static void sha3_hash_step_vformat(
|
||||
SHA3Context *p, /* Add content to this context */
|
||||
const char *zFormat,
|
||||
...
|
||||
@@ -623,7 +623,7 @@
|
||||
z = sqlite3_sql(pStmt);
|
||||
if( z ){
|
||||
n = (int)strlen(z);
|
||||
- hash_step_vformat(&cx,"S%d:",n);
|
||||
+ sha3_hash_step_vformat(&cx,"S%d:",n);
|
||||
SHA3Update(&cx,(unsigned char*)z,n);
|
||||
}
|
||||
|
||||
@@ -667,14 +667,14 @@
|
||||
case SQLITE_TEXT: {
|
||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
||||
- hash_step_vformat(&cx,"T%d:",n2);
|
||||
+ sha3_hash_step_vformat(&cx,"T%d:",n2);
|
||||
SHA3Update(&cx, z2, n2);
|
||||
break;
|
||||
}
|
||||
case SQLITE_BLOB: {
|
||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
||||
- hash_step_vformat(&cx,"B%d:",n2);
|
||||
+ sha3_hash_step_vformat(&cx,"B%d:",n2);
|
||||
SHA3Update(&cx, z2, n2);
|
||||
break;
|
||||
}
|
||||
@@ -687,17 +687,8 @@
|
||||
}
|
||||
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_shathree_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3ShathreeInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
rc = sqlite3_create_function(db, "sha3", 1,
|
||||
SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
||||
0, sha3Func, 0, 0);
|
||||
@@ -718,3 +709,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_shathree_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3ShathreeInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/sqlar.c
|
||||
+++ /ext/misc/sqlar.c
|
||||
@@ -14,6 +14,8 @@
|
||||
** for working with sqlar archives and used by the shell tool's built-in
|
||||
** sqlar support.
|
||||
*/
|
||||
+#ifdef SQLITE_HAVE_ZLIB
|
||||
+
|
||||
#include "sqlite3ext.h"
|
||||
SQLITE_EXTENSION_INIT1
|
||||
#include <zlib.h>
|
||||
@@ -101,6 +103,20 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3SqlarInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
+ sqlarCompressFunc, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
+ sqlarUncompressFunc, 0, 0);
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -109,16 +125,10 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
- sqlarCompressFunc, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
- sqlarUncompressFunc, 0, 0);
|
||||
- }
|
||||
- return rc;
|
||||
+ return sqlite3SqlarInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
+
|
||||
+#endif /* SQLITE_HAVE_ZLIB */
|
||||
--- /ext/misc/totype.c
|
||||
+++ /ext/misc/totype.c
|
||||
@@ -491,17 +491,8 @@
|
||||
#pragma warning(default: 4748)
|
||||
#endif
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_totype_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3TotypeInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
rc = sqlite3_create_function(db, "tointeger", 1,
|
||||
SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS, 0,
|
||||
tointegerFunc, 0, 0);
|
||||
@@ -512,3 +503,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_totype_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3TotypeInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/uint.c
|
||||
+++ /ext/misc/uint.c
|
||||
@@ -78,6 +78,11 @@
|
||||
return (nKey1 - i) - (nKey2 - j);
|
||||
}
|
||||
|
||||
+int sqlite3UintInit(sqlite3 *db){
|
||||
+ return sqlite3_create_collation(db, "UINT", SQLITE_UTF8, 0, uintCollFunc);
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -88,5 +93,6 @@
|
||||
){
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- return sqlite3_create_collation(db, "uint", SQLITE_UTF8, 0, uintCollFunc);
|
||||
+ return sqlite3UintInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/uuid.c
|
||||
+++ /ext/misc/uuid.c
|
||||
@@ -206,21 +206,12 @@
|
||||
sqlite3_result_blob(context, pBlob, 16, SQLITE_TRANSIENT);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_uuid_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3UuidInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
rc = sqlite3_create_function(db, "uuid", 0, SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
sqlite3UuidFunc, 0, 0);
|
||||
if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "uuid_str", 1,
|
||||
+ rc = sqlite3_create_function(db, "uuid_str", 1,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
||||
0, sqlite3UuidStrFunc, 0, 0);
|
||||
}
|
||||
@@ -231,3 +222,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_uuid_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3UuidInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/zipfile.c
|
||||
+++ /ext/misc/zipfile.c
|
||||
@@ -24,6 +24,8 @@
|
||||
** * No support for zip64 extensions
|
||||
** * Only the "inflate/deflate" (zlib) compression method is supported
|
||||
*/
|
||||
+#ifdef SQLITE_HAVE_ZLIB
|
||||
+
|
||||
#include "sqlite3ext.h"
|
||||
SQLITE_EXTENSION_INIT1
|
||||
#include <stdio.h>
|
||||
@@ -2139,7 +2141,7 @@
|
||||
/*
|
||||
** Register the "zipfile" virtual table.
|
||||
*/
|
||||
-static int zipfileRegister(sqlite3 *db){
|
||||
+int sqlite3ZipfileInit(sqlite3 *db){
|
||||
static sqlite3_module zipfileModule = {
|
||||
1, /* iVersion */
|
||||
zipfileConnect, /* xCreate */
|
||||
@@ -2173,9 +2175,10 @@
|
||||
return rc;
|
||||
}
|
||||
#else /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
-# define zipfileRegister(x) SQLITE_OK
|
||||
+# define sqlite3ZipfileInit(x) SQLITE_OK
|
||||
#endif
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -2186,5 +2189,8 @@
|
||||
){
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- return zipfileRegister(db);
|
||||
+ return sqlite3ZipfileInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
+
|
||||
+#endif /* SQLITE_HAVE_ZLIB */
|
291
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.1-build_2.1.patch
vendored
Normal file
291
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.1-build_2.1.patch
vendored
Normal file
@ -0,0 +1,291 @@
|
||||
Move some code to libsqlite3.so to avoid duplication.
|
||||
Link executables against libsqlite3.so.
|
||||
Increase timeout for fuzzcheck.
|
||||
Update list of optionally available functions.
|
||||
Fix building with dlopen() not available.
|
||||
|
||||
SQLite revision: 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
||||
|
||||
--- /Makefile.in
|
||||
+++ /Makefile.in
|
||||
@@ -313,6 +313,9 @@
|
||||
# Source code for extensions
|
||||
#
|
||||
SRC += \
|
||||
+ $(TOP)/ext/expert/sqlite3expert.c \
|
||||
+ $(TOP)/ext/expert/sqlite3expert.h
|
||||
+SRC += \
|
||||
$(TOP)/ext/fts1/fts1.c \
|
||||
$(TOP)/ext/fts1/fts1.h \
|
||||
$(TOP)/ext/fts1/fts1_hash.c \
|
||||
@@ -365,8 +368,29 @@
|
||||
$(TOP)/ext/rbu/sqlite3rbu.h \
|
||||
$(TOP)/ext/rbu/sqlite3rbu.c
|
||||
SRC += \
|
||||
+ $(TOP)/ext/misc/amatch.c \
|
||||
+ $(TOP)/ext/misc/appendvfs.c \
|
||||
+ $(TOP)/ext/misc/carray.c \
|
||||
+ $(TOP)/ext/misc/completion.c \
|
||||
+ $(TOP)/ext/misc/csv.c \
|
||||
+ $(TOP)/ext/misc/dbdata.c \
|
||||
+ $(TOP)/ext/misc/decimal.c \
|
||||
+ $(TOP)/ext/misc/eval.c \
|
||||
+ $(TOP)/ext/misc/fileio.c \
|
||||
+ $(TOP)/ext/misc/ieee754.c \
|
||||
$(TOP)/ext/misc/json1.c \
|
||||
- $(TOP)/ext/misc/stmt.c
|
||||
+ $(TOP)/ext/misc/nextchar.c \
|
||||
+ $(TOP)/ext/misc/percentile.c \
|
||||
+ $(TOP)/ext/misc/regexp.c \
|
||||
+ $(TOP)/ext/misc/series.c \
|
||||
+ $(TOP)/ext/misc/sha1.c \
|
||||
+ $(TOP)/ext/misc/shathree.c \
|
||||
+ $(TOP)/ext/misc/sqlar.c \
|
||||
+ $(TOP)/ext/misc/stmt.c \
|
||||
+ $(TOP)/ext/misc/totype.c \
|
||||
+ $(TOP)/ext/misc/uint.c \
|
||||
+ $(TOP)/ext/misc/uuid.c \
|
||||
+ $(TOP)/ext/misc/zipfile.c
|
||||
|
||||
# Generated source code files
|
||||
#
|
||||
@@ -437,35 +461,21 @@
|
||||
# Statically linked extensions
|
||||
#
|
||||
TESTSRC += \
|
||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
||||
$(TOP)/ext/expert/test_expert.c \
|
||||
- $(TOP)/ext/misc/amatch.c \
|
||||
- $(TOP)/ext/misc/carray.c \
|
||||
$(TOP)/ext/misc/cksumvfs.c \
|
||||
$(TOP)/ext/misc/closure.c \
|
||||
- $(TOP)/ext/misc/csv.c \
|
||||
- $(TOP)/ext/misc/decimal.c \
|
||||
- $(TOP)/ext/misc/eval.c \
|
||||
$(TOP)/ext/misc/explain.c \
|
||||
- $(TOP)/ext/misc/fileio.c \
|
||||
$(TOP)/ext/misc/fuzzer.c \
|
||||
$(TOP)/ext/fts5/fts5_tcl.c \
|
||||
$(TOP)/ext/fts5/fts5_test_mi.c \
|
||||
$(TOP)/ext/fts5/fts5_test_tok.c \
|
||||
- $(TOP)/ext/misc/ieee754.c \
|
||||
$(TOP)/ext/misc/mmapwarm.c \
|
||||
- $(TOP)/ext/misc/nextchar.c \
|
||||
$(TOP)/ext/misc/normalize.c \
|
||||
- $(TOP)/ext/misc/percentile.c \
|
||||
$(TOP)/ext/misc/prefixes.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/unionvtab.c \
|
||||
$(TOP)/ext/misc/wholenumber.c \
|
||||
- $(TOP)/ext/misc/zipfile.c \
|
||||
$(TOP)/ext/userauth/userauth.c
|
||||
|
||||
# Source code to the library files needed by the test fixture
|
||||
@@ -647,25 +657,25 @@
|
||||
|
||||
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
|
||||
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
|
||||
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
|
||||
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
|
||||
-rpath "$(TCLLIBDIR)" \
|
||||
-version-info "8:6:8" \
|
||||
-avoid-version
|
||||
|
||||
-sqlite3$(TEXE): shell.c sqlite3.c
|
||||
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
|
||||
- shell.c sqlite3.c \
|
||||
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
|
||||
+sqlite3$(TEXE): shell.c libsqlite3.la
|
||||
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
|
||||
+ shell.c libsqlite3.la \
|
||||
+ $(LIBREADLINE)
|
||||
|
||||
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
|
||||
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
|
||||
|
||||
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
|
||||
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
|
||||
|
||||
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
|
||||
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
|
||||
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
|
||||
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
|
||||
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
|
||||
|
||||
srcck1$(BEXE): $(TOP)/tool/srcck1.c
|
||||
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
|
||||
@@ -776,7 +786,7 @@
|
||||
# Rule to build the amalgamation
|
||||
#
|
||||
sqlite3.lo: sqlite3.c
|
||||
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
|
||||
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
|
||||
|
||||
# Rules to build the LEMON compiler generator
|
||||
#
|
||||
@@ -1082,18 +1092,6 @@
|
||||
# Source files that go into making shell.c
|
||||
SHELL_SRC = \
|
||||
$(TOP)/src/shell.c.in \
|
||||
- $(TOP)/ext/misc/appendvfs.c \
|
||||
- $(TOP)/ext/misc/completion.c \
|
||||
- $(TOP)/ext/misc/decimal.c \
|
||||
- $(TOP)/ext/misc/fileio.c \
|
||||
- $(TOP)/ext/misc/ieee754.c \
|
||||
- $(TOP)/ext/misc/series.c \
|
||||
- $(TOP)/ext/misc/shathree.c \
|
||||
- $(TOP)/ext/misc/sqlar.c \
|
||||
- $(TOP)/ext/misc/uint.c \
|
||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
||||
- $(TOP)/ext/expert/sqlite3expert.h \
|
||||
- $(TOP)/ext/misc/zipfile.c \
|
||||
$(TOP)/ext/misc/memtrace.c \
|
||||
$(TOP)/src/test_windirent.c
|
||||
|
||||
@@ -1263,11 +1261,11 @@
|
||||
|
||||
# Fuzz testing
|
||||
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
||||
- ./fuzzcheck$(TEXE) $(FUZZDATA)
|
||||
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
|
||||
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
||||
|
||||
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
||||
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA)
|
||||
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
|
||||
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
||||
|
||||
# The veryquick.test TCL tests.
|
||||
@@ -1301,24 +1299,23 @@
|
||||
shelltest: $(TESTPROGS)
|
||||
./testfixture$(TEXT) $(TOP)/test/permutations.test shell
|
||||
|
||||
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
||||
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
|
||||
|
||||
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
|
||||
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
|
||||
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-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
|
||||
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
|
||||
|
||||
-sqltclsh$(TEXE): sqltclsh.c
|
||||
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
|
||||
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
|
||||
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
|
||||
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
|
||||
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
|
||||
|
||||
CHECKER_DEPS =\
|
||||
$(TOP)/tool/mkccode.tcl \
|
||||
- sqlite3.c \
|
||||
$(TOP)/src/tclsqlite.c \
|
||||
$(TOP)/ext/repair/sqlite3_checker.tcl \
|
||||
$(TOP)/ext/repair/checkindex.c \
|
||||
@@ -1329,36 +1326,36 @@
|
||||
sqlite3_checker.c: $(CHECKER_DEPS)
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
|
||||
|
||||
-sqlite3_checker$(TEXE): sqlite3_checker.c
|
||||
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
|
||||
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
|
||||
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
||||
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
|
||||
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
|
||||
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
||||
|
||||
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
||||
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
|
||||
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
|
||||
|
||||
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
|
||||
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
|
||||
|
||||
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
|
||||
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
|
||||
|
||||
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
|
||||
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
|
||||
|
||||
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
|
||||
+showwal$(TEXE): $(TOP)/tool/showwal.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
|
||||
|
||||
showshm$(TEXE): $(TOP)/tool/showshm.c
|
||||
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
|
||||
|
||||
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
|
||||
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
|
||||
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
|
||||
|
||||
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
|
||||
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
|
||||
|
||||
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
|
||||
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
|
||||
@@ -1383,11 +1380,11 @@
|
||||
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
|
||||
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
|
||||
|
||||
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
|
||||
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
|
||||
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
||||
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
||||
|
||||
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
||||
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
|
||||
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
||||
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
|
||||
|
||||
# This target will fail if the SQLite amalgamation contains any exported
|
||||
# symbols that do not begin with "sqlite3_". It is run as part of the
|
||||
--- /configure.ac
|
||||
+++ /configure.ac
|
||||
@@ -108,7 +108,7 @@
|
||||
#########
|
||||
# Figure out whether or not we have these functions
|
||||
#
|
||||
-AC_CHECK_FUNCS([fdatasync gmtime_r isnan localtime_r localtime_s malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64])
|
||||
+AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])
|
||||
|
||||
#########
|
||||
# By default, we use the amalgamation (this may be changed below...)
|
||||
@@ -582,6 +582,9 @@
|
||||
if test "${enable_load_extension}" = "yes" ; then
|
||||
OPT_FEATURE_FLAGS=""
|
||||
AC_SEARCH_LIBS(dlopen, dl)
|
||||
+ if test "${ac_cv_search_dlopen}" = "no" ; then
|
||||
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
||||
+ fi
|
||||
else
|
||||
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
||||
fi
|
441
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.1-build_2.2.patch
vendored
Normal file
441
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.34.1-build_2.2.patch
vendored
Normal file
@ -0,0 +1,441 @@
|
||||
Move some code to libsqlite3.so to avoid duplication.
|
||||
Initialize some extensions in libsqlite3.so.
|
||||
Update test suite.
|
||||
|
||||
SQLite revision: 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
||||
|
||||
--- /ext/repair/sqlite3_checker.c.in
|
||||
+++ /ext/repair/sqlite3_checker.c.in
|
||||
@@ -2,6 +2,7 @@
|
||||
** Read an SQLite database file and analyze its space utilization. Generate
|
||||
** text on standard output.
|
||||
*/
|
||||
+#define SQLITE_CORE 1
|
||||
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
|
||||
#define SQLITE_ENABLE_DBPAGE_VTAB 1
|
||||
#define SQLITE_ENABLE_JSON1 1
|
||||
@@ -14,7 +15,7 @@
|
||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
-INCLUDE sqlite3.c
|
||||
+#include "sqlite3.h"
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
INCLUDE $ROOT/ext/misc/btreeinfo.c
|
||||
INCLUDE $ROOT/ext/repair/checkindex.c
|
||||
--- /src/main.c
|
||||
+++ /src/main.c
|
||||
@@ -50,12 +50,36 @@
|
||||
#ifdef SQLITE_ENABLE_FTS5
|
||||
int sqlite3Fts5Init(sqlite3*);
|
||||
#endif
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
+int sqlite3DbdataRegister(sqlite3*);
|
||||
+#endif
|
||||
#ifdef SQLITE_ENABLE_JSON1
|
||||
int sqlite3Json1Init(sqlite3*);
|
||||
#endif
|
||||
#ifdef SQLITE_ENABLE_STMTVTAB
|
||||
int sqlite3StmtVtabInit(sqlite3*);
|
||||
#endif
|
||||
+int sqlite3AmatchInit(sqlite3*);
|
||||
+int sqlite3CarrayInit(sqlite3*);
|
||||
+int sqlite3CompletionVtabInit(sqlite3*);
|
||||
+int sqlite3CsvInit(sqlite3*);
|
||||
+int sqlite3DecimalInit(sqlite3*);
|
||||
+int sqlite3EvalInit(sqlite3*);
|
||||
+int sqlite3FileioInit(sqlite3*);
|
||||
+int sqlite3IeeeInit(sqlite3*);
|
||||
+int sqlite3NextcharInit(sqlite3*);
|
||||
+int sqlite3PercentileInit(sqlite3*);
|
||||
+int sqlite3RegexpInit(sqlite3*);
|
||||
+int sqlite3SeriesInit(sqlite3*);
|
||||
+int sqlite3ShaInit(sqlite3*);
|
||||
+int sqlite3ShathreeInit(sqlite3*);
|
||||
+int sqlite3TotypeInit(sqlite3*);
|
||||
+int sqlite3UintInit(sqlite3*);
|
||||
+int sqlite3UuidInit(sqlite3*);
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
||||
+int sqlite3ZipfileInit(sqlite3*);
|
||||
+int sqlite3SqlarInit(sqlite3*);
|
||||
+#endif
|
||||
|
||||
/*
|
||||
** An array of pointers to extension initializer functions for
|
||||
@@ -83,6 +107,9 @@
|
||||
#ifdef SQLITE_ENABLE_DBPAGE_VTAB
|
||||
sqlite3DbpageRegister,
|
||||
#endif
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
+ sqlite3DbdataRegister,
|
||||
+#endif
|
||||
#ifdef SQLITE_ENABLE_DBSTAT_VTAB
|
||||
sqlite3DbstatRegister,
|
||||
#endif
|
||||
@@ -96,6 +123,27 @@
|
||||
#ifdef SQLITE_ENABLE_BYTECODE_VTAB
|
||||
sqlite3VdbeBytecodeVtabInit,
|
||||
#endif
|
||||
+ sqlite3AmatchInit,
|
||||
+ sqlite3CarrayInit,
|
||||
+ sqlite3CompletionVtabInit,
|
||||
+ sqlite3CsvInit,
|
||||
+ sqlite3DecimalInit,
|
||||
+ sqlite3EvalInit,
|
||||
+ sqlite3FileioInit,
|
||||
+ sqlite3IeeeInit,
|
||||
+ sqlite3NextcharInit,
|
||||
+ sqlite3PercentileInit,
|
||||
+ sqlite3RegexpInit,
|
||||
+ sqlite3SeriesInit,
|
||||
+ sqlite3ShaInit,
|
||||
+ sqlite3ShathreeInit,
|
||||
+ sqlite3TotypeInit,
|
||||
+ sqlite3UintInit,
|
||||
+ sqlite3UuidInit,
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
||||
+ sqlite3ZipfileInit,
|
||||
+ sqlite3SqlarInit,
|
||||
+#endif
|
||||
};
|
||||
|
||||
#ifndef SQLITE_AMALGAMATION
|
||||
--- /src/shell.c.in
|
||||
+++ /src/shell.c.in
|
||||
@@ -69,6 +69,7 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "sqlite3.h"
|
||||
+#include "ext/expert/sqlite3expert.h"
|
||||
typedef sqlite3_int64 i64;
|
||||
typedef sqlite3_uint64 u64;
|
||||
typedef unsigned char u8;
|
||||
@@ -135,6 +136,10 @@
|
||||
# define SHELL_USE_LOCAL_GETLINE 1
|
||||
#endif
|
||||
|
||||
+#ifdef SQLITE_HAVE_ZLIB
|
||||
+#include <zlib.h>
|
||||
+#endif
|
||||
+
|
||||
|
||||
#if defined(_WIN32) || defined(WIN32)
|
||||
# if SQLITE_OS_WINRT
|
||||
@@ -1018,25 +1023,7 @@
|
||||
INCLUDE test_windirent.c
|
||||
#define dirent DIRENT
|
||||
#endif
|
||||
-INCLUDE ../ext/misc/shathree.c
|
||||
-INCLUDE ../ext/misc/fileio.c
|
||||
-INCLUDE ../ext/misc/completion.c
|
||||
-INCLUDE ../ext/misc/appendvfs.c
|
||||
INCLUDE ../ext/misc/memtrace.c
|
||||
-INCLUDE ../ext/misc/uint.c
|
||||
-INCLUDE ../ext/misc/decimal.c
|
||||
-INCLUDE ../ext/misc/ieee754.c
|
||||
-INCLUDE ../ext/misc/series.c
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
-INCLUDE ../ext/misc/zipfile.c
|
||||
-INCLUDE ../ext/misc/sqlar.c
|
||||
-#endif
|
||||
-INCLUDE ../ext/expert/sqlite3expert.h
|
||||
-INCLUDE ../ext/expert/sqlite3expert.c
|
||||
-
|
||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
-INCLUDE ../ext/misc/dbdata.c
|
||||
-#endif
|
||||
|
||||
#if defined(SQLITE_ENABLE_SESSION)
|
||||
/*
|
||||
@@ -4608,20 +4595,6 @@
|
||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
||||
sqlite3_enable_load_extension(p->db, 1);
|
||||
#endif
|
||||
- sqlite3_fileio_init(p->db, 0, 0);
|
||||
- sqlite3_shathree_init(p->db, 0, 0);
|
||||
- sqlite3_completion_init(p->db, 0, 0);
|
||||
- sqlite3_uint_init(p->db, 0, 0);
|
||||
- sqlite3_decimal_init(p->db, 0, 0);
|
||||
- sqlite3_ieee_init(p->db, 0, 0);
|
||||
- sqlite3_series_init(p->db, 0, 0);
|
||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
- sqlite3_dbdata_init(p->db, 0, 0);
|
||||
-#endif
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
- sqlite3_zipfile_init(p->db, 0, 0);
|
||||
- sqlite3_sqlar_init(p->db, 0, 0);
|
||||
-#endif
|
||||
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
|
||||
shellAddSchemaName, 0, 0);
|
||||
sqlite3_create_function(p->db, "shell_module_schema", 1, SQLITE_UTF8, 0,
|
||||
@@ -6644,8 +6617,6 @@
|
||||
);
|
||||
goto end_ar_command;
|
||||
}
|
||||
- sqlite3_fileio_init(cmd.db, 0, 0);
|
||||
- sqlite3_sqlar_init(cmd.db, 0, 0);
|
||||
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
|
||||
shellPutsFunc, 0, 0);
|
||||
|
||||
@@ -11076,6 +11047,7 @@
|
||||
#endif
|
||||
}
|
||||
data.out = stdout;
|
||||
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
|
||||
sqlite3_appendvfs_init(0,0,0);
|
||||
|
||||
/* Go ahead and open the database file if it already exists. If the
|
||||
--- /src/test_config.c
|
||||
+++ /src/test_config.c
|
||||
@@ -353,6 +353,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "decimal", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_DECLTYPE
|
||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
@@ -540,6 +542,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "regexp", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_REINDEX
|
||||
Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
@@ -662,6 +666,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "uint", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_UTF16
|
||||
Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
--- /test/e_expr.test
|
||||
+++ /test/e_expr.test
|
||||
@@ -1079,7 +1079,7 @@
|
||||
#
|
||||
# There is a regexp function if ICU is enabled though.
|
||||
#
|
||||
-ifcapable !icu {
|
||||
+ifcapable !icu&&!regexp {
|
||||
do_catchsql_test e_expr-18.1.1 {
|
||||
SELECT regexp('abc', 'def')
|
||||
} {1 {no such function: regexp}}
|
||||
--- /test/icu.test
|
||||
+++ /test/icu.test
|
||||
@@ -41,7 +41,7 @@
|
||||
#
|
||||
test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1
|
||||
test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1
|
||||
- test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0
|
||||
+ test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell$'} 0
|
||||
test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1
|
||||
test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}
|
||||
|
||||
--- /test/pragma.test
|
||||
+++ /test/pragma.test
|
||||
@@ -1370,17 +1370,62 @@
|
||||
} ;# ifcapable trigger
|
||||
|
||||
ifcapable schema_pragmas {
|
||||
- do_test pragma-11.1 {
|
||||
- execsql2 {
|
||||
- pragma collation_list;
|
||||
+ ifcapable decimal {
|
||||
+ ifcapable uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name UINT seq 1 name decimal seq 2 name RTRIM seq 3 name NOCASE seq 4 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 UINT 2 decimal 3 RTRIM 4 NOCASE 5 BINARY}
|
||||
}
|
||||
- } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
||||
- do_test pragma-11.2 {
|
||||
- db collate New_Collation blah...
|
||||
- execsql {
|
||||
- pragma collation_list;
|
||||
+ ifcapable !uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name decimal seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 decimal 2 RTRIM 3 NOCASE 4 BINARY}
|
||||
}
|
||||
- } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
||||
+ }
|
||||
+ ifcapable !decimal {
|
||||
+ ifcapable uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name UINT seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 UINT 2 RTRIM 3 NOCASE 4 BINARY}
|
||||
+ }
|
||||
+ ifcapable !uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
ifcapable schema_pragmas&&tempdb {
|
||||
--- /test/sessionfuzz.c
|
||||
+++ /test/sessionfuzz.c
|
||||
@@ -698,49 +698,6 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
-#ifndef OMIT_ZLIB
|
||||
-#include "zlib.h"
|
||||
-#endif
|
||||
-
|
||||
-/*
|
||||
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
|
||||
-**
|
||||
-** Parameter SZ is interpreted as an integer. If it is less than or
|
||||
-** equal to zero, then this function returns a copy of X. Or, if
|
||||
-** SZ is equal to the size of X when interpreted as a blob, also
|
||||
-** return a copy of X. Otherwise, decompress blob X using zlib
|
||||
-** utility function uncompress() and return the results (another
|
||||
-** blob).
|
||||
-*/
|
||||
-static void sqlarUncompressFunc(
|
||||
- sqlite3_context *context,
|
||||
- int argc,
|
||||
- sqlite3_value **argv
|
||||
-){
|
||||
-#ifdef OMIT_ZLIB
|
||||
- sqlite3_result_value(context, argv[0]);
|
||||
-#else
|
||||
- uLong nData;
|
||||
- uLongf sz;
|
||||
-
|
||||
- assert( argc==2 );
|
||||
- sz = sqlite3_value_int(argv[1]);
|
||||
-
|
||||
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
|
||||
- sqlite3_result_value(context, argv[0]);
|
||||
- }else{
|
||||
- const Bytef *pData= sqlite3_value_blob(argv[0]);
|
||||
- Bytef *pOut = sqlite3_malloc(sz);
|
||||
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
|
||||
- sqlite3_result_error(context, "error in uncompress()", -1);
|
||||
- }else{
|
||||
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
|
||||
- }
|
||||
- sqlite3_free(pOut);
|
||||
- }
|
||||
-#endif
|
||||
-}
|
||||
-
|
||||
|
||||
/* Run a chunk of SQL. If any errors happen, print an error message
|
||||
** and exit.
|
||||
--- /tool/mksqlite3c.tcl
|
||||
+++ /tool/mksqlite3c.tcl
|
||||
@@ -129,6 +129,7 @@
|
||||
rtree.h
|
||||
sqlite3session.h
|
||||
sqlite3.h
|
||||
+ sqlite3expert.h
|
||||
sqlite3ext.h
|
||||
sqlite3rbu.h
|
||||
sqliteicu.h
|
||||
@@ -416,6 +417,28 @@
|
||||
sqlite3session.c
|
||||
fts5.c
|
||||
stmt.c
|
||||
+ amatch.c
|
||||
+ appendvfs.c
|
||||
+ carray.c
|
||||
+ completion.c
|
||||
+ csv.c
|
||||
+ dbdata.c
|
||||
+ decimal.c
|
||||
+ eval.c
|
||||
+ fileio.c
|
||||
+ ieee754.c
|
||||
+ nextchar.c
|
||||
+ percentile.c
|
||||
+ regexp.c
|
||||
+ series.c
|
||||
+ sha1.c
|
||||
+ shathree.c
|
||||
+ sqlar.c
|
||||
+ sqlite3expert.c
|
||||
+ totype.c
|
||||
+ uint.c
|
||||
+ uuid.c
|
||||
+ zipfile.c
|
||||
} {
|
||||
copy_file tsrc/$file
|
||||
}
|
||||
--- /tool/sqlite3_analyzer.c.in
|
||||
+++ /tool/sqlite3_analyzer.c.in
|
||||
@@ -14,9 +14,6 @@
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
#define SQLITE_OMIT_LOAD_EXTENSION 1
|
||||
-#ifndef USE_EXTERNAL_SQLITE
|
||||
-INCLUDE sqlite3.c
|
||||
-#endif
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
|
||||
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
|
||||
--- /tool/sqltclsh.c.in
|
||||
+++ /tool/sqltclsh.c.in
|
||||
@@ -27,21 +27,13 @@
|
||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
-INCLUDE sqlite3.c
|
||||
-INCLUDE $ROOT/ext/misc/appendvfs.c
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
-INCLUDE $ROOT/ext/misc/zipfile.c
|
||||
-INCLUDE $ROOT/ext/misc/sqlar.c
|
||||
-#endif
|
||||
+#include "sqlite3.h"
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
|
||||
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
|
||||
(void)interp;
|
||||
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
|
||||
sqlite3_appendvfs_init(0,0,0);
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
- sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
|
||||
- sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
|
||||
-#endif
|
||||
|
||||
return
|
||||
BEGIN_STRING
|
375
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.35.0-build_1.1.patch
vendored
Normal file
375
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.35.0-build_1.1.patch
vendored
Normal file
@ -0,0 +1,375 @@
|
||||
Add initialization functions for internal usage in libsqlite3.so.
|
||||
|
||||
SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b
|
||||
|
||||
--- /ext/misc/amatch.c
|
||||
+++ /ext/misc/amatch.c
|
||||
@@ -1480,9 +1480,18 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
+int sqlite3AmatchInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
||||
+#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
** Register the amatch virtual table
|
||||
*/
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -1491,11 +1500,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Not used */
|
||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
- rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
||||
-#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
- return rc;
|
||||
+ return sqlite3AmatchInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/carray.c
|
||||
+++ /ext/misc/carray.c
|
||||
@@ -498,16 +498,8 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_carray_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3CarrayInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
rc = sqlite3_create_module(db, "carray", &carrayModule, 0);
|
||||
#ifdef SQLITE_TEST
|
||||
@@ -519,3 +511,18 @@
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_carray_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3CarrayInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/completion.c
|
||||
+++ /ext/misc/completion.c
|
||||
@@ -483,12 +483,13 @@
|
||||
return rc;
|
||||
}
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
int sqlite3_completion_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
int rc = SQLITE_OK;
|
||||
@@ -499,3 +500,4 @@
|
||||
#endif
|
||||
return rc;
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/csv.c
|
||||
+++ /ext/misc/csv.c
|
||||
@@ -928,6 +928,22 @@
|
||||
#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */
|
||||
|
||||
|
||||
+int sqlite3CsvInit(sqlite3 *db){
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ int rc;
|
||||
+ rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
||||
+#ifdef SQLITE_TEST
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
||||
+ }
|
||||
+#endif
|
||||
+ return rc;
|
||||
+#else
|
||||
+ return SQLITE_OK;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -941,17 +957,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
- int rc;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
- rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
||||
-#ifdef SQLITE_TEST
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
||||
- }
|
||||
-#endif
|
||||
- return rc;
|
||||
-#else
|
||||
- return SQLITE_OK;
|
||||
-#endif
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3CsvInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/dbdata.c
|
||||
+++ /ext/misc/dbdata.c
|
||||
@@ -803,7 +803,7 @@
|
||||
/*
|
||||
** Invoke this routine to register the "sqlite_dbdata" virtual table module
|
||||
*/
|
||||
-static int sqlite3DbdataRegister(sqlite3 *db){
|
||||
+int sqlite3DbdataRegister(sqlite3 *db){
|
||||
static sqlite3_module dbdata_module = {
|
||||
0, /* iVersion */
|
||||
0, /* xCreate */
|
||||
@@ -838,6 +838,7 @@
|
||||
return rc;
|
||||
}
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -849,3 +850,4 @@
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
return sqlite3DbdataRegister(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/decimal.c
|
||||
+++ /ext/misc/decimal.c
|
||||
@@ -590,14 +590,7 @@
|
||||
decimal_free(pB);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_decimal_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3DecimalInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
static const struct {
|
||||
const char *zFuncName;
|
||||
@@ -611,10 +604,6 @@
|
||||
{ "decimal_mul", 2, decimalMulFunc },
|
||||
};
|
||||
unsigned int i;
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
-
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
-
|
||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
||||
rc = sqlite3_create_function(db, aFunc[i].zFuncName, aFunc[i].nArg,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
||||
@@ -632,3 +621,20 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_decimal_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+
|
||||
+ return sqlite3DecimalInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/eval.c
|
||||
+++ /ext/misc/eval.c
|
||||
@@ -102,6 +102,20 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3EvalInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "eval", 1,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sqlEvalFunc, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "eval", 2,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sqlEvalFunc, 0, 0);
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -110,16 +124,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "eval", 1,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sqlEvalFunc, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "eval", 2,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sqlEvalFunc, 0, 0);
|
||||
- }
|
||||
- return rc;
|
||||
+ return sqlite3EvalInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/fileio.c
|
||||
+++ /ext/misc/fileio.c
|
||||
@@ -340,7 +340,7 @@
|
||||
** This function does the work for the writefile() UDF. Refer to
|
||||
** header comments at the top of this file for details.
|
||||
*/
|
||||
-static int writeFile(
|
||||
+static int writeFileContents(
|
||||
sqlite3_context *pCtx, /* Context to return bytes written in */
|
||||
const char *zFile, /* File to write */
|
||||
sqlite3_value *pData, /* Data to write */
|
||||
@@ -480,10 +480,10 @@
|
||||
mtime = sqlite3_value_int64(argv[3]);
|
||||
}
|
||||
|
||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
||||
if( res==1 && errno==ENOENT ){
|
||||
if( makeDirectory(zFile)==SQLITE_OK ){
|
||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -970,18 +970,9 @@
|
||||
# define fsdirRegister(x) SQLITE_OK
|
||||
#endif
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_fileio_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3FileioInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "readfile", 1,
|
||||
+ rc = sqlite3_create_function(db, "readfile", 1,
|
||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
readfileFunc, 0, 0);
|
||||
if( rc==SQLITE_OK ){
|
||||
@@ -998,3 +989,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_fileio_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3FileioInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/ieee754.c
|
||||
+++ /ext/misc/ieee754.c
|
||||
@@ -253,14 +253,7 @@
|
||||
}
|
||||
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_ieee_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3IeeeInit(sqlite3 *db){
|
||||
static const struct {
|
||||
char *zFName;
|
||||
int nArg;
|
||||
@@ -277,13 +270,26 @@
|
||||
};
|
||||
unsigned int i;
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
||||
- rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
||||
+ rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS,
|
||||
(void*)&aFunc[i].iAux,
|
||||
aFunc[i].xFunc, 0, 0);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_ieee_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3IeeeInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
500
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.35.0-build_1.2.patch
vendored
Normal file
500
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.35.0-build_1.2.patch
vendored
Normal file
@ -0,0 +1,500 @@
|
||||
Add initialization functions for internal usage in libsqlite3.so.
|
||||
|
||||
SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b
|
||||
|
||||
--- /ext/misc/nextchar.c
|
||||
+++ /ext/misc/nextchar.c
|
||||
@@ -286,17 +286,8 @@
|
||||
sqlite3_free(c.aResult);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_nextchar_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3NextcharInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
rc = sqlite3_create_function(db, "next_char", 3,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
nextCharFunc, 0, 0);
|
||||
@@ -312,3 +303,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_nextchar_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3NextcharInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/percentile.c
|
||||
+++ /ext/misc/percentile.c
|
||||
@@ -202,6 +202,15 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3PercentileInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "percentile", 2,
|
||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
+ 0, percentStep, percentFinal);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -210,11 +219,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "percentile", 2,
|
||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
- 0, percentStep, percentFinal);
|
||||
- return rc;
|
||||
+ return sqlite3PercentileInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/regexp.c
|
||||
+++ /ext/misc/regexp.c
|
||||
@@ -740,10 +740,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
+int sqlite3RegexpInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
||||
+ 0, re_sql_func, 0, 0);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
** Invoke this routine to register the regexp() function with the
|
||||
** SQLite database connection.
|
||||
*/
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -752,9 +760,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
- rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
||||
- 0, re_sql_func, 0, 0);
|
||||
- return rc;
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3RegexpInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/series.c
|
||||
+++ /ext/misc/series.c
|
||||
@@ -423,6 +423,15 @@
|
||||
|
||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
|
||||
+int sqlite3SeriesInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
+ rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
||||
+#endif
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -431,7 +440,6 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
if( sqlite3_libversion_number()<3008012 ){
|
||||
@@ -439,7 +447,7 @@
|
||||
"generate_series() requires SQLite 3.8.12 or later");
|
||||
return SQLITE_ERROR;
|
||||
}
|
||||
- rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
||||
#endif
|
||||
- return rc;
|
||||
+ return sqlite3SeriesInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/sha1.c
|
||||
+++ /ext/misc/sha1.c
|
||||
@@ -175,7 +175,7 @@
|
||||
}
|
||||
|
||||
/* Compute a string using sqlite3_vsnprintf() and hash it */
|
||||
-static void hash_step_vformat(
|
||||
+static void sha1_hash_step_vformat(
|
||||
SHA1Context *p, /* Add content to this context */
|
||||
const char *zFormat,
|
||||
...
|
||||
@@ -306,7 +306,7 @@
|
||||
nCol = sqlite3_column_count(pStmt);
|
||||
z = sqlite3_sql(pStmt);
|
||||
n = (int)strlen(z);
|
||||
- hash_step_vformat(&cx,"S%d:",n);
|
||||
+ sha1_hash_step_vformat(&cx,"S%d:",n);
|
||||
hash_step(&cx,(unsigned char*)z,n);
|
||||
|
||||
/* Compute a hash over the result of the query */
|
||||
@@ -349,14 +349,14 @@
|
||||
case SQLITE_TEXT: {
|
||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
||||
- hash_step_vformat(&cx,"T%d:",n2);
|
||||
+ sha1_hash_step_vformat(&cx,"T%d:",n2);
|
||||
hash_step(&cx, z2, n2);
|
||||
break;
|
||||
}
|
||||
case SQLITE_BLOB: {
|
||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
||||
- hash_step_vformat(&cx,"B%d:",n2);
|
||||
+ sha1_hash_step_vformat(&cx,"B%d:",n2);
|
||||
hash_step(&cx, z2, n2);
|
||||
break;
|
||||
}
|
||||
@@ -370,6 +370,20 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3ShaInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "sha1", 1,
|
||||
+ SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
||||
+ 0, sha1Func, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "sha1_query", 1,
|
||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
+ sha1QueryFunc, 0, 0);
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -378,16 +392,8 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "sha1", 1,
|
||||
- SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
||||
- 0, sha1Func, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "sha1_query", 1,
|
||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||
- sha1QueryFunc, 0, 0);
|
||||
- }
|
||||
- return rc;
|
||||
+ return sqlite3ShaInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/shathree.c
|
||||
+++ /ext/misc/shathree.c
|
||||
@@ -530,7 +530,7 @@
|
||||
/* Compute a string using sqlite3_vsnprintf() with a maximum length
|
||||
** of 50 bytes and add it to the hash.
|
||||
*/
|
||||
-static void hash_step_vformat(
|
||||
+static void sha3_hash_step_vformat(
|
||||
SHA3Context *p, /* Add content to this context */
|
||||
const char *zFormat,
|
||||
...
|
||||
@@ -626,7 +626,7 @@
|
||||
z = sqlite3_sql(pStmt);
|
||||
if( z ){
|
||||
n = (int)strlen(z);
|
||||
- hash_step_vformat(&cx,"S%d:",n);
|
||||
+ sha3_hash_step_vformat(&cx,"S%d:",n);
|
||||
SHA3Update(&cx,(unsigned char*)z,n);
|
||||
}
|
||||
|
||||
@@ -670,14 +670,14 @@
|
||||
case SQLITE_TEXT: {
|
||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
||||
- hash_step_vformat(&cx,"T%d:",n2);
|
||||
+ sha3_hash_step_vformat(&cx,"T%d:",n2);
|
||||
SHA3Update(&cx, z2, n2);
|
||||
break;
|
||||
}
|
||||
case SQLITE_BLOB: {
|
||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
||||
- hash_step_vformat(&cx,"B%d:",n2);
|
||||
+ sha3_hash_step_vformat(&cx,"B%d:",n2);
|
||||
SHA3Update(&cx, z2, n2);
|
||||
break;
|
||||
}
|
||||
@@ -690,17 +690,8 @@
|
||||
}
|
||||
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_shathree_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3ShathreeInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
rc = sqlite3_create_function(db, "sha3", 1,
|
||||
SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
||||
0, sha3Func, 0, 0);
|
||||
@@ -721,3 +712,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_shathree_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3ShathreeInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/sqlar.c
|
||||
+++ /ext/misc/sqlar.c
|
||||
@@ -14,6 +14,8 @@
|
||||
** for working with sqlar archives and used by the shell tool's built-in
|
||||
** sqlar support.
|
||||
*/
|
||||
+#ifdef SQLITE_HAVE_ZLIB
|
||||
+
|
||||
#include "sqlite3ext.h"
|
||||
SQLITE_EXTENSION_INIT1
|
||||
#include <zlib.h>
|
||||
@@ -101,6 +103,20 @@
|
||||
}
|
||||
|
||||
|
||||
+int sqlite3SqlarInit(sqlite3 *db){
|
||||
+ int rc = SQLITE_OK;
|
||||
+ rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
+ sqlarCompressFunc, 0, 0);
|
||||
+ if( rc==SQLITE_OK ){
|
||||
+ rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
+ sqlarUncompressFunc, 0, 0);
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -109,16 +125,10 @@
|
||||
char **pzErrMsg,
|
||||
const sqlite3_api_routines *pApi
|
||||
){
|
||||
- int rc = SQLITE_OK;
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
- sqlarCompressFunc, 0, 0);
|
||||
- if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
- sqlarUncompressFunc, 0, 0);
|
||||
- }
|
||||
- return rc;
|
||||
+ return sqlite3SqlarInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
+
|
||||
+#endif /* SQLITE_HAVE_ZLIB */
|
||||
--- /ext/misc/totype.c
|
||||
+++ /ext/misc/totype.c
|
||||
@@ -491,17 +491,8 @@
|
||||
#pragma warning(default: 4748)
|
||||
#endif
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_totype_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3TotypeInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
rc = sqlite3_create_function(db, "tointeger", 1,
|
||||
SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS, 0,
|
||||
tointegerFunc, 0, 0);
|
||||
@@ -512,3 +503,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_totype_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3TotypeInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/uint.c
|
||||
+++ /ext/misc/uint.c
|
||||
@@ -78,6 +78,11 @@
|
||||
return (nKey1 - i) - (nKey2 - j);
|
||||
}
|
||||
|
||||
+int sqlite3UintInit(sqlite3 *db){
|
||||
+ return sqlite3_create_collation(db, "UINT", SQLITE_UTF8, 0, uintCollFunc);
|
||||
+}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -88,5 +93,6 @@
|
||||
){
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- return sqlite3_create_collation(db, "uint", SQLITE_UTF8, 0, uintCollFunc);
|
||||
+ return sqlite3UintInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/uuid.c
|
||||
+++ /ext/misc/uuid.c
|
||||
@@ -206,21 +206,12 @@
|
||||
sqlite3_result_blob(context, pBlob, 16, SQLITE_TRANSIENT);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
-__declspec(dllexport)
|
||||
-#endif
|
||||
-int sqlite3_uuid_init(
|
||||
- sqlite3 *db,
|
||||
- char **pzErrMsg,
|
||||
- const sqlite3_api_routines *pApi
|
||||
-){
|
||||
+int sqlite3UuidInit(sqlite3 *db){
|
||||
int rc = SQLITE_OK;
|
||||
- SQLITE_EXTENSION_INIT2(pApi);
|
||||
- (void)pzErrMsg; /* Unused parameter */
|
||||
rc = sqlite3_create_function(db, "uuid", 0, SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
||||
sqlite3UuidFunc, 0, 0);
|
||||
if( rc==SQLITE_OK ){
|
||||
- rc = sqlite3_create_function(db, "uuid_str", 1,
|
||||
+ rc = sqlite3_create_function(db, "uuid_str", 1,
|
||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
||||
0, sqlite3UuidStrFunc, 0, 0);
|
||||
}
|
||||
@@ -231,3 +222,18 @@
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
+#ifdef _WIN32
|
||||
+__declspec(dllexport)
|
||||
+#endif
|
||||
+int sqlite3_uuid_init(
|
||||
+ sqlite3 *db,
|
||||
+ char **pzErrMsg,
|
||||
+ const sqlite3_api_routines *pApi
|
||||
+){
|
||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
||||
+ (void)pzErrMsg; /* Unused parameter */
|
||||
+ return sqlite3UuidInit(db);
|
||||
+}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
--- /ext/misc/zipfile.c
|
||||
+++ /ext/misc/zipfile.c
|
||||
@@ -24,6 +24,8 @@
|
||||
** * No support for zip64 extensions
|
||||
** * Only the "inflate/deflate" (zlib) compression method is supported
|
||||
*/
|
||||
+#ifdef SQLITE_HAVE_ZLIB
|
||||
+
|
||||
#include "sqlite3ext.h"
|
||||
SQLITE_EXTENSION_INIT1
|
||||
#include <stdio.h>
|
||||
@@ -2139,7 +2141,7 @@
|
||||
/*
|
||||
** Register the "zipfile" virtual table.
|
||||
*/
|
||||
-static int zipfileRegister(sqlite3 *db){
|
||||
+int sqlite3ZipfileInit(sqlite3 *db){
|
||||
static sqlite3_module zipfileModule = {
|
||||
1, /* iVersion */
|
||||
zipfileConnect, /* xCreate */
|
||||
@@ -2173,9 +2175,10 @@
|
||||
return rc;
|
||||
}
|
||||
#else /* SQLITE_OMIT_VIRTUALTABLE */
|
||||
-# define zipfileRegister(x) SQLITE_OK
|
||||
+# define sqlite3ZipfileInit(x) SQLITE_OK
|
||||
#endif
|
||||
|
||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
@@ -2186,5 +2189,8 @@
|
||||
){
|
||||
SQLITE_EXTENSION_INIT2(pApi);
|
||||
(void)pzErrMsg; /* Unused parameter */
|
||||
- return zipfileRegister(db);
|
||||
+ return sqlite3ZipfileInit(db);
|
||||
}
|
||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
||||
+
|
||||
+#endif /* SQLITE_HAVE_ZLIB */
|
292
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.35.0-build_2.1.patch
vendored
Normal file
292
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.35.0-build_2.1.patch
vendored
Normal file
@ -0,0 +1,292 @@
|
||||
Move some code to libsqlite3.so to avoid duplication.
|
||||
Link executables against libsqlite3.so.
|
||||
Increase timeout for fuzzcheck.
|
||||
Update list of optionally available functions.
|
||||
Fix building with dlopen() not available.
|
||||
|
||||
SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b
|
||||
|
||||
--- /Makefile.in
|
||||
+++ /Makefile.in
|
||||
@@ -313,6 +313,9 @@
|
||||
# Source code for extensions
|
||||
#
|
||||
SRC += \
|
||||
+ $(TOP)/ext/expert/sqlite3expert.c \
|
||||
+ $(TOP)/ext/expert/sqlite3expert.h
|
||||
+SRC += \
|
||||
$(TOP)/ext/fts1/fts1.c \
|
||||
$(TOP)/ext/fts1/fts1.h \
|
||||
$(TOP)/ext/fts1/fts1_hash.c \
|
||||
@@ -365,8 +368,29 @@
|
||||
$(TOP)/ext/rbu/sqlite3rbu.h \
|
||||
$(TOP)/ext/rbu/sqlite3rbu.c
|
||||
SRC += \
|
||||
+ $(TOP)/ext/misc/amatch.c \
|
||||
+ $(TOP)/ext/misc/appendvfs.c \
|
||||
+ $(TOP)/ext/misc/carray.c \
|
||||
+ $(TOP)/ext/misc/completion.c \
|
||||
+ $(TOP)/ext/misc/csv.c \
|
||||
+ $(TOP)/ext/misc/dbdata.c \
|
||||
+ $(TOP)/ext/misc/decimal.c \
|
||||
+ $(TOP)/ext/misc/eval.c \
|
||||
+ $(TOP)/ext/misc/fileio.c \
|
||||
+ $(TOP)/ext/misc/ieee754.c \
|
||||
$(TOP)/ext/misc/json1.c \
|
||||
- $(TOP)/ext/misc/stmt.c
|
||||
+ $(TOP)/ext/misc/nextchar.c \
|
||||
+ $(TOP)/ext/misc/percentile.c \
|
||||
+ $(TOP)/ext/misc/regexp.c \
|
||||
+ $(TOP)/ext/misc/series.c \
|
||||
+ $(TOP)/ext/misc/sha1.c \
|
||||
+ $(TOP)/ext/misc/shathree.c \
|
||||
+ $(TOP)/ext/misc/sqlar.c \
|
||||
+ $(TOP)/ext/misc/stmt.c \
|
||||
+ $(TOP)/ext/misc/totype.c \
|
||||
+ $(TOP)/ext/misc/uint.c \
|
||||
+ $(TOP)/ext/misc/uuid.c \
|
||||
+ $(TOP)/ext/misc/zipfile.c
|
||||
|
||||
# Generated source code files
|
||||
#
|
||||
@@ -437,36 +461,21 @@
|
||||
# Statically linked extensions
|
||||
#
|
||||
TESTSRC += \
|
||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
||||
$(TOP)/ext/expert/test_expert.c \
|
||||
- $(TOP)/ext/misc/amatch.c \
|
||||
- $(TOP)/ext/misc/appendvfs.c \
|
||||
- $(TOP)/ext/misc/carray.c \
|
||||
$(TOP)/ext/misc/cksumvfs.c \
|
||||
$(TOP)/ext/misc/closure.c \
|
||||
- $(TOP)/ext/misc/csv.c \
|
||||
- $(TOP)/ext/misc/decimal.c \
|
||||
- $(TOP)/ext/misc/eval.c \
|
||||
$(TOP)/ext/misc/explain.c \
|
||||
- $(TOP)/ext/misc/fileio.c \
|
||||
$(TOP)/ext/misc/fuzzer.c \
|
||||
$(TOP)/ext/fts5/fts5_tcl.c \
|
||||
$(TOP)/ext/fts5/fts5_test_mi.c \
|
||||
$(TOP)/ext/fts5/fts5_test_tok.c \
|
||||
- $(TOP)/ext/misc/ieee754.c \
|
||||
$(TOP)/ext/misc/mmapwarm.c \
|
||||
- $(TOP)/ext/misc/nextchar.c \
|
||||
$(TOP)/ext/misc/normalize.c \
|
||||
- $(TOP)/ext/misc/percentile.c \
|
||||
$(TOP)/ext/misc/prefixes.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/unionvtab.c \
|
||||
$(TOP)/ext/misc/wholenumber.c \
|
||||
- $(TOP)/ext/misc/zipfile.c \
|
||||
$(TOP)/ext/userauth/userauth.c
|
||||
|
||||
# Source code to the library files needed by the test fixture
|
||||
@@ -648,25 +657,25 @@
|
||||
|
||||
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
|
||||
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
|
||||
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
|
||||
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
|
||||
-rpath "$(TCLLIBDIR)" \
|
||||
-version-info "8:6:8" \
|
||||
-avoid-version
|
||||
|
||||
-sqlite3$(TEXE): shell.c sqlite3.c
|
||||
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
|
||||
- shell.c sqlite3.c \
|
||||
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
|
||||
+sqlite3$(TEXE): shell.c libsqlite3.la
|
||||
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
|
||||
+ shell.c libsqlite3.la \
|
||||
+ $(LIBREADLINE)
|
||||
|
||||
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
|
||||
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
|
||||
|
||||
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
|
||||
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
|
||||
|
||||
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
|
||||
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
|
||||
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
|
||||
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
|
||||
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
|
||||
|
||||
srcck1$(BEXE): $(TOP)/tool/srcck1.c
|
||||
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
|
||||
@@ -777,7 +786,7 @@
|
||||
# Rule to build the amalgamation
|
||||
#
|
||||
sqlite3.lo: sqlite3.c
|
||||
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
|
||||
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
|
||||
|
||||
# Rules to build the LEMON compiler generator
|
||||
#
|
||||
@@ -1083,18 +1092,6 @@
|
||||
# Source files that go into making shell.c
|
||||
SHELL_SRC = \
|
||||
$(TOP)/src/shell.c.in \
|
||||
- $(TOP)/ext/misc/appendvfs.c \
|
||||
- $(TOP)/ext/misc/completion.c \
|
||||
- $(TOP)/ext/misc/decimal.c \
|
||||
- $(TOP)/ext/misc/fileio.c \
|
||||
- $(TOP)/ext/misc/ieee754.c \
|
||||
- $(TOP)/ext/misc/series.c \
|
||||
- $(TOP)/ext/misc/shathree.c \
|
||||
- $(TOP)/ext/misc/sqlar.c \
|
||||
- $(TOP)/ext/misc/uint.c \
|
||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
||||
- $(TOP)/ext/expert/sqlite3expert.h \
|
||||
- $(TOP)/ext/misc/zipfile.c \
|
||||
$(TOP)/ext/misc/memtrace.c \
|
||||
$(TOP)/src/test_windirent.c
|
||||
|
||||
@@ -1264,11 +1261,11 @@
|
||||
|
||||
# Fuzz testing
|
||||
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
||||
- ./fuzzcheck$(TEXE) $(FUZZDATA)
|
||||
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
|
||||
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
||||
|
||||
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
||||
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M $(FUZZDATA)
|
||||
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
|
||||
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
||||
|
||||
# The veryquick.test TCL tests.
|
||||
@@ -1302,24 +1299,23 @@
|
||||
shelltest: $(TESTPROGS)
|
||||
./testfixture$(TEXT) $(TOP)/test/permutations.test shell
|
||||
|
||||
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
||||
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
|
||||
|
||||
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
|
||||
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
|
||||
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-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
|
||||
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
|
||||
|
||||
-sqltclsh$(TEXE): sqltclsh.c
|
||||
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
|
||||
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
|
||||
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
|
||||
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
|
||||
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
|
||||
|
||||
CHECKER_DEPS =\
|
||||
$(TOP)/tool/mkccode.tcl \
|
||||
- sqlite3.c \
|
||||
$(TOP)/src/tclsqlite.c \
|
||||
$(TOP)/ext/repair/sqlite3_checker.tcl \
|
||||
$(TOP)/ext/repair/checkindex.c \
|
||||
@@ -1330,36 +1326,36 @@
|
||||
sqlite3_checker.c: $(CHECKER_DEPS)
|
||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
|
||||
|
||||
-sqlite3_checker$(TEXE): sqlite3_checker.c
|
||||
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
|
||||
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
|
||||
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
|
||||
|
||||
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
|
||||
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
||||
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
|
||||
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
|
||||
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
||||
|
||||
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
||||
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
|
||||
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
|
||||
|
||||
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
|
||||
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
|
||||
|
||||
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
|
||||
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
|
||||
|
||||
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
|
||||
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
|
||||
|
||||
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
|
||||
+showwal$(TEXE): $(TOP)/tool/showwal.c
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
|
||||
|
||||
showshm$(TEXE): $(TOP)/tool/showshm.c
|
||||
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
|
||||
|
||||
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
|
||||
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
|
||||
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
|
||||
|
||||
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
|
||||
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
|
||||
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
|
||||
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
|
||||
|
||||
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
|
||||
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
|
||||
@@ -1387,11 +1383,11 @@
|
||||
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
|
||||
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
|
||||
|
||||
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
|
||||
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
|
||||
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
||||
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
||||
|
||||
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
||||
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
|
||||
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
||||
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
|
||||
|
||||
# This target will fail if the SQLite amalgamation contains any exported
|
||||
# symbols that do not begin with "sqlite3_". It is run as part of the
|
||||
--- /configure.ac
|
||||
+++ /configure.ac
|
||||
@@ -108,7 +108,7 @@
|
||||
#########
|
||||
# Figure out whether or not we have these functions
|
||||
#
|
||||
-AC_CHECK_FUNCS([fdatasync gmtime_r isnan localtime_r localtime_s malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64])
|
||||
+AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])
|
||||
|
||||
#########
|
||||
# By default, we use the amalgamation (this may be changed below...)
|
||||
@@ -587,6 +587,9 @@
|
||||
if test "${enable_load_extension}" = "yes" ; then
|
||||
OPT_FEATURE_FLAGS=""
|
||||
AC_SEARCH_LIBS(dlopen, dl)
|
||||
+ if test "${ac_cv_search_dlopen}" = "no" ; then
|
||||
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
||||
+ fi
|
||||
else
|
||||
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
||||
fi
|
441
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.35.0-build_2.2.patch
vendored
Normal file
441
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.35.0-build_2.2.patch
vendored
Normal file
@ -0,0 +1,441 @@
|
||||
Move some code to libsqlite3.so to avoid duplication.
|
||||
Initialize some extensions in libsqlite3.so.
|
||||
Update test suite.
|
||||
|
||||
SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b
|
||||
|
||||
--- /ext/repair/sqlite3_checker.c.in
|
||||
+++ /ext/repair/sqlite3_checker.c.in
|
||||
@@ -2,6 +2,7 @@
|
||||
** Read an SQLite database file and analyze its space utilization. Generate
|
||||
** text on standard output.
|
||||
*/
|
||||
+#define SQLITE_CORE 1
|
||||
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
|
||||
#define SQLITE_ENABLE_DBPAGE_VTAB 1
|
||||
#define SQLITE_ENABLE_JSON1 1
|
||||
@@ -14,7 +15,7 @@
|
||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
-INCLUDE sqlite3.c
|
||||
+#include "sqlite3.h"
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
INCLUDE $ROOT/ext/misc/btreeinfo.c
|
||||
INCLUDE $ROOT/ext/repair/checkindex.c
|
||||
--- /src/main.c
|
||||
+++ /src/main.c
|
||||
@@ -50,12 +50,36 @@
|
||||
#ifdef SQLITE_ENABLE_FTS5
|
||||
int sqlite3Fts5Init(sqlite3*);
|
||||
#endif
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
+int sqlite3DbdataRegister(sqlite3*);
|
||||
+#endif
|
||||
#ifdef SQLITE_ENABLE_JSON1
|
||||
int sqlite3Json1Init(sqlite3*);
|
||||
#endif
|
||||
#ifdef SQLITE_ENABLE_STMTVTAB
|
||||
int sqlite3StmtVtabInit(sqlite3*);
|
||||
#endif
|
||||
+int sqlite3AmatchInit(sqlite3*);
|
||||
+int sqlite3CarrayInit(sqlite3*);
|
||||
+int sqlite3CompletionVtabInit(sqlite3*);
|
||||
+int sqlite3CsvInit(sqlite3*);
|
||||
+int sqlite3DecimalInit(sqlite3*);
|
||||
+int sqlite3EvalInit(sqlite3*);
|
||||
+int sqlite3FileioInit(sqlite3*);
|
||||
+int sqlite3IeeeInit(sqlite3*);
|
||||
+int sqlite3NextcharInit(sqlite3*);
|
||||
+int sqlite3PercentileInit(sqlite3*);
|
||||
+int sqlite3RegexpInit(sqlite3*);
|
||||
+int sqlite3SeriesInit(sqlite3*);
|
||||
+int sqlite3ShaInit(sqlite3*);
|
||||
+int sqlite3ShathreeInit(sqlite3*);
|
||||
+int sqlite3TotypeInit(sqlite3*);
|
||||
+int sqlite3UintInit(sqlite3*);
|
||||
+int sqlite3UuidInit(sqlite3*);
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
||||
+int sqlite3ZipfileInit(sqlite3*);
|
||||
+int sqlite3SqlarInit(sqlite3*);
|
||||
+#endif
|
||||
|
||||
/*
|
||||
** An array of pointers to extension initializer functions for
|
||||
@@ -83,6 +107,9 @@
|
||||
#ifdef SQLITE_ENABLE_DBPAGE_VTAB
|
||||
sqlite3DbpageRegister,
|
||||
#endif
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
+ sqlite3DbdataRegister,
|
||||
+#endif
|
||||
#ifdef SQLITE_ENABLE_DBSTAT_VTAB
|
||||
sqlite3DbstatRegister,
|
||||
#endif
|
||||
@@ -96,6 +123,27 @@
|
||||
#ifdef SQLITE_ENABLE_BYTECODE_VTAB
|
||||
sqlite3VdbeBytecodeVtabInit,
|
||||
#endif
|
||||
+ sqlite3AmatchInit,
|
||||
+ sqlite3CarrayInit,
|
||||
+ sqlite3CompletionVtabInit,
|
||||
+ sqlite3CsvInit,
|
||||
+ sqlite3DecimalInit,
|
||||
+ sqlite3EvalInit,
|
||||
+ sqlite3FileioInit,
|
||||
+ sqlite3IeeeInit,
|
||||
+ sqlite3NextcharInit,
|
||||
+ sqlite3PercentileInit,
|
||||
+ sqlite3RegexpInit,
|
||||
+ sqlite3SeriesInit,
|
||||
+ sqlite3ShaInit,
|
||||
+ sqlite3ShathreeInit,
|
||||
+ sqlite3TotypeInit,
|
||||
+ sqlite3UintInit,
|
||||
+ sqlite3UuidInit,
|
||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
||||
+ sqlite3ZipfileInit,
|
||||
+ sqlite3SqlarInit,
|
||||
+#endif
|
||||
};
|
||||
|
||||
#ifndef SQLITE_AMALGAMATION
|
||||
--- /src/shell.c.in
|
||||
+++ /src/shell.c.in
|
||||
@@ -69,6 +69,7 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "sqlite3.h"
|
||||
+#include "ext/expert/sqlite3expert.h"
|
||||
typedef sqlite3_int64 i64;
|
||||
typedef sqlite3_uint64 u64;
|
||||
typedef unsigned char u8;
|
||||
@@ -135,6 +136,10 @@
|
||||
# define SHELL_USE_LOCAL_GETLINE 1
|
||||
#endif
|
||||
|
||||
+#ifdef SQLITE_HAVE_ZLIB
|
||||
+#include <zlib.h>
|
||||
+#endif
|
||||
+
|
||||
|
||||
#if defined(_WIN32) || defined(WIN32)
|
||||
# if SQLITE_OS_WINRT
|
||||
@@ -1018,25 +1023,7 @@
|
||||
INCLUDE test_windirent.c
|
||||
#define dirent DIRENT
|
||||
#endif
|
||||
-INCLUDE ../ext/misc/shathree.c
|
||||
-INCLUDE ../ext/misc/fileio.c
|
||||
-INCLUDE ../ext/misc/completion.c
|
||||
-INCLUDE ../ext/misc/appendvfs.c
|
||||
INCLUDE ../ext/misc/memtrace.c
|
||||
-INCLUDE ../ext/misc/uint.c
|
||||
-INCLUDE ../ext/misc/decimal.c
|
||||
-INCLUDE ../ext/misc/ieee754.c
|
||||
-INCLUDE ../ext/misc/series.c
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
-INCLUDE ../ext/misc/zipfile.c
|
||||
-INCLUDE ../ext/misc/sqlar.c
|
||||
-#endif
|
||||
-INCLUDE ../ext/expert/sqlite3expert.h
|
||||
-INCLUDE ../ext/expert/sqlite3expert.c
|
||||
-
|
||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
-INCLUDE ../ext/misc/dbdata.c
|
||||
-#endif
|
||||
|
||||
#if defined(SQLITE_ENABLE_SESSION)
|
||||
/*
|
||||
@@ -4608,20 +4595,6 @@
|
||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
||||
sqlite3_enable_load_extension(p->db, 1);
|
||||
#endif
|
||||
- sqlite3_fileio_init(p->db, 0, 0);
|
||||
- sqlite3_shathree_init(p->db, 0, 0);
|
||||
- sqlite3_completion_init(p->db, 0, 0);
|
||||
- sqlite3_uint_init(p->db, 0, 0);
|
||||
- sqlite3_decimal_init(p->db, 0, 0);
|
||||
- sqlite3_ieee_init(p->db, 0, 0);
|
||||
- sqlite3_series_init(p->db, 0, 0);
|
||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
||||
- sqlite3_dbdata_init(p->db, 0, 0);
|
||||
-#endif
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
- sqlite3_zipfile_init(p->db, 0, 0);
|
||||
- sqlite3_sqlar_init(p->db, 0, 0);
|
||||
-#endif
|
||||
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
|
||||
shellAddSchemaName, 0, 0);
|
||||
sqlite3_create_function(p->db, "shell_module_schema", 1, SQLITE_UTF8, 0,
|
||||
@@ -6644,8 +6617,6 @@
|
||||
);
|
||||
goto end_ar_command;
|
||||
}
|
||||
- sqlite3_fileio_init(cmd.db, 0, 0);
|
||||
- sqlite3_sqlar_init(cmd.db, 0, 0);
|
||||
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
|
||||
shellPutsFunc, 0, 0);
|
||||
|
||||
@@ -11108,6 +11079,7 @@
|
||||
#endif
|
||||
}
|
||||
data.out = stdout;
|
||||
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
|
||||
sqlite3_appendvfs_init(0,0,0);
|
||||
|
||||
/* Go ahead and open the database file if it already exists. If the
|
||||
--- /src/test_config.c
|
||||
+++ /src/test_config.c
|
||||
@@ -359,6 +359,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "decimal", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_DECLTYPE
|
||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
@@ -546,6 +548,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "regexp", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_REINDEX
|
||||
Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
@@ -668,6 +672,8 @@
|
||||
Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
+ Tcl_SetVar2(interp, "sqlite_options", "uint", "1", TCL_GLOBAL_ONLY);
|
||||
+
|
||||
#ifdef SQLITE_OMIT_UTF16
|
||||
Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
--- /test/e_expr.test
|
||||
+++ /test/e_expr.test
|
||||
@@ -1079,7 +1079,7 @@
|
||||
#
|
||||
# There is a regexp function if ICU is enabled though.
|
||||
#
|
||||
-ifcapable !icu {
|
||||
+ifcapable !icu&&!regexp {
|
||||
do_catchsql_test e_expr-18.1.1 {
|
||||
SELECT regexp('abc', 'def')
|
||||
} {1 {no such function: regexp}}
|
||||
--- /test/icu.test
|
||||
+++ /test/icu.test
|
||||
@@ -41,7 +41,7 @@
|
||||
#
|
||||
test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1
|
||||
test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1
|
||||
- test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0
|
||||
+ test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell$'} 0
|
||||
test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1
|
||||
test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}
|
||||
|
||||
--- /test/pragma.test
|
||||
+++ /test/pragma.test
|
||||
@@ -1370,17 +1370,62 @@
|
||||
} ;# ifcapable trigger
|
||||
|
||||
ifcapable schema_pragmas {
|
||||
- do_test pragma-11.1 {
|
||||
- execsql2 {
|
||||
- pragma collation_list;
|
||||
+ ifcapable decimal {
|
||||
+ ifcapable uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name UINT seq 1 name decimal seq 2 name RTRIM seq 3 name NOCASE seq 4 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 UINT 2 decimal 3 RTRIM 4 NOCASE 5 BINARY}
|
||||
}
|
||||
- } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
||||
- do_test pragma-11.2 {
|
||||
- db collate New_Collation blah...
|
||||
- execsql {
|
||||
- pragma collation_list;
|
||||
+ ifcapable !uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name decimal seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 decimal 2 RTRIM 3 NOCASE 4 BINARY}
|
||||
}
|
||||
- } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
||||
+ }
|
||||
+ ifcapable !decimal {
|
||||
+ ifcapable uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name UINT seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 UINT 2 RTRIM 3 NOCASE 4 BINARY}
|
||||
+ }
|
||||
+ ifcapable !uint {
|
||||
+ do_test pragma-11.1 {
|
||||
+ execsql2 {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
||||
+ do_test pragma-11.2 {
|
||||
+ db collate New_Collation blah...
|
||||
+ execsql {
|
||||
+ pragma collation_list;
|
||||
+ }
|
||||
+ } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
ifcapable schema_pragmas&&tempdb {
|
||||
--- /test/sessionfuzz.c
|
||||
+++ /test/sessionfuzz.c
|
||||
@@ -698,49 +698,6 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
-#ifndef OMIT_ZLIB
|
||||
-#include "zlib.h"
|
||||
-#endif
|
||||
-
|
||||
-/*
|
||||
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
|
||||
-**
|
||||
-** Parameter SZ is interpreted as an integer. If it is less than or
|
||||
-** equal to zero, then this function returns a copy of X. Or, if
|
||||
-** SZ is equal to the size of X when interpreted as a blob, also
|
||||
-** return a copy of X. Otherwise, decompress blob X using zlib
|
||||
-** utility function uncompress() and return the results (another
|
||||
-** blob).
|
||||
-*/
|
||||
-static void sqlarUncompressFunc(
|
||||
- sqlite3_context *context,
|
||||
- int argc,
|
||||
- sqlite3_value **argv
|
||||
-){
|
||||
-#ifdef OMIT_ZLIB
|
||||
- sqlite3_result_value(context, argv[0]);
|
||||
-#else
|
||||
- uLong nData;
|
||||
- uLongf sz;
|
||||
-
|
||||
- assert( argc==2 );
|
||||
- sz = sqlite3_value_int(argv[1]);
|
||||
-
|
||||
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
|
||||
- sqlite3_result_value(context, argv[0]);
|
||||
- }else{
|
||||
- const Bytef *pData= sqlite3_value_blob(argv[0]);
|
||||
- Bytef *pOut = sqlite3_malloc(sz);
|
||||
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
|
||||
- sqlite3_result_error(context, "error in uncompress()", -1);
|
||||
- }else{
|
||||
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
|
||||
- }
|
||||
- sqlite3_free(pOut);
|
||||
- }
|
||||
-#endif
|
||||
-}
|
||||
-
|
||||
|
||||
/* Run a chunk of SQL. If any errors happen, print an error message
|
||||
** and exit.
|
||||
--- /tool/mksqlite3c.tcl
|
||||
+++ /tool/mksqlite3c.tcl
|
||||
@@ -129,6 +129,7 @@
|
||||
rtree.h
|
||||
sqlite3session.h
|
||||
sqlite3.h
|
||||
+ sqlite3expert.h
|
||||
sqlite3ext.h
|
||||
sqlite3rbu.h
|
||||
sqliteicu.h
|
||||
@@ -416,6 +417,28 @@
|
||||
sqlite3session.c
|
||||
fts5.c
|
||||
stmt.c
|
||||
+ amatch.c
|
||||
+ appendvfs.c
|
||||
+ carray.c
|
||||
+ completion.c
|
||||
+ csv.c
|
||||
+ dbdata.c
|
||||
+ decimal.c
|
||||
+ eval.c
|
||||
+ fileio.c
|
||||
+ ieee754.c
|
||||
+ nextchar.c
|
||||
+ percentile.c
|
||||
+ regexp.c
|
||||
+ series.c
|
||||
+ sha1.c
|
||||
+ shathree.c
|
||||
+ sqlar.c
|
||||
+ sqlite3expert.c
|
||||
+ totype.c
|
||||
+ uint.c
|
||||
+ uuid.c
|
||||
+ zipfile.c
|
||||
} {
|
||||
copy_file tsrc/$file
|
||||
}
|
||||
--- /tool/sqlite3_analyzer.c.in
|
||||
+++ /tool/sqlite3_analyzer.c.in
|
||||
@@ -14,9 +14,6 @@
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
#define SQLITE_OMIT_LOAD_EXTENSION 1
|
||||
-#ifndef USE_EXTERNAL_SQLITE
|
||||
-INCLUDE sqlite3.c
|
||||
-#endif
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
|
||||
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
|
||||
--- /tool/sqltclsh.c.in
|
||||
+++ /tool/sqltclsh.c.in
|
||||
@@ -27,21 +27,13 @@
|
||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
||||
-INCLUDE sqlite3.c
|
||||
-INCLUDE $ROOT/ext/misc/appendvfs.c
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
-INCLUDE $ROOT/ext/misc/zipfile.c
|
||||
-INCLUDE $ROOT/ext/misc/sqlar.c
|
||||
-#endif
|
||||
+#include "sqlite3.h"
|
||||
INCLUDE $ROOT/src/tclsqlite.c
|
||||
|
||||
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
|
||||
(void)interp;
|
||||
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
|
||||
sqlite3_appendvfs_init(0,0,0);
|
||||
-#ifdef SQLITE_HAVE_ZLIB
|
||||
- sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
|
||||
- sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
|
||||
-#endif
|
||||
|
||||
return
|
||||
BEGIN_STRING
|
@ -1,14 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>arfrever.fta@gmail.com</email>
|
||||
<name>Arfrever Frehtes Taifersar Arahesis</name>
|
||||
</maintainer>
|
||||
<maintainer type="person">
|
||||
<maintainer type="person" proxied="proxy">
|
||||
<email>floppym@gentoo.org</email>
|
||||
<name>Mike Gilbert</name>
|
||||
<description>Proxy</description>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="secure-delete">Enable overwriting of deleted content with zeros by default (http://sqlite.org/pragma.html#pragma_secure_delete), causing some performance penalty</flag>
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
@ -22,7 +22,7 @@ fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="3"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
PROPERTIES="live"
|
||||
@ -40,7 +40,7 @@ RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||
tools? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )"
|
||||
tools? ( dev-lang/tcl:0= )"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
@ -274,7 +274,14 @@ multilib_src_configure() {
|
||||
options+=($(use_enable static-libs static))
|
||||
|
||||
# tcl, test, tools USE flags.
|
||||
options+=(--enable-tcl)
|
||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||
options+=(
|
||||
--enable-tcl
|
||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||
)
|
||||
else
|
||||
options+=(--disable-tcl)
|
||||
fi
|
||||
|
||||
if [[ "${CHOST}" == *-mint* ]]; then
|
||||
# sys/mman.h not available in MiNTLib.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
@ -22,7 +22,7 @@ fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="3"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
PROPERTIES="live"
|
||||
@ -40,7 +40,7 @@ RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||
tools? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )"
|
||||
tools? ( dev-lang/tcl:0= )"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
@ -50,48 +50,85 @@ else
|
||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||
fi
|
||||
|
||||
src_unpack() {
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
addwrite "${distdir}"
|
||||
mkdir -p "${distdir}/fossil-src/${PN}" || die
|
||||
_fossil_fetch() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
|
||||
mkdir "${WORKDIR}/${PN}" || die
|
||||
pushd "${WORKDIR}/${PN}" > /dev/null || die
|
||||
if [[ ! -f "${distdir}/fossil-src/${PN}/sqlite.fossil" ]]; then
|
||||
einfo fossil clone --verbose https://sqlite.org/src sqlite.fossil
|
||||
fossil clone --verbose https://sqlite.org/src sqlite.fossil || die
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||
|
||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
else
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||
echo
|
||||
else
|
||||
cp -p "${distdir}/fossil-src/${PN}/sqlite.fossil" . || die
|
||||
einfo fossil pull --repository sqlite.fossil --verbose https://sqlite.org/src
|
||||
fossil pull --repository sqlite.fossil --verbose https://sqlite.org/src || die
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||
echo
|
||||
fi
|
||||
cp -p sqlite.fossil "${distdir}/fossil-src/${PN}" || die
|
||||
einfo fossil open --quiet sqlite.fossil
|
||||
fossil open --quiet sqlite.fossil || die
|
||||
echo
|
||||
popd > /dev/null || die
|
||||
|
||||
(
|
||||
addwrite "${distdir}"
|
||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||
)
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
_fossil_checkout() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local branch_or_commit="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
|
||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||
fi
|
||||
|
||||
mkdir "${target_directory}" || die
|
||||
pushd "${target_directory}" > /dev/null || die
|
||||
|
||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||
echo
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
fossil_fetch() {
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||
|
||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||
if use doc; then
|
||||
mkdir "${WORKDIR}/${PN}-doc" || die
|
||||
pushd "${WORKDIR}/${PN}-doc" > /dev/null || die
|
||||
if [[ ! -f "${distdir}/fossil-src/${PN}/sqlite-doc.fossil" ]]; then
|
||||
einfo fossil clone --verbose https://sqlite.org/docsrc sqlite-doc.fossil
|
||||
fossil clone --verbose https://sqlite.org/docsrc sqlite-doc.fossil || die
|
||||
echo
|
||||
else
|
||||
cp -p "${distdir}/fossil-src/${PN}/sqlite-doc.fossil" . || die
|
||||
einfo fossil pull --repository sqlite-doc.fossil --verbose https://sqlite.org/docsrc
|
||||
fossil pull --repository sqlite-doc.fossil --verbose https://sqlite.org/docsrc || die
|
||||
echo
|
||||
fi
|
||||
cp -p sqlite-doc.fossil "${distdir}/fossil-src/${PN}" || die
|
||||
einfo fossil open --quiet sqlite-doc.fossil
|
||||
fossil open --quiet sqlite-doc.fossil || die
|
||||
echo
|
||||
popd > /dev/null || die
|
||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||
fi
|
||||
else
|
||||
default
|
||||
@ -99,15 +136,10 @@ src_unpack() {
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/"${PN}-3.32.1-full_archive-build_{1,2}.patch
|
||||
eapply "${FILESDIR}/"${PN}-3.32.3-backports_{1,2,3}.patch
|
||||
eapply "${FILESDIR}/"${PN}-3.34.0-build_{1.1,1.2,2.1,2.2}.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
# Fix AC_CHECK_FUNCS.
|
||||
# https://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-dev/2016-March/002762.html
|
||||
sed -e "s/AC_CHECK_FUNCS(.*)/AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])/" -i configure.ac || die "sed failed"
|
||||
|
||||
eautoreconf
|
||||
|
||||
multilib_copy_sources
|
||||
@ -127,22 +159,27 @@ multilib_src_configure() {
|
||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||
|
||||
# Support bytecode and tables_used virtual tables.
|
||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||
# https://sqlite.org/bytecodevtab.html
|
||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||
|
||||
# Support column metadata functions.
|
||||
# https://sqlite.org/compile.html#enable_column_metadata
|
||||
# https://sqlite.org/c3ref/column_database_name.html
|
||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||
|
||||
# Support sqlite_dbpage virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||
# https://sqlite.org/dbpage.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||
|
||||
# Support dbstat virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||
# https://sqlite.org/dbstat.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||
|
||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||
# https://sqlite.org/compile.html#enable_deserialize
|
||||
# https://sqlite.org/c3ref/serialize.html
|
||||
# https://sqlite.org/c3ref/deserialize.html
|
||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||
@ -152,6 +189,10 @@ multilib_src_configure() {
|
||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
|
||||
# Support Full-Text Search versions 3, 4 and 5.
|
||||
# https://sqlite.org/compile.html#enable_fts3
|
||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||
# https://sqlite.org/compile.html#enable_fts4
|
||||
# https://sqlite.org/compile.html#enable_fts5
|
||||
# https://sqlite.org/fts3.html
|
||||
# https://sqlite.org/fts5.html
|
||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||
@ -161,10 +202,12 @@ multilib_src_configure() {
|
||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||
|
||||
# Support JSON1 extension.
|
||||
# https://sqlite.org/compile.html#enable_json1
|
||||
# https://sqlite.org/json1.html
|
||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
||||
|
||||
# Support memsys5 memory allocator.
|
||||
# https://sqlite.org/compile.html#enable_memsys5
|
||||
# https://sqlite.org/malloc.html#memsys5
|
||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||
|
||||
@ -173,53 +216,66 @@ multilib_src_configure() {
|
||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||
|
||||
# Support sqlite_offset() function.
|
||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||
|
||||
# Support pre-update hook functions.
|
||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||
# https://sqlite.org/c3ref/preupdate_count.html
|
||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||
|
||||
# Support Resumable Bulk Update extension.
|
||||
# https://sqlite.org/compile.html#enable_rbu
|
||||
# https://sqlite.org/rbu.html
|
||||
append-cppflags -DSQLITE_ENABLE_RBU
|
||||
|
||||
# Support R*Trees.
|
||||
# https://sqlite.org/compile.html#enable_rtree
|
||||
# https://sqlite.org/compile.html#enable_geopoly
|
||||
# https://sqlite.org/rtree.html
|
||||
# https://sqlite.org/geopoly.html
|
||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||
|
||||
# Support Session extension.
|
||||
# https://sqlite.org/compile.html#enable_session
|
||||
# https://sqlite.org/sessionintro.html
|
||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||
|
||||
# Support scan status functions.
|
||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||
|
||||
# Support sqlite_stmt virtual table.
|
||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||
# https://sqlite.org/stmt.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||
|
||||
# Support Session extension.
|
||||
# https://sqlite.org/sessionintro.html
|
||||
options+=(--enable-session)
|
||||
|
||||
# Support unknown() function.
|
||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||
|
||||
# Support unlock notification.
|
||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||
# https://sqlite.org/c3ref/unlock_notify.html
|
||||
# https://sqlite.org/unlock_notify.html
|
||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||
|
||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||
|
||||
# Support soundex() function.
|
||||
# https://sqlite.org/compile.html#soundex
|
||||
# https://sqlite.org/lang_corefunc.html#soundex
|
||||
append-cppflags -DSQLITE_SOUNDEX
|
||||
|
||||
# Support URI filenames.
|
||||
# https://sqlite.org/compile.html#use_uri
|
||||
# https://sqlite.org/uri.html
|
||||
append-cppflags -DSQLITE_USE_URI
|
||||
|
||||
@ -246,6 +302,7 @@ multilib_src_configure() {
|
||||
# secure-delete USE flag.
|
||||
if use secure-delete; then
|
||||
# Enable secure_delete pragma by default.
|
||||
# https://sqlite.org/compile.html#secure_delete
|
||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||
append-cppflags -DSQLITE_SECURE_DELETE
|
||||
fi
|
||||
@ -254,9 +311,18 @@ multilib_src_configure() {
|
||||
options+=($(use_enable static-libs static))
|
||||
|
||||
# tcl, test, tools USE flags.
|
||||
options+=(--enable-tcl)
|
||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||
options+=(
|
||||
--enable-tcl
|
||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||
)
|
||||
else
|
||||
options+=(--disable-tcl)
|
||||
fi
|
||||
|
||||
if [[ "${CHOST}" == *-mint* ]]; then
|
||||
# sys/mman.h not available in MiNTLib.
|
||||
# https://sqlite.org/compile.html#omit_wal
|
||||
append-cppflags -DSQLITE_OMIT_WAL
|
||||
fi
|
||||
|
||||
@ -277,6 +343,21 @@ multilib_src_compile() {
|
||||
if use tools && multilib_is_native_abi; then
|
||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||
fi
|
||||
|
||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
||||
emake tclsqlite3.c
|
||||
|
||||
local build_directory="$(pwd)"
|
||||
build_directory="${build_directory##*/}"
|
||||
|
||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||
|
||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||
rmdir doc/matrix{/*,} || die
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
@ -325,15 +406,29 @@ multilib_src_install() {
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${D}" -name "*.la" -type f -delete || die
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
doman sqlite3.1
|
||||
|
||||
if use doc; then
|
||||
rm "${WORKDIR}/${PN}-doc-${DOC_PV}/"*.{db,txt} || die
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||
else
|
||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||
fi
|
||||
|
||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
rm search search.d/admin || die
|
||||
rmdir search.d || die
|
||||
find -name "*~" -delete || die
|
||||
fi
|
||||
|
||||
(
|
||||
docinto html
|
||||
dodoc -r "${WORKDIR}/${PN}-doc-${DOC_PV}/"*
|
||||
dodoc -r *
|
||||
)
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.34.1.ebuild
vendored
Normal file
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.34.1.ebuild
vendored
Normal file
@ -0,0 +1,434 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
||||
DOC_PV="${SRC_PV}"
|
||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
||||
fi
|
||||
|
||||
DESCRIPTION="SQL database engine"
|
||||
HOMEPAGE="https://sqlite.org/"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
||||
fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="3"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
PROPERTIES="live"
|
||||
fi
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
||||
dev-vcs/fossil"
|
||||
else
|
||||
BDEPEND="app-arch/unzip
|
||||
>=dev-lang/tcl-8.6:0"
|
||||
fi
|
||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||
tools? ( dev-lang/tcl:0= )"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
S="${WORKDIR}/${PN}"
|
||||
else
|
||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||
fi
|
||||
|
||||
_fossil_fetch() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||
|
||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
else
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||
echo
|
||||
else
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||
echo
|
||||
fi
|
||||
|
||||
(
|
||||
addwrite "${distdir}"
|
||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||
)
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
_fossil_checkout() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local branch_or_commit="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
|
||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||
fi
|
||||
|
||||
mkdir "${target_directory}" || die
|
||||
pushd "${target_directory}" > /dev/null || die
|
||||
|
||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||
echo
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
fossil_fetch() {
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||
|
||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||
if use doc; then
|
||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||
fi
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/"${PN}-3.34.1-build_{1.1,1.2,2.1,2.2}.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
eautoreconf
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
||||
local options=()
|
||||
|
||||
options+=(
|
||||
--enable-load-extension
|
||||
--enable-threadsafe
|
||||
)
|
||||
|
||||
# Support detection of misuse of SQLite API.
|
||||
# https://sqlite.org/compile.html#enable_api_armor
|
||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||
|
||||
# Support bytecode and tables_used virtual tables.
|
||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||
# https://sqlite.org/bytecodevtab.html
|
||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||
|
||||
# Support column metadata functions.
|
||||
# https://sqlite.org/compile.html#enable_column_metadata
|
||||
# https://sqlite.org/c3ref/column_database_name.html
|
||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||
|
||||
# Support sqlite_dbpage virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||
# https://sqlite.org/dbpage.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||
|
||||
# Support dbstat virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||
# https://sqlite.org/dbstat.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||
|
||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||
# https://sqlite.org/compile.html#enable_deserialize
|
||||
# https://sqlite.org/c3ref/serialize.html
|
||||
# https://sqlite.org/c3ref/deserialize.html
|
||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||
|
||||
# Support comments in output of EXPLAIN.
|
||||
# https://sqlite.org/compile.html#enable_explain_comments
|
||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
|
||||
# Support Full-Text Search versions 3, 4 and 5.
|
||||
# https://sqlite.org/compile.html#enable_fts3
|
||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||
# https://sqlite.org/compile.html#enable_fts4
|
||||
# https://sqlite.org/compile.html#enable_fts5
|
||||
# https://sqlite.org/fts3.html
|
||||
# https://sqlite.org/fts5.html
|
||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||
options+=(--enable-fts5)
|
||||
|
||||
# Support hidden columns.
|
||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||
|
||||
# Support JSON1 extension.
|
||||
# https://sqlite.org/compile.html#enable_json1
|
||||
# https://sqlite.org/json1.html
|
||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
||||
|
||||
# Support memsys5 memory allocator.
|
||||
# https://sqlite.org/compile.html#enable_memsys5
|
||||
# https://sqlite.org/malloc.html#memsys5
|
||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||
|
||||
# Support sqlite3_normalized_sql() function.
|
||||
# https://sqlite.org/c3ref/expanded_sql.html
|
||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||
|
||||
# Support sqlite_offset() function.
|
||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||
|
||||
# Support pre-update hook functions.
|
||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||
# https://sqlite.org/c3ref/preupdate_count.html
|
||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||
|
||||
# Support Resumable Bulk Update extension.
|
||||
# https://sqlite.org/compile.html#enable_rbu
|
||||
# https://sqlite.org/rbu.html
|
||||
append-cppflags -DSQLITE_ENABLE_RBU
|
||||
|
||||
# Support R*Trees.
|
||||
# https://sqlite.org/compile.html#enable_rtree
|
||||
# https://sqlite.org/compile.html#enable_geopoly
|
||||
# https://sqlite.org/rtree.html
|
||||
# https://sqlite.org/geopoly.html
|
||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||
|
||||
# Support Session extension.
|
||||
# https://sqlite.org/compile.html#enable_session
|
||||
# https://sqlite.org/sessionintro.html
|
||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||
|
||||
# Support scan status functions.
|
||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||
|
||||
# Support sqlite_stmt virtual table.
|
||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||
# https://sqlite.org/stmt.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||
|
||||
# Support unknown() function.
|
||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||
|
||||
# Support unlock notification.
|
||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||
# https://sqlite.org/c3ref/unlock_notify.html
|
||||
# https://sqlite.org/unlock_notify.html
|
||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||
|
||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||
|
||||
# Support soundex() function.
|
||||
# https://sqlite.org/compile.html#soundex
|
||||
# https://sqlite.org/lang_corefunc.html#soundex
|
||||
append-cppflags -DSQLITE_SOUNDEX
|
||||
|
||||
# Support URI filenames.
|
||||
# https://sqlite.org/compile.html#use_uri
|
||||
# https://sqlite.org/uri.html
|
||||
append-cppflags -DSQLITE_USE_URI
|
||||
|
||||
# debug USE flag.
|
||||
options+=($(use_enable debug))
|
||||
|
||||
# icu USE flag.
|
||||
if use icu; then
|
||||
# Support ICU extension.
|
||||
# https://sqlite.org/compile.html#enable_icu
|
||||
append-cppflags -DSQLITE_ENABLE_ICU
|
||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
||||
fi
|
||||
|
||||
# readline USE flag.
|
||||
options+=(
|
||||
--disable-editline
|
||||
$(use_enable readline)
|
||||
)
|
||||
if use readline; then
|
||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
||||
fi
|
||||
|
||||
# secure-delete USE flag.
|
||||
if use secure-delete; then
|
||||
# Enable secure_delete pragma by default.
|
||||
# https://sqlite.org/compile.html#secure_delete
|
||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||
append-cppflags -DSQLITE_SECURE_DELETE
|
||||
fi
|
||||
|
||||
# static-libs USE flag.
|
||||
options+=($(use_enable static-libs static))
|
||||
|
||||
# tcl, test, tools USE flags.
|
||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||
options+=(
|
||||
--enable-tcl
|
||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||
)
|
||||
else
|
||||
options+=(--disable-tcl)
|
||||
fi
|
||||
|
||||
if [[ "${CHOST}" == *-mint* ]]; then
|
||||
# sys/mman.h not available in MiNTLib.
|
||||
# https://sqlite.org/compile.html#omit_wal
|
||||
append-cppflags -DSQLITE_OMIT_WAL
|
||||
fi
|
||||
|
||||
if [[ "${ABI}" == "x86" ]]; then
|
||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||
append-cflags -mfpmath=sse
|
||||
else
|
||||
append-cflags -ffloat-store
|
||||
fi
|
||||
fi
|
||||
|
||||
econf "${options[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||
fi
|
||||
|
||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
||||
emake tclsqlite3.c
|
||||
|
||||
local build_directory="$(pwd)"
|
||||
build_directory="${build_directory##*/}"
|
||||
|
||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||
|
||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||
rmdir doc/matrix{/*,} || die
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if [[ "${EUID}" -eq 0 ]]; then
|
||||
ewarn "Skipping tests due to root permissions"
|
||||
return
|
||||
fi
|
||||
|
||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
install_tool() {
|
||||
if [[ -f ".libs/${1}" ]]; then
|
||||
newbin ".libs/${1}" "${2}"
|
||||
else
|
||||
newbin "${1}" "${2}"
|
||||
fi
|
||||
}
|
||||
|
||||
install_tool changeset sqlite3-changeset
|
||||
install_tool dbdump sqlite3-db-dump
|
||||
install_tool dbhash sqlite3-db-hash
|
||||
install_tool dbtotxt sqlite3-db-to-txt
|
||||
install_tool index_usage sqlite3-index-usage
|
||||
install_tool rbu sqlite3-rbu
|
||||
install_tool scrub sqlite3-scrub
|
||||
install_tool showdb sqlite3-show-db
|
||||
install_tool showjournal sqlite3-show-journal
|
||||
install_tool showshm sqlite3-show-shm
|
||||
install_tool showstat4 sqlite3-show-stat4
|
||||
install_tool showwal sqlite3-show-wal
|
||||
install_tool sqldiff sqlite3-diff
|
||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
||||
install_tool sqlite3_checker sqlite3-checker
|
||||
install_tool sqlite3_expert sqlite3-expert
|
||||
install_tool sqltclsh sqlite3-tclsh
|
||||
|
||||
unset -f install_tool
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
doman sqlite3.1
|
||||
|
||||
if use doc; then
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||
else
|
||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||
fi
|
||||
|
||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
rm search search.d/admin || die
|
||||
rmdir search.d || die
|
||||
find -name "*~" -delete || die
|
||||
fi
|
||||
|
||||
(
|
||||
docinto html
|
||||
dodoc -r *
|
||||
)
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.35.0.ebuild
vendored
Normal file
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.35.0.ebuild
vendored
Normal file
@ -0,0 +1,434 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
||||
DOC_PV="${SRC_PV}"
|
||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
||||
fi
|
||||
|
||||
DESCRIPTION="SQL database engine"
|
||||
HOMEPAGE="https://sqlite.org/"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
||||
fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="3"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
PROPERTIES="live"
|
||||
fi
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
||||
dev-vcs/fossil"
|
||||
else
|
||||
BDEPEND="app-arch/unzip
|
||||
>=dev-lang/tcl-8.6:0"
|
||||
fi
|
||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||
tools? ( dev-lang/tcl:0= )"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
S="${WORKDIR}/${PN}"
|
||||
else
|
||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||
fi
|
||||
|
||||
_fossil_fetch() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||
|
||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
else
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||
echo
|
||||
else
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||
echo
|
||||
fi
|
||||
|
||||
(
|
||||
addwrite "${distdir}"
|
||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||
)
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
_fossil_checkout() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local branch_or_commit="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
|
||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||
fi
|
||||
|
||||
mkdir "${target_directory}" || die
|
||||
pushd "${target_directory}" > /dev/null || die
|
||||
|
||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||
echo
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
fossil_fetch() {
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||
|
||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||
if use doc; then
|
||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||
fi
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
eautoreconf
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
||||
local options=()
|
||||
|
||||
options+=(
|
||||
--enable-load-extension
|
||||
--enable-threadsafe
|
||||
)
|
||||
|
||||
# Support detection of misuse of SQLite API.
|
||||
# https://sqlite.org/compile.html#enable_api_armor
|
||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||
|
||||
# Support bytecode and tables_used virtual tables.
|
||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||
# https://sqlite.org/bytecodevtab.html
|
||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||
|
||||
# Support column metadata functions.
|
||||
# https://sqlite.org/compile.html#enable_column_metadata
|
||||
# https://sqlite.org/c3ref/column_database_name.html
|
||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||
|
||||
# Support sqlite_dbpage virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||
# https://sqlite.org/dbpage.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||
|
||||
# Support dbstat virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||
# https://sqlite.org/dbstat.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||
|
||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||
# https://sqlite.org/compile.html#enable_deserialize
|
||||
# https://sqlite.org/c3ref/serialize.html
|
||||
# https://sqlite.org/c3ref/deserialize.html
|
||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||
|
||||
# Support comments in output of EXPLAIN.
|
||||
# https://sqlite.org/compile.html#enable_explain_comments
|
||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
|
||||
# Support Full-Text Search versions 3, 4 and 5.
|
||||
# https://sqlite.org/compile.html#enable_fts3
|
||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||
# https://sqlite.org/compile.html#enable_fts4
|
||||
# https://sqlite.org/compile.html#enable_fts5
|
||||
# https://sqlite.org/fts3.html
|
||||
# https://sqlite.org/fts5.html
|
||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||
options+=(--enable-fts5)
|
||||
|
||||
# Support hidden columns.
|
||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||
|
||||
# Support JSON1 extension.
|
||||
# https://sqlite.org/compile.html#enable_json1
|
||||
# https://sqlite.org/json1.html
|
||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
||||
|
||||
# Support memsys5 memory allocator.
|
||||
# https://sqlite.org/compile.html#enable_memsys5
|
||||
# https://sqlite.org/malloc.html#memsys5
|
||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||
|
||||
# Support sqlite3_normalized_sql() function.
|
||||
# https://sqlite.org/c3ref/expanded_sql.html
|
||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||
|
||||
# Support sqlite_offset() function.
|
||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||
|
||||
# Support pre-update hook functions.
|
||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||
# https://sqlite.org/c3ref/preupdate_count.html
|
||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||
|
||||
# Support Resumable Bulk Update extension.
|
||||
# https://sqlite.org/compile.html#enable_rbu
|
||||
# https://sqlite.org/rbu.html
|
||||
append-cppflags -DSQLITE_ENABLE_RBU
|
||||
|
||||
# Support R*Trees.
|
||||
# https://sqlite.org/compile.html#enable_rtree
|
||||
# https://sqlite.org/compile.html#enable_geopoly
|
||||
# https://sqlite.org/rtree.html
|
||||
# https://sqlite.org/geopoly.html
|
||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||
|
||||
# Support Session extension.
|
||||
# https://sqlite.org/compile.html#enable_session
|
||||
# https://sqlite.org/sessionintro.html
|
||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||
|
||||
# Support scan status functions.
|
||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||
|
||||
# Support sqlite_stmt virtual table.
|
||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||
# https://sqlite.org/stmt.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||
|
||||
# Support unknown() function.
|
||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||
|
||||
# Support unlock notification.
|
||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||
# https://sqlite.org/c3ref/unlock_notify.html
|
||||
# https://sqlite.org/unlock_notify.html
|
||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||
|
||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||
|
||||
# Support soundex() function.
|
||||
# https://sqlite.org/compile.html#soundex
|
||||
# https://sqlite.org/lang_corefunc.html#soundex
|
||||
append-cppflags -DSQLITE_SOUNDEX
|
||||
|
||||
# Support URI filenames.
|
||||
# https://sqlite.org/compile.html#use_uri
|
||||
# https://sqlite.org/uri.html
|
||||
append-cppflags -DSQLITE_USE_URI
|
||||
|
||||
# debug USE flag.
|
||||
options+=($(use_enable debug))
|
||||
|
||||
# icu USE flag.
|
||||
if use icu; then
|
||||
# Support ICU extension.
|
||||
# https://sqlite.org/compile.html#enable_icu
|
||||
append-cppflags -DSQLITE_ENABLE_ICU
|
||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
||||
fi
|
||||
|
||||
# readline USE flag.
|
||||
options+=(
|
||||
--disable-editline
|
||||
$(use_enable readline)
|
||||
)
|
||||
if use readline; then
|
||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
||||
fi
|
||||
|
||||
# secure-delete USE flag.
|
||||
if use secure-delete; then
|
||||
# Enable secure_delete pragma by default.
|
||||
# https://sqlite.org/compile.html#secure_delete
|
||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||
append-cppflags -DSQLITE_SECURE_DELETE
|
||||
fi
|
||||
|
||||
# static-libs USE flag.
|
||||
options+=($(use_enable static-libs static))
|
||||
|
||||
# tcl, test, tools USE flags.
|
||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||
options+=(
|
||||
--enable-tcl
|
||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||
)
|
||||
else
|
||||
options+=(--disable-tcl)
|
||||
fi
|
||||
|
||||
if [[ "${CHOST}" == *-mint* ]]; then
|
||||
# sys/mman.h not available in MiNTLib.
|
||||
# https://sqlite.org/compile.html#omit_wal
|
||||
append-cppflags -DSQLITE_OMIT_WAL
|
||||
fi
|
||||
|
||||
if [[ "${ABI}" == "x86" ]]; then
|
||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||
append-cflags -mfpmath=sse
|
||||
else
|
||||
append-cflags -ffloat-store
|
||||
fi
|
||||
fi
|
||||
|
||||
econf "${options[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||
fi
|
||||
|
||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
||||
emake tclsqlite3.c
|
||||
|
||||
local build_directory="$(pwd)"
|
||||
build_directory="${build_directory##*/}"
|
||||
|
||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||
|
||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||
rmdir doc/matrix{/*,} || die
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if [[ "${EUID}" -eq 0 ]]; then
|
||||
ewarn "Skipping tests due to root permissions"
|
||||
return
|
||||
fi
|
||||
|
||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
install_tool() {
|
||||
if [[ -f ".libs/${1}" ]]; then
|
||||
newbin ".libs/${1}" "${2}"
|
||||
else
|
||||
newbin "${1}" "${2}"
|
||||
fi
|
||||
}
|
||||
|
||||
install_tool changeset sqlite3-changeset
|
||||
install_tool dbdump sqlite3-db-dump
|
||||
install_tool dbhash sqlite3-db-hash
|
||||
install_tool dbtotxt sqlite3-db-to-txt
|
||||
install_tool index_usage sqlite3-index-usage
|
||||
install_tool rbu sqlite3-rbu
|
||||
install_tool scrub sqlite3-scrub
|
||||
install_tool showdb sqlite3-show-db
|
||||
install_tool showjournal sqlite3-show-journal
|
||||
install_tool showshm sqlite3-show-shm
|
||||
install_tool showstat4 sqlite3-show-stat4
|
||||
install_tool showwal sqlite3-show-wal
|
||||
install_tool sqldiff sqlite3-diff
|
||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
||||
install_tool sqlite3_checker sqlite3-checker
|
||||
install_tool sqlite3_expert sqlite3-expert
|
||||
install_tool sqltclsh sqlite3-tclsh
|
||||
|
||||
unset -f install_tool
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
doman sqlite3.1
|
||||
|
||||
if use doc; then
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||
else
|
||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||
fi
|
||||
|
||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
rm search search.d/admin || die
|
||||
rmdir search.d || die
|
||||
find -name "*~" -delete || die
|
||||
fi
|
||||
|
||||
(
|
||||
docinto html
|
||||
dodoc -r *
|
||||
)
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.35.1.ebuild
vendored
Normal file
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.35.1.ebuild
vendored
Normal file
@ -0,0 +1,434 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
||||
DOC_PV="${SRC_PV}"
|
||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
||||
fi
|
||||
|
||||
DESCRIPTION="SQL database engine"
|
||||
HOMEPAGE="https://sqlite.org/"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
||||
fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="3"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
PROPERTIES="live"
|
||||
fi
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
||||
dev-vcs/fossil"
|
||||
else
|
||||
BDEPEND="app-arch/unzip
|
||||
>=dev-lang/tcl-8.6:0"
|
||||
fi
|
||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||
tools? ( dev-lang/tcl:0= )"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
S="${WORKDIR}/${PN}"
|
||||
else
|
||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||
fi
|
||||
|
||||
_fossil_fetch() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||
|
||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
else
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||
echo
|
||||
else
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||
echo
|
||||
fi
|
||||
|
||||
(
|
||||
addwrite "${distdir}"
|
||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||
)
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
_fossil_checkout() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local branch_or_commit="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
|
||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||
fi
|
||||
|
||||
mkdir "${target_directory}" || die
|
||||
pushd "${target_directory}" > /dev/null || die
|
||||
|
||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||
echo
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
fossil_fetch() {
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||
|
||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||
if use doc; then
|
||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||
fi
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
eautoreconf
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
||||
local options=()
|
||||
|
||||
options+=(
|
||||
--enable-load-extension
|
||||
--enable-threadsafe
|
||||
)
|
||||
|
||||
# Support detection of misuse of SQLite API.
|
||||
# https://sqlite.org/compile.html#enable_api_armor
|
||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||
|
||||
# Support bytecode and tables_used virtual tables.
|
||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||
# https://sqlite.org/bytecodevtab.html
|
||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||
|
||||
# Support column metadata functions.
|
||||
# https://sqlite.org/compile.html#enable_column_metadata
|
||||
# https://sqlite.org/c3ref/column_database_name.html
|
||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||
|
||||
# Support sqlite_dbpage virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||
# https://sqlite.org/dbpage.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||
|
||||
# Support dbstat virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||
# https://sqlite.org/dbstat.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||
|
||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||
# https://sqlite.org/compile.html#enable_deserialize
|
||||
# https://sqlite.org/c3ref/serialize.html
|
||||
# https://sqlite.org/c3ref/deserialize.html
|
||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||
|
||||
# Support comments in output of EXPLAIN.
|
||||
# https://sqlite.org/compile.html#enable_explain_comments
|
||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
|
||||
# Support Full-Text Search versions 3, 4 and 5.
|
||||
# https://sqlite.org/compile.html#enable_fts3
|
||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||
# https://sqlite.org/compile.html#enable_fts4
|
||||
# https://sqlite.org/compile.html#enable_fts5
|
||||
# https://sqlite.org/fts3.html
|
||||
# https://sqlite.org/fts5.html
|
||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||
options+=(--enable-fts5)
|
||||
|
||||
# Support hidden columns.
|
||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||
|
||||
# Support JSON1 extension.
|
||||
# https://sqlite.org/compile.html#enable_json1
|
||||
# https://sqlite.org/json1.html
|
||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
||||
|
||||
# Support memsys5 memory allocator.
|
||||
# https://sqlite.org/compile.html#enable_memsys5
|
||||
# https://sqlite.org/malloc.html#memsys5
|
||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||
|
||||
# Support sqlite3_normalized_sql() function.
|
||||
# https://sqlite.org/c3ref/expanded_sql.html
|
||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||
|
||||
# Support sqlite_offset() function.
|
||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||
|
||||
# Support pre-update hook functions.
|
||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||
# https://sqlite.org/c3ref/preupdate_count.html
|
||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||
|
||||
# Support Resumable Bulk Update extension.
|
||||
# https://sqlite.org/compile.html#enable_rbu
|
||||
# https://sqlite.org/rbu.html
|
||||
append-cppflags -DSQLITE_ENABLE_RBU
|
||||
|
||||
# Support R*Trees.
|
||||
# https://sqlite.org/compile.html#enable_rtree
|
||||
# https://sqlite.org/compile.html#enable_geopoly
|
||||
# https://sqlite.org/rtree.html
|
||||
# https://sqlite.org/geopoly.html
|
||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||
|
||||
# Support Session extension.
|
||||
# https://sqlite.org/compile.html#enable_session
|
||||
# https://sqlite.org/sessionintro.html
|
||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||
|
||||
# Support scan status functions.
|
||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||
|
||||
# Support sqlite_stmt virtual table.
|
||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||
# https://sqlite.org/stmt.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||
|
||||
# Support unknown() function.
|
||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||
|
||||
# Support unlock notification.
|
||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||
# https://sqlite.org/c3ref/unlock_notify.html
|
||||
# https://sqlite.org/unlock_notify.html
|
||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||
|
||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||
|
||||
# Support soundex() function.
|
||||
# https://sqlite.org/compile.html#soundex
|
||||
# https://sqlite.org/lang_corefunc.html#soundex
|
||||
append-cppflags -DSQLITE_SOUNDEX
|
||||
|
||||
# Support URI filenames.
|
||||
# https://sqlite.org/compile.html#use_uri
|
||||
# https://sqlite.org/uri.html
|
||||
append-cppflags -DSQLITE_USE_URI
|
||||
|
||||
# debug USE flag.
|
||||
options+=($(use_enable debug))
|
||||
|
||||
# icu USE flag.
|
||||
if use icu; then
|
||||
# Support ICU extension.
|
||||
# https://sqlite.org/compile.html#enable_icu
|
||||
append-cppflags -DSQLITE_ENABLE_ICU
|
||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
||||
fi
|
||||
|
||||
# readline USE flag.
|
||||
options+=(
|
||||
--disable-editline
|
||||
$(use_enable readline)
|
||||
)
|
||||
if use readline; then
|
||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
||||
fi
|
||||
|
||||
# secure-delete USE flag.
|
||||
if use secure-delete; then
|
||||
# Enable secure_delete pragma by default.
|
||||
# https://sqlite.org/compile.html#secure_delete
|
||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||
append-cppflags -DSQLITE_SECURE_DELETE
|
||||
fi
|
||||
|
||||
# static-libs USE flag.
|
||||
options+=($(use_enable static-libs static))
|
||||
|
||||
# tcl, test, tools USE flags.
|
||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||
options+=(
|
||||
--enable-tcl
|
||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||
)
|
||||
else
|
||||
options+=(--disable-tcl)
|
||||
fi
|
||||
|
||||
if [[ "${CHOST}" == *-mint* ]]; then
|
||||
# sys/mman.h not available in MiNTLib.
|
||||
# https://sqlite.org/compile.html#omit_wal
|
||||
append-cppflags -DSQLITE_OMIT_WAL
|
||||
fi
|
||||
|
||||
if [[ "${ABI}" == "x86" ]]; then
|
||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||
append-cflags -mfpmath=sse
|
||||
else
|
||||
append-cflags -ffloat-store
|
||||
fi
|
||||
fi
|
||||
|
||||
econf "${options[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||
fi
|
||||
|
||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
||||
emake tclsqlite3.c
|
||||
|
||||
local build_directory="$(pwd)"
|
||||
build_directory="${build_directory##*/}"
|
||||
|
||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||
|
||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||
rmdir doc/matrix{/*,} || die
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if [[ "${EUID}" -eq 0 ]]; then
|
||||
ewarn "Skipping tests due to root permissions"
|
||||
return
|
||||
fi
|
||||
|
||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
install_tool() {
|
||||
if [[ -f ".libs/${1}" ]]; then
|
||||
newbin ".libs/${1}" "${2}"
|
||||
else
|
||||
newbin "${1}" "${2}"
|
||||
fi
|
||||
}
|
||||
|
||||
install_tool changeset sqlite3-changeset
|
||||
install_tool dbdump sqlite3-db-dump
|
||||
install_tool dbhash sqlite3-db-hash
|
||||
install_tool dbtotxt sqlite3-db-to-txt
|
||||
install_tool index_usage sqlite3-index-usage
|
||||
install_tool rbu sqlite3-rbu
|
||||
install_tool scrub sqlite3-scrub
|
||||
install_tool showdb sqlite3-show-db
|
||||
install_tool showjournal sqlite3-show-journal
|
||||
install_tool showshm sqlite3-show-shm
|
||||
install_tool showstat4 sqlite3-show-stat4
|
||||
install_tool showwal sqlite3-show-wal
|
||||
install_tool sqldiff sqlite3-diff
|
||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
||||
install_tool sqlite3_checker sqlite3-checker
|
||||
install_tool sqlite3_expert sqlite3-expert
|
||||
install_tool sqltclsh sqlite3-tclsh
|
||||
|
||||
unset -f install_tool
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
doman sqlite3.1
|
||||
|
||||
if use doc; then
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||
else
|
||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||
fi
|
||||
|
||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
rm search search.d/admin || die
|
||||
rmdir search.d || die
|
||||
find -name "*~" -delete || die
|
||||
fi
|
||||
|
||||
(
|
||||
docinto html
|
||||
dodoc -r *
|
||||
)
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.35.2.ebuild
vendored
Normal file
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.35.2.ebuild
vendored
Normal file
@ -0,0 +1,434 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
||||
DOC_PV="${SRC_PV}"
|
||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
||||
fi
|
||||
|
||||
DESCRIPTION="SQL database engine"
|
||||
HOMEPAGE="https://sqlite.org/"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
||||
fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="3"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
PROPERTIES="live"
|
||||
fi
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
||||
dev-vcs/fossil"
|
||||
else
|
||||
BDEPEND="app-arch/unzip
|
||||
>=dev-lang/tcl-8.6:0"
|
||||
fi
|
||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||
tools? ( dev-lang/tcl:0= )"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
S="${WORKDIR}/${PN}"
|
||||
else
|
||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||
fi
|
||||
|
||||
_fossil_fetch() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||
|
||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
else
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||
echo
|
||||
else
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||
echo
|
||||
fi
|
||||
|
||||
(
|
||||
addwrite "${distdir}"
|
||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||
)
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
_fossil_checkout() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local branch_or_commit="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
|
||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||
fi
|
||||
|
||||
mkdir "${target_directory}" || die
|
||||
pushd "${target_directory}" > /dev/null || die
|
||||
|
||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||
echo
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
fossil_fetch() {
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||
|
||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||
if use doc; then
|
||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||
fi
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
eautoreconf
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
||||
local options=()
|
||||
|
||||
options+=(
|
||||
--enable-load-extension
|
||||
--enable-threadsafe
|
||||
)
|
||||
|
||||
# Support detection of misuse of SQLite API.
|
||||
# https://sqlite.org/compile.html#enable_api_armor
|
||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||
|
||||
# Support bytecode and tables_used virtual tables.
|
||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||
# https://sqlite.org/bytecodevtab.html
|
||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||
|
||||
# Support column metadata functions.
|
||||
# https://sqlite.org/compile.html#enable_column_metadata
|
||||
# https://sqlite.org/c3ref/column_database_name.html
|
||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||
|
||||
# Support sqlite_dbpage virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||
# https://sqlite.org/dbpage.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||
|
||||
# Support dbstat virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||
# https://sqlite.org/dbstat.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||
|
||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||
# https://sqlite.org/compile.html#enable_deserialize
|
||||
# https://sqlite.org/c3ref/serialize.html
|
||||
# https://sqlite.org/c3ref/deserialize.html
|
||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||
|
||||
# Support comments in output of EXPLAIN.
|
||||
# https://sqlite.org/compile.html#enable_explain_comments
|
||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
|
||||
# Support Full-Text Search versions 3, 4 and 5.
|
||||
# https://sqlite.org/compile.html#enable_fts3
|
||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||
# https://sqlite.org/compile.html#enable_fts4
|
||||
# https://sqlite.org/compile.html#enable_fts5
|
||||
# https://sqlite.org/fts3.html
|
||||
# https://sqlite.org/fts5.html
|
||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||
options+=(--enable-fts5)
|
||||
|
||||
# Support hidden columns.
|
||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||
|
||||
# Support JSON1 extension.
|
||||
# https://sqlite.org/compile.html#enable_json1
|
||||
# https://sqlite.org/json1.html
|
||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
||||
|
||||
# Support memsys5 memory allocator.
|
||||
# https://sqlite.org/compile.html#enable_memsys5
|
||||
# https://sqlite.org/malloc.html#memsys5
|
||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||
|
||||
# Support sqlite3_normalized_sql() function.
|
||||
# https://sqlite.org/c3ref/expanded_sql.html
|
||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||
|
||||
# Support sqlite_offset() function.
|
||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||
|
||||
# Support pre-update hook functions.
|
||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||
# https://sqlite.org/c3ref/preupdate_count.html
|
||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||
|
||||
# Support Resumable Bulk Update extension.
|
||||
# https://sqlite.org/compile.html#enable_rbu
|
||||
# https://sqlite.org/rbu.html
|
||||
append-cppflags -DSQLITE_ENABLE_RBU
|
||||
|
||||
# Support R*Trees.
|
||||
# https://sqlite.org/compile.html#enable_rtree
|
||||
# https://sqlite.org/compile.html#enable_geopoly
|
||||
# https://sqlite.org/rtree.html
|
||||
# https://sqlite.org/geopoly.html
|
||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||
|
||||
# Support Session extension.
|
||||
# https://sqlite.org/compile.html#enable_session
|
||||
# https://sqlite.org/sessionintro.html
|
||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||
|
||||
# Support scan status functions.
|
||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||
|
||||
# Support sqlite_stmt virtual table.
|
||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||
# https://sqlite.org/stmt.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||
|
||||
# Support unknown() function.
|
||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||
|
||||
# Support unlock notification.
|
||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||
# https://sqlite.org/c3ref/unlock_notify.html
|
||||
# https://sqlite.org/unlock_notify.html
|
||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||
|
||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||
|
||||
# Support soundex() function.
|
||||
# https://sqlite.org/compile.html#soundex
|
||||
# https://sqlite.org/lang_corefunc.html#soundex
|
||||
append-cppflags -DSQLITE_SOUNDEX
|
||||
|
||||
# Support URI filenames.
|
||||
# https://sqlite.org/compile.html#use_uri
|
||||
# https://sqlite.org/uri.html
|
||||
append-cppflags -DSQLITE_USE_URI
|
||||
|
||||
# debug USE flag.
|
||||
options+=($(use_enable debug))
|
||||
|
||||
# icu USE flag.
|
||||
if use icu; then
|
||||
# Support ICU extension.
|
||||
# https://sqlite.org/compile.html#enable_icu
|
||||
append-cppflags -DSQLITE_ENABLE_ICU
|
||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
||||
fi
|
||||
|
||||
# readline USE flag.
|
||||
options+=(
|
||||
--disable-editline
|
||||
$(use_enable readline)
|
||||
)
|
||||
if use readline; then
|
||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
||||
fi
|
||||
|
||||
# secure-delete USE flag.
|
||||
if use secure-delete; then
|
||||
# Enable secure_delete pragma by default.
|
||||
# https://sqlite.org/compile.html#secure_delete
|
||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||
append-cppflags -DSQLITE_SECURE_DELETE
|
||||
fi
|
||||
|
||||
# static-libs USE flag.
|
||||
options+=($(use_enable static-libs static))
|
||||
|
||||
# tcl, test, tools USE flags.
|
||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||
options+=(
|
||||
--enable-tcl
|
||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||
)
|
||||
else
|
||||
options+=(--disable-tcl)
|
||||
fi
|
||||
|
||||
if [[ "${CHOST}" == *-mint* ]]; then
|
||||
# sys/mman.h not available in MiNTLib.
|
||||
# https://sqlite.org/compile.html#omit_wal
|
||||
append-cppflags -DSQLITE_OMIT_WAL
|
||||
fi
|
||||
|
||||
if [[ "${ABI}" == "x86" ]]; then
|
||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||
append-cflags -mfpmath=sse
|
||||
else
|
||||
append-cflags -ffloat-store
|
||||
fi
|
||||
fi
|
||||
|
||||
econf "${options[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||
fi
|
||||
|
||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
||||
emake tclsqlite3.c
|
||||
|
||||
local build_directory="$(pwd)"
|
||||
build_directory="${build_directory##*/}"
|
||||
|
||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||
|
||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||
rmdir doc/matrix{/*,} || die
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if [[ "${EUID}" -eq 0 ]]; then
|
||||
ewarn "Skipping tests due to root permissions"
|
||||
return
|
||||
fi
|
||||
|
||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
install_tool() {
|
||||
if [[ -f ".libs/${1}" ]]; then
|
||||
newbin ".libs/${1}" "${2}"
|
||||
else
|
||||
newbin "${1}" "${2}"
|
||||
fi
|
||||
}
|
||||
|
||||
install_tool changeset sqlite3-changeset
|
||||
install_tool dbdump sqlite3-db-dump
|
||||
install_tool dbhash sqlite3-db-hash
|
||||
install_tool dbtotxt sqlite3-db-to-txt
|
||||
install_tool index_usage sqlite3-index-usage
|
||||
install_tool rbu sqlite3-rbu
|
||||
install_tool scrub sqlite3-scrub
|
||||
install_tool showdb sqlite3-show-db
|
||||
install_tool showjournal sqlite3-show-journal
|
||||
install_tool showshm sqlite3-show-shm
|
||||
install_tool showstat4 sqlite3-show-stat4
|
||||
install_tool showwal sqlite3-show-wal
|
||||
install_tool sqldiff sqlite3-diff
|
||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
||||
install_tool sqlite3_checker sqlite3-checker
|
||||
install_tool sqlite3_expert sqlite3-expert
|
||||
install_tool sqltclsh sqlite3-tclsh
|
||||
|
||||
unset -f install_tool
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
doman sqlite3.1
|
||||
|
||||
if use doc; then
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||
else
|
||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||
fi
|
||||
|
||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
rm search search.d/admin || die
|
||||
rmdir search.d || die
|
||||
find -name "*~" -delete || die
|
||||
fi
|
||||
|
||||
(
|
||||
docinto html
|
||||
dodoc -r *
|
||||
)
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.35.3.ebuild
vendored
Normal file
434
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.35.3.ebuild
vendored
Normal file
@ -0,0 +1,434 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
||||
DOC_PV="${SRC_PV}"
|
||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
||||
fi
|
||||
|
||||
DESCRIPTION="SQL database engine"
|
||||
HOMEPAGE="https://sqlite.org/"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
||||
fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="3"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
PROPERTIES="live"
|
||||
fi
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
||||
dev-vcs/fossil"
|
||||
else
|
||||
BDEPEND="app-arch/unzip
|
||||
>=dev-lang/tcl-8.6:0"
|
||||
fi
|
||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||
tools? ( dev-lang/tcl:0= )"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
S="${WORKDIR}/${PN}"
|
||||
else
|
||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||
fi
|
||||
|
||||
_fossil_fetch() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||
|
||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
else
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||
echo
|
||||
else
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||
echo
|
||||
fi
|
||||
|
||||
(
|
||||
addwrite "${distdir}"
|
||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||
)
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
_fossil_checkout() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local branch_or_commit="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
|
||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||
fi
|
||||
|
||||
mkdir "${target_directory}" || die
|
||||
pushd "${target_directory}" > /dev/null || die
|
||||
|
||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||
echo
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
fossil_fetch() {
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||
|
||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||
if use doc; then
|
||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||
fi
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
eautoreconf
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
||||
local options=()
|
||||
|
||||
options+=(
|
||||
--enable-load-extension
|
||||
--enable-threadsafe
|
||||
)
|
||||
|
||||
# Support detection of misuse of SQLite API.
|
||||
# https://sqlite.org/compile.html#enable_api_armor
|
||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||
|
||||
# Support bytecode and tables_used virtual tables.
|
||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||
# https://sqlite.org/bytecodevtab.html
|
||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||
|
||||
# Support column metadata functions.
|
||||
# https://sqlite.org/compile.html#enable_column_metadata
|
||||
# https://sqlite.org/c3ref/column_database_name.html
|
||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||
|
||||
# Support sqlite_dbpage virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||
# https://sqlite.org/dbpage.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||
|
||||
# Support dbstat virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||
# https://sqlite.org/dbstat.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||
|
||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||
# https://sqlite.org/compile.html#enable_deserialize
|
||||
# https://sqlite.org/c3ref/serialize.html
|
||||
# https://sqlite.org/c3ref/deserialize.html
|
||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||
|
||||
# Support comments in output of EXPLAIN.
|
||||
# https://sqlite.org/compile.html#enable_explain_comments
|
||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
|
||||
# Support Full-Text Search versions 3, 4 and 5.
|
||||
# https://sqlite.org/compile.html#enable_fts3
|
||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||
# https://sqlite.org/compile.html#enable_fts4
|
||||
# https://sqlite.org/compile.html#enable_fts5
|
||||
# https://sqlite.org/fts3.html
|
||||
# https://sqlite.org/fts5.html
|
||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||
options+=(--enable-fts5)
|
||||
|
||||
# Support hidden columns.
|
||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||
|
||||
# Support JSON1 extension.
|
||||
# https://sqlite.org/compile.html#enable_json1
|
||||
# https://sqlite.org/json1.html
|
||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
||||
|
||||
# Support memsys5 memory allocator.
|
||||
# https://sqlite.org/compile.html#enable_memsys5
|
||||
# https://sqlite.org/malloc.html#memsys5
|
||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||
|
||||
# Support sqlite3_normalized_sql() function.
|
||||
# https://sqlite.org/c3ref/expanded_sql.html
|
||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||
|
||||
# Support sqlite_offset() function.
|
||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||
|
||||
# Support pre-update hook functions.
|
||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||
# https://sqlite.org/c3ref/preupdate_count.html
|
||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||
|
||||
# Support Resumable Bulk Update extension.
|
||||
# https://sqlite.org/compile.html#enable_rbu
|
||||
# https://sqlite.org/rbu.html
|
||||
append-cppflags -DSQLITE_ENABLE_RBU
|
||||
|
||||
# Support R*Trees.
|
||||
# https://sqlite.org/compile.html#enable_rtree
|
||||
# https://sqlite.org/compile.html#enable_geopoly
|
||||
# https://sqlite.org/rtree.html
|
||||
# https://sqlite.org/geopoly.html
|
||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||
|
||||
# Support Session extension.
|
||||
# https://sqlite.org/compile.html#enable_session
|
||||
# https://sqlite.org/sessionintro.html
|
||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||
|
||||
# Support scan status functions.
|
||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||
|
||||
# Support sqlite_stmt virtual table.
|
||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||
# https://sqlite.org/stmt.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||
|
||||
# Support unknown() function.
|
||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||
|
||||
# Support unlock notification.
|
||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||
# https://sqlite.org/c3ref/unlock_notify.html
|
||||
# https://sqlite.org/unlock_notify.html
|
||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||
|
||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||
|
||||
# Support soundex() function.
|
||||
# https://sqlite.org/compile.html#soundex
|
||||
# https://sqlite.org/lang_corefunc.html#soundex
|
||||
append-cppflags -DSQLITE_SOUNDEX
|
||||
|
||||
# Support URI filenames.
|
||||
# https://sqlite.org/compile.html#use_uri
|
||||
# https://sqlite.org/uri.html
|
||||
append-cppflags -DSQLITE_USE_URI
|
||||
|
||||
# debug USE flag.
|
||||
options+=($(use_enable debug))
|
||||
|
||||
# icu USE flag.
|
||||
if use icu; then
|
||||
# Support ICU extension.
|
||||
# https://sqlite.org/compile.html#enable_icu
|
||||
append-cppflags -DSQLITE_ENABLE_ICU
|
||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
||||
fi
|
||||
|
||||
# readline USE flag.
|
||||
options+=(
|
||||
--disable-editline
|
||||
$(use_enable readline)
|
||||
)
|
||||
if use readline; then
|
||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
||||
fi
|
||||
|
||||
# secure-delete USE flag.
|
||||
if use secure-delete; then
|
||||
# Enable secure_delete pragma by default.
|
||||
# https://sqlite.org/compile.html#secure_delete
|
||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||
append-cppflags -DSQLITE_SECURE_DELETE
|
||||
fi
|
||||
|
||||
# static-libs USE flag.
|
||||
options+=($(use_enable static-libs static))
|
||||
|
||||
# tcl, test, tools USE flags.
|
||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||
options+=(
|
||||
--enable-tcl
|
||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||
)
|
||||
else
|
||||
options+=(--disable-tcl)
|
||||
fi
|
||||
|
||||
if [[ "${CHOST}" == *-mint* ]]; then
|
||||
# sys/mman.h not available in MiNTLib.
|
||||
# https://sqlite.org/compile.html#omit_wal
|
||||
append-cppflags -DSQLITE_OMIT_WAL
|
||||
fi
|
||||
|
||||
if [[ "${ABI}" == "x86" ]]; then
|
||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||
append-cflags -mfpmath=sse
|
||||
else
|
||||
append-cflags -ffloat-store
|
||||
fi
|
||||
fi
|
||||
|
||||
econf "${options[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||
fi
|
||||
|
||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
||||
emake tclsqlite3.c
|
||||
|
||||
local build_directory="$(pwd)"
|
||||
build_directory="${build_directory##*/}"
|
||||
|
||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||
|
||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||
rmdir doc/matrix{/*,} || die
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if [[ "${EUID}" -eq 0 ]]; then
|
||||
ewarn "Skipping tests due to root permissions"
|
||||
return
|
||||
fi
|
||||
|
||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
install_tool() {
|
||||
if [[ -f ".libs/${1}" ]]; then
|
||||
newbin ".libs/${1}" "${2}"
|
||||
else
|
||||
newbin "${1}" "${2}"
|
||||
fi
|
||||
}
|
||||
|
||||
install_tool changeset sqlite3-changeset
|
||||
install_tool dbdump sqlite3-db-dump
|
||||
install_tool dbhash sqlite3-db-hash
|
||||
install_tool dbtotxt sqlite3-db-to-txt
|
||||
install_tool index_usage sqlite3-index-usage
|
||||
install_tool rbu sqlite3-rbu
|
||||
install_tool scrub sqlite3-scrub
|
||||
install_tool showdb sqlite3-show-db
|
||||
install_tool showjournal sqlite3-show-journal
|
||||
install_tool showshm sqlite3-show-shm
|
||||
install_tool showstat4 sqlite3-show-stat4
|
||||
install_tool showwal sqlite3-show-wal
|
||||
install_tool sqldiff sqlite3-diff
|
||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
||||
install_tool sqlite3_checker sqlite3-checker
|
||||
install_tool sqlite3_expert sqlite3-expert
|
||||
install_tool sqltclsh sqlite3-tclsh
|
||||
|
||||
unset -f install_tool
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
doman sqlite3.1
|
||||
|
||||
if use doc; then
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||
else
|
||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||
fi
|
||||
|
||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
rm search search.d/admin || die
|
||||
rmdir search.d || die
|
||||
find -name "*~" -delete || die
|
||||
fi
|
||||
|
||||
(
|
||||
docinto html
|
||||
dodoc -r *
|
||||
)
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
Loading…
Reference in New Issue
Block a user