1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Merge the latest trunk changes into the reuse-schema branch.

FossilOrigin-Name: 5149d50f3473f2035fe6a9b0e25e33e58f95149a7a39bd19e678ed4cc7de6ccf
This commit is contained in:
drh
2024-12-24 01:05:30 +00:00
13 changed files with 105 additions and 80 deletions

View File

@@ -1103,15 +1103,6 @@ RCC = $(RCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1
TLIBS = TLIBS =
!ENDIF !ENDIF
# Flags controlling use of the in memory btree implementation
#
# SQLITE_TEMP_STORE is 0 to force temporary tables to be in a file, 1 to
# default to file, 2 to default to memory, and 3 to force temporary
# tables to always be in memory.
#
TCC = $(TCC) -DSQLITE_TEMP_STORE=1
RCC = $(RCC) -DSQLITE_TEMP_STORE=1
# Enable/disable loadable extensions, and other optional features # Enable/disable loadable extensions, and other optional features
# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*). # based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).
# The same set of OMIT and ENABLE flags should be passed to the # The same set of OMIT and ENABLE flags should be passed to the

View File

@@ -864,22 +864,27 @@ proj-if-opt-truthy threadsafe {
######################################################################## ########################################################################
# Do we want temporary databases in memory? # Do we want temporary databases in memory?
# #
apply {{} { # The test fixture likes to set SQLITE_TEMP_STORE on its own, so do
set ts [opt-val with-tempstore no] # not set that feature flag unless it was explicitly provided to the
set tsn 1 # configure script.
msg-checking "Use an in-RAM database for temporary tables? " if {[proj-opt-was-provided with-tempstore]} {
switch -exact -- $ts { apply {{} {
never { set tsn 0 } set ts [opt-val with-tempstore no]
no { set tsn 1 } set tsn 1
yes { set tsn 2 } msg-checking "Use an in-RAM database for temporary tables? "
always { set tsn 3 } switch -exact -- $ts {
default { never { set tsn 0 }
user-error "Invalid --with-tempstore value '$ts'. Use one of: never, no, yes, always" no { set tsn 1 }
yes { set tsn 2 }
always { set tsn 3 }
default {
user-error "Invalid --with-tempstore value '$ts'. Use one of: never, no, yes, always"
}
} }
} msg-result $ts
msg-result $ts sqlite-add-feature-flag -DSQLITE_TEMP_STORE=$tsn
sqlite-add-feature-flag -DSQLITE_TEMP_STORE=$tsn }}
}} }
######################################################################## ########################################################################
# sqlite-check-line-editing jumps through proverbial hoops to try to # sqlite-check-line-editing jumps through proverbial hoops to try to

View File

@@ -801,15 +801,6 @@ RCC = $(RCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1
TLIBS = TLIBS =
!ENDIF !ENDIF
# Flags controlling use of the in memory btree implementation
#
# SQLITE_TEMP_STORE is 0 to force temporary tables to be in a file, 1 to
# default to file, 2 to default to memory, and 3 to force temporary
# tables to always be in memory.
#
TCC = $(TCC) -DSQLITE_TEMP_STORE=1
RCC = $(RCC) -DSQLITE_TEMP_STORE=1
# Enable/disable loadable extensions, and other optional features # Enable/disable loadable extensions, and other optional features
# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*). # based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).
# The same set of OMIT and ENABLE flags should be passed to the # The same set of OMIT and ENABLE flags should be passed to the

View File

@@ -46,11 +46,11 @@ LSMTESTSRC = $(LSMDIR)/lsm-test/lsmtest1.c $(LSMDIR)/lsm-test/lsmtest2.c \
LSMOPTS += -fPIC -DLSM_MUTEX_PTHREADS=1 -I$(LSMDIR) -DHAVE_ZLIB LSMOPTS += -fPIC -DLSM_MUTEX_PTHREADS=1 -I$(LSMDIR) -DHAVE_ZLIB
lsm.so: $(LSMOBJ) lsm.so: $(LSMOBJ)
$(TCCX) -shared -fPIC -o lsm.so $(LSMOBJ) $(T.link) -shared -fPIC -o lsm.so $(LSMOBJ)
%.o: $(LSMDIR)/%.c $(LSMHDR) sqlite3.h %.o: $(LSMDIR)/%.c $(LSMHDR) sqlite3.h
$(TCCX) $(LSMOPTS) -c $< $(T.link) $(LSMOPTS) -c $<
lsmtest$(EXE): $(LSMOBJ) $(LSMTESTSRC) $(LSMTESTHDR) sqlite3.o lsmtest$(EXE): $(LSMOBJ) $(LSMTESTSRC) $(LSMTESTHDR) sqlite3.o
# $(TCPPX) -c $(TOP)/lsm-test/lsmtest_tdb2.cc # $(T.link) -c $(TOP)/lsm-test/lsmtest_tdb2.cc
$(TCCX) $(LSMOPTS) $(LSMTESTSRC) $(LSMOBJ) sqlite3.o -o lsmtest$(EXE) $(THREADLIB) -lz $(T.link) $(LSMOPTS) $(LSMTESTSRC) $(LSMOBJ) sqlite3.o -o lsmtest$(EXE) $(THREADLIB) -lz

View File

@@ -3775,8 +3775,8 @@ static void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg){
sqlite3_str_append(pOut, "}", 1); sqlite3_str_append(pOut, "}", 1);
} }
errCode = sqlite3_str_errcode(pOut); errCode = sqlite3_str_errcode(pOut);
sqlite3_result_text(ctx, sqlite3_str_finish(pOut), -1, sqlite3_free);
sqlite3_result_error_code(ctx, errCode); sqlite3_result_error_code(ctx, errCode);
sqlite3_result_text(ctx, sqlite3_str_finish(pOut), -1, sqlite3_free);
} }
/* This routine implements an SQL function that returns the "depth" parameter /* This routine implements an SQL function that returns the "depth" parameter

View File

@@ -1,11 +1,11 @@
C Merge\srecent\strunk\schanges\sinto\sthe\sreuse-schema\sbranch. C Merge\sthe\slatest\strunk\schanges\sinto\sthe\sreuse-schema\sbranch.
D 2024-12-16T18:35:13.852 D 2024-12-24T01:05:30.049
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
F Makefile.in ad349acf91b3569033439fe498fa197aa530cafaa01362eb7daad2f84e43d265 F Makefile.in ad349acf91b3569033439fe498fa197aa530cafaa01362eb7daad2f84e43d265
F Makefile.linux-generic bd3e3cacd369821a6241d4ea1967395c962dfe3057e38cb0a435cee0e8b789d0 F Makefile.linux-generic bd3e3cacd369821a6241d4ea1967395c962dfe3057e38cb0a435cee0e8b789d0
F Makefile.msc edc6a0332833e496e64e5beb2c9282a859fbdd6abcc2f641f7436157ad219e92 F Makefile.msc 28af67e6bd0df8d41f305cce235737d1b7e40511e9e56b8456d651c00acc7bbe
F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159 F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159
F VERSION 8dc0c3df15fd5ff0622f88fc483533fce990b1cbb2f5fb9fdfb4dbd71eef2889 F VERSION 8dc0c3df15fd5ff0622f88fc483533fce990b1cbb2f5fb9fdfb4dbd71eef2889
F art/icon-243x273.gif 9750b734f82fdb3dc43127753d5e6fbf3b62c9f4e136c2fbf573b2f57ea87af5 F art/icon-243x273.gif 9750b734f82fdb3dc43127753d5e6fbf3b62c9f4e136c2fbf573b2f57ea87af5
@@ -14,11 +14,11 @@ F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
F art/sqlite370.svg 40b7e2fe8aac3add5d56dd86ab8d427a4eca5bcb3fe4f8946cb3794e1821d531 F art/sqlite370.svg 40b7e2fe8aac3add5d56dd86ab8d427a4eca5bcb3fe4f8946cb3794e1821d531
F auto.def f2876c94403be1055db47273dde33e8fea0998b1c1d36a386f76698919ea36ad F auto.def 63dfbbc58b041d1c5c516f31a02679cce8d79123c89ad87fd2783f4ef26dedbb
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
F autoconf/Makefile.msc 0735351f6002f0bf78b73b3b7a6a120cff38573dd37c37005b682ecc44c25bc2 F autoconf/Makefile.msc ffff61fe851443015ddb6600ab69a9df503cfec25459b336be7ba8c9a9e473f8
F autoconf/README.first 6c4f34fe115ff55d4e8dbfa3cecf04a0188292f7 F autoconf/README.first 6c4f34fe115ff55d4e8dbfa3cecf04a0188292f7
F autoconf/README.txt 5e946ffb6fbdbb114c81e1bdc862df27fce8beab557d7b0421820b0fe8fc048f F autoconf/README.txt 5e946ffb6fbdbb114c81e1bdc862df27fce8beab557d7b0421820b0fe8fc048f
F autoconf/configure.ac ec7fa914c5e74ff212fe879f9bb6918e1234497e05facfb641f30c4d5893b277 F autoconf/configure.ac ec7fa914c5e74ff212fe879f9bb6918e1234497e05facfb641f30c4d5893b277
@@ -351,7 +351,7 @@ F ext/jni/src/org/sqlite/jni/wrapper1/WindowFunction.java c7d1452f9ff26175b3c19b
F ext/jni/src/tests/000-000-sanity.test c3427a0e0ac84d7cbe4c95fdc1cd4b61f9ddcf43443408f3000139478c4dc745 F ext/jni/src/tests/000-000-sanity.test c3427a0e0ac84d7cbe4c95fdc1cd4b61f9ddcf43443408f3000139478c4dc745
F ext/jni/src/tests/000-001-ignored.test e17e874c6ab3c437f1293d88093cf06286083b65bf162317f91bbfd92f961b70 F ext/jni/src/tests/000-001-ignored.test e17e874c6ab3c437f1293d88093cf06286083b65bf162317f91bbfd92f961b70
F ext/jni/src/tests/900-001-fts.test bf0ce17a8d082773450e91f2388f5bbb2dfa316d0b676c313c637a91198090f0 F ext/jni/src/tests/900-001-fts.test bf0ce17a8d082773450e91f2388f5bbb2dfa316d0b676c313c637a91198090f0
F ext/lsm1/Makefile a553b728bba6c11201b795188c5708915cc4290f02b7df6ba7e8c4c943fd5cd9 F ext/lsm1/Makefile 851a8108af2f00d6086b7be8a76fe54eabe2dd4cfd4171fd39285c5b11bee90d
F ext/lsm1/Makefile.msc f8c878b467232226de288da320e1ac71c131f5ec91e08b21f502303347260013 F ext/lsm1/Makefile.msc f8c878b467232226de288da320e1ac71c131f5ec91e08b21f502303347260013
F ext/lsm1/lsm-test/README 87ea529d2abe615e856d4714bfe8bb185e6c2771b8612aa6298588b7b43e6f86 F ext/lsm1/lsm-test/README 87ea529d2abe615e856d4714bfe8bb185e6c2771b8612aa6298588b7b43e6f86
F ext/lsm1/lsm-test/lsmtest.h cf58528ffe0cfe535e91b44584e2ec5fb1caacdabecef0d8dcf83bf83168bf28 F ext/lsm1/lsm-test/lsmtest.h cf58528ffe0cfe535e91b44584e2ec5fb1caacdabecef0d8dcf83bf83168bf28
@@ -537,7 +537,7 @@ F ext/repair/test/checkindex01.test b530f141413b587c9eb78ff734de6bb79bc3515c3350
F ext/repair/test/test.tcl 686d76d888dffd021f64260abf29a55c57b2cedfa7fc69150b42b1d6119aac3c F ext/repair/test/test.tcl 686d76d888dffd021f64260abf29a55c57b2cedfa7fc69150b42b1d6119aac3c
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761 F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
F ext/rtree/geopoly.c 0dd4775e896cee6067979d67aff7c998e75c2c9d9cd8d62a1a790c09cde7adca F ext/rtree/geopoly.c 0dd4775e896cee6067979d67aff7c998e75c2c9d9cd8d62a1a790c09cde7adca
F ext/rtree/rtree.c e002d8c58bf128d812db662ecc72b61c00ff14408ec807e103d5312a6d29817a F ext/rtree/rtree.c 4c58755830a0902435322bf61b2994ae02951a039daefb31cff9457d3e2aa201
F ext/rtree/rtree.h 4a690463901cb5e6127cf05eb8e642f127012fd5003830dbc974eca5802d9412 F ext/rtree/rtree.h 4a690463901cb5e6127cf05eb8e642f127012fd5003830dbc974eca5802d9412
F ext/rtree/rtree1.test e0608db762b2aadca0ecb6f97396cf66244490adc3ba88f2a292b27be3e1da3e F ext/rtree/rtree1.test e0608db762b2aadca0ecb6f97396cf66244490adc3ba88f2a292b27be3e1da3e
F ext/rtree/rtree2.test 9d9deddbb16fd0c30c36e6b4fdc3ee3132d765567f0f9432ee71e1303d32603d F ext/rtree/rtree2.test 9d9deddbb16fd0c30c36e6b4fdc3ee3132d765567f0f9432ee71e1303d32603d
@@ -725,13 +725,13 @@ F src/callback.c fbd4e8247f1a7f37aec721bde0e312e79cc3bfa41f55a59930bc876ca6baf45
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
F src/ctime.c d35723024b963edce9c0fad5b3303e8bb9266083784844baed10a6dedfe26f3b F src/ctime.c d35723024b963edce9c0fad5b3303e8bb9266083784844baed10a6dedfe26f3b
F src/date.c 89ce1ff20512a7fa5070ba6e7dd5c171148ca7d580955795bf97c79c2456144a F src/date.c 89ce1ff20512a7fa5070ba6e7dd5c171148ca7d580955795bf97c79c2456144a
F src/dbpage.c 6c52074b0edb914d526c85541ca0f1fd23822b5dac39b6ee9b7f375d9fa592e9 F src/dbpage.c b1aeb47c1004f26c39c6800f0045b8d729d232aca24f6aa430c491b83003d033
F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
F src/delete.c 03a77ba20e54f0f42ebd8eddf15411ed6bdb06a2c472ac4b6b336521bf7cea42 F src/delete.c 03a77ba20e54f0f42ebd8eddf15411ed6bdb06a2c472ac4b6b336521bf7cea42
F src/expr.c 3329173aacc6c37da3971b6253827799b32e301673be00126df8271bf018e15f F src/expr.c 3329173aacc6c37da3971b6253827799b32e301673be00126df8271bf018e15f
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c 928ed2517e8732113d2b9821aa37af639688d752f4ea9ac6e0e393d713eeb76f F src/fkey.c 928ed2517e8732113d2b9821aa37af639688d752f4ea9ac6e0e393d713eeb76f
F src/func.c 49489dcce46d2d491cedb451e974264150c473e5f5bba448498a9aa4c1993537 F src/func.c e6e997efb9ffaf8b07842e745159695669fdfa020f03635a2f774adab8b0f4af
F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b
F src/hash.c 9ee4269fb1d6632a6fecfb9479c93a1f29271bddbbaf215dd60420bcb80c7220 F src/hash.c 9ee4269fb1d6632a6fecfb9479c93a1f29271bddbbaf215dd60420bcb80c7220
F src/hash.h 3340ab6e1d13e725571d7cee6d3e3135f0779a7d8e76a9ce0a85971fa3953c51 F src/hash.h 3340ab6e1d13e725571d7cee6d3e3135f0779a7d8e76a9ce0a85971fa3953c51
@@ -1260,7 +1260,7 @@ F test/fts4umlaut.test fcaca4471de7e78c9d1f7e8976e3e8704d7d8ad979d57a739d00f3f75
F test/fts4unicode.test 82a9c16b68ba2f358a856226bb2ee02f81583797bc4744061c54401bf1a0f4c9 F test/fts4unicode.test 82a9c16b68ba2f358a856226bb2ee02f81583797bc4744061c54401bf1a0f4c9
F test/fts4upfrom.test f25835162c989dffd5e2ef91ec24c4848cc9973093e2d492d1c7b32afac1b49d F test/fts4upfrom.test f25835162c989dffd5e2ef91ec24c4848cc9973093e2d492d1c7b32afac1b49d
F test/full.test 6b3c8fb43c6beab6b95438c1675374b95fab245d F test/full.test 6b3c8fb43c6beab6b95438c1675374b95fab245d
F test/func.test e643522c6c67e18b14ac6453f28b39daa7e01d4cdf3b17bee6ec544804be85af F test/func.test 15f686741608294340bbea9f35f751074b4cf7df3797724dda40a9f4905ddbe1
F test/func2.test 69f6ae3751b4ec765bdc3b803c0a255aa0f693f28f44805bef03e6b4a3fd242f F test/func2.test 69f6ae3751b4ec765bdc3b803c0a255aa0f693f28f44805bef03e6b4a3fd242f
F test/func3.test 600a632c305a88f3946d38f9a51efe145c989b2e13bd2b2a488db47fe76bab6a F test/func3.test 600a632c305a88f3946d38f9a51efe145c989b2e13bd2b2a488db47fe76bab6a
F test/func4.test a02e695f62beb31cb092dccf6873ff97543407fff97a5f3ec4da70b5b337bc84 F test/func4.test a02e695f62beb31cb092dccf6873ff97543407fff97a5f3ec4da70b5b337bc84
@@ -1675,7 +1675,7 @@ F test/softheap1.test 843cd84db9891b2d01b9ab64cef3e9020f98d087
F test/sort.test f86751134159abb5e5fd4381a0d7038c91013638cd1e3fa1d7850901f6df6196 F test/sort.test f86751134159abb5e5fd4381a0d7038c91013638cd1e3fa1d7850901f6df6196
F test/sort2.test 2f8c66402a03adebe77ce7aafca129fbf32df27d6c9b8f7a9f1b958e39f56da8 F test/sort2.test 2f8c66402a03adebe77ce7aafca129fbf32df27d6c9b8f7a9f1b958e39f56da8
F test/sort3.test 1480ed7c4c157682542224e05e3b75faf4a149e5 F test/sort3.test 1480ed7c4c157682542224e05e3b75faf4a149e5
F test/sort4.test cca6f4b0b5255882645bbbe346a6a9f4a5c7b6a18513a6a7bf4ac1c4761ddc19 F test/sort4.test c7a88629aecc8eec3c919eda54b221da5cf7a1b48f0cd372e7e832188d6737d8
F test/sort5.test 6b43ae0e2169b5ceed441844492e55ba7f1ae0790528395ddf7888ab3094525d F test/sort5.test 6b43ae0e2169b5ceed441844492e55ba7f1ae0790528395ddf7888ab3094525d
F test/sorterref.test 9a606c86a4c682db5eeaaefa0565b52102778db53e48ca7101cd4f9ebcc0ad94 F test/sorterref.test 9a606c86a4c682db5eeaaefa0565b52102778db53e48ca7101cd4f9ebcc0ad94
F test/sortfault.test d4ccf606a0c77498e2beb542764fd9394acb4d66 F test/sortfault.test d4ccf606a0c77498e2beb542764fd9394acb4d66
@@ -1693,7 +1693,7 @@ F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
F test/spellfix4.test 51c7c26514ade169855c66bcf130bd5acfb4d7fd090cc624645ab275ae6a41fb F test/spellfix4.test 51c7c26514ade169855c66bcf130bd5acfb4d7fd090cc624645ab275ae6a41fb
F test/sqldiff1.test 1b7ab4f312442c5cc6b3a5f299fa8ca051416d1dd173cb1126fd51bf64f2c3fb F test/sqldiff1.test 1b7ab4f312442c5cc6b3a5f299fa8ca051416d1dd173cb1126fd51bf64f2c3fb
F test/sqllimits1.test 7fa5027c2686e0a752f9a35616966eabfb9959ce041701b091932692c4bb6448 F test/sqllimits1.test 408131e4975d61868711c83f101a56d4602313cc5cae88d3eee81c1da364fd89
F test/sqllog.test 6af6cb0b09f4e44e1917e06ce85be7670302517a F test/sqllog.test 6af6cb0b09f4e44e1917e06ce85be7670302517a
F test/starschema1.test a84205f97fe278a015ac39546c86b97228d22043af28f3a2ef809e8d5637ce1d F test/starschema1.test a84205f97fe278a015ac39546c86b97228d22043af28f3a2ef809e8d5637ce1d
F test/startup.c 1beb5ca66fcc0fce95c3444db9d1674f90fc605499a574ae2434dcfc10d22805 F test/startup.c 1beb5ca66fcc0fce95c3444db9d1674f90fc605499a574ae2434dcfc10d22805
@@ -2143,7 +2143,7 @@ F tool/genfkey.test b6afd7b825d797a1e1274f519ab5695373552ecad5cd373530c63533638a
F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce
F tool/index_usage.c f62a0c701b2c7ff2f3e21d206f093c123f222dbf07136a10ffd1ca15a5c706c5 F tool/index_usage.c f62a0c701b2c7ff2f3e21d206f093c123f222dbf07136a10ffd1ca15a5c706c5
F tool/kvtest-speed.sh 4761a9c4b3530907562314d7757995787f7aef8f F tool/kvtest-speed.sh 4761a9c4b3530907562314d7757995787f7aef8f
F tool/lemon.c d048516b2c3ad4119b1c1154a73f4f9435b275fea076318959f817effe23b827 F tool/lemon.c 2418ee31f65764d150f7dd87ef00b4408f1b01a55db0b30bed673a3e336ae718
F tool/lempar.c e6b649778e5c027c8365ff01d7ef39297cd7285fa1f881cce31792689541e79f F tool/lempar.c e6b649778e5c027c8365ff01d7ef39297cd7285fa1f881cce31792689541e79f
F tool/libvers.c caafc3b689638a1d88d44bc5f526c2278760d9b9 F tool/libvers.c caafc3b689638a1d88d44bc5f526c2278760d9b9
F tool/loadfts.c c3c64e4d5e90e8ba41159232c2189dba4be7b862 F tool/loadfts.c c3c64e4d5e90e8ba41159232c2189dba4be7b862
@@ -2214,8 +2214,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 58563686eba573c13b11cf823bbab3392f67d968322fd6ed9076d658d403953c 8f725472b0fe62359a4cd3237b43d7b834e042d8ce425abde06e3ed6c62dbafa P ebbc6752bb50d709505402ff5736890a9970f15498552ecfbf01401b97506c90 286559dfb3ad01fcf34360991a108dbe6bf81e7919c461ada6c691ee8f43868f
R f06f6704c1bc80595884c85bc94df4fe R f782b7cb9b0e94e6a226a0176fb388d7
U drh U drh
Z ec60b23cd0cd335aa9679814588b0035 Z 210449dde477f151712781a4a6ad14ef
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
ebbc6752bb50d709505402ff5736890a9970f15498552ecfbf01401b97506c90 5149d50f3473f2035fe6a9b0e25e33e58f95149a7a39bd19e678ed4cc7de6ccf

View File

@@ -428,7 +428,11 @@ static int dbpageSync(sqlite3_vtab *pVtab){
if( pTab->pgnoTrunc>0 ){ if( pTab->pgnoTrunc>0 ){
Btree *pBt = pTab->db->aDb[pTab->iDbTrunc].pBt; Btree *pBt = pTab->db->aDb[pTab->iDbTrunc].pBt;
Pager *pPager = sqlite3BtreePager(pBt); Pager *pPager = sqlite3BtreePager(pBt);
sqlite3PagerTruncateImage(pPager, pTab->pgnoTrunc); sqlite3BtreeEnter(pBt);
if( pTab->pgnoTrunc<sqlite3BtreeLastPage(pBt) ){
sqlite3PagerTruncateImage(pPager, pTab->pgnoTrunc);
}
sqlite3BtreeLeave(pBt);
} }
pTab->pgnoTrunc = 0; pTab->pgnoTrunc = 0;
return SQLITE_OK; return SQLITE_OK;

View File

@@ -363,7 +363,7 @@ static void substrFunc(
return; return;
} }
p0type = sqlite3_value_type(argv[0]); p0type = sqlite3_value_type(argv[0]);
p1 = sqlite3_value_int(argv[1]); p1 = sqlite3_value_int64(argv[1]);
if( p0type==SQLITE_BLOB ){ if( p0type==SQLITE_BLOB ){
len = sqlite3_value_bytes(argv[0]); len = sqlite3_value_bytes(argv[0]);
z = sqlite3_value_blob(argv[0]); z = sqlite3_value_blob(argv[0]);
@@ -388,7 +388,7 @@ static void substrFunc(
if( p1==0 ) p1 = 1; /* <rdar://problem/6778339> */ if( p1==0 ) p1 = 1; /* <rdar://problem/6778339> */
#endif #endif
if( argc==3 ){ if( argc==3 ){
p2 = sqlite3_value_int(argv[2]); p2 = sqlite3_value_int64(argv[2]);
if( p2<0 ){ if( p2<0 ){
p2 = -p2; p2 = -p2;
negP2 = 1; negP2 = 1;
@@ -427,9 +427,11 @@ static void substrFunc(
sqlite3_result_text64(context, (char*)z, z2-z, SQLITE_TRANSIENT, sqlite3_result_text64(context, (char*)z, z2-z, SQLITE_TRANSIENT,
SQLITE_UTF8); SQLITE_UTF8);
}else{ }else{
if( p1+p2>len ){ if( p1>=len ){
p1 = p2 = 0;
}else if( p2>len-p1 ){
p2 = len-p1; p2 = len-p1;
if( p2<0 ) p2 = 0; assert( p2>0 );
} }
sqlite3_result_blob64(context, (char*)&z[p1], (u64)p2, SQLITE_TRANSIENT); sqlite3_result_blob64(context, (char*)&z[p1], (u64)p2, SQLITE_TRANSIENT);
} }
@@ -440,13 +442,13 @@ static void substrFunc(
*/ */
#ifndef SQLITE_OMIT_FLOATING_POINT #ifndef SQLITE_OMIT_FLOATING_POINT
static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){
int n = 0; i64 n = 0;
double r; double r;
char *zBuf; char *zBuf;
assert( argc==1 || argc==2 ); assert( argc==1 || argc==2 );
if( argc==2 ){ if( argc==2 ){
if( SQLITE_NULL==sqlite3_value_type(argv[1]) ) return; if( SQLITE_NULL==sqlite3_value_type(argv[1]) ) return;
n = sqlite3_value_int(argv[1]); n = sqlite3_value_int64(argv[1]);
if( n>30 ) n = 30; if( n>30 ) n = 30;
if( n<0 ) n = 0; if( n<0 ) n = 0;
} }
@@ -461,7 +463,7 @@ static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){
}else if( n==0 ){ }else if( n==0 ){
r = (double)((sqlite_int64)(r+(r<0?-0.5:+0.5))); r = (double)((sqlite_int64)(r+(r<0?-0.5:+0.5)));
}else{ }else{
zBuf = sqlite3_mprintf("%!.*f",n,r); zBuf = sqlite3_mprintf("%!.*f",(int)n,r);
if( zBuf==0 ){ if( zBuf==0 ){
sqlite3_result_error_nomem(context); sqlite3_result_error_nomem(context);
return; return;

View File

@@ -117,6 +117,15 @@ do_test func-2.9 {
do_test func-2.10 { do_test func-2.10 {
execsql {SELECT substr(a,2,2) FROM t2} execsql {SELECT substr(a,2,2) FROM t2}
} {{} {} 45 {} 78} } {{} {} 45 {} 78}
do_test func-2.11 {
execsql {SELECT substr('abcdefg',0x100000001,2)}
} {{}}
do_test func-2.12 {
execsql {SELECT substr('abcdefg',1,0x100000002)}
} {abcdefg}
do_test func-2.13 {
execsql {SELECT quote(substr(x'313233343536373839',0x7ffffffffffffffe,5))}
} {X''}
# Only do the following tests if TCL has UTF-8 capabilities # Only do the following tests if TCL has UTF-8 capabilities
# #
@@ -339,6 +348,9 @@ ifcapable floatingpoint {
do_test func-4.39 { do_test func-4.39 {
string tolower [db eval {SELECT round(1e500), round(-1e500);}] string tolower [db eval {SELECT round(1e500), round(-1e500);}]
} {inf -inf} } {inf -inf}
do_execsql_test func-4.40 {
SELECT round(123.456 , 4294967297);
} {123.456}
} }
# Test the upper() and lower() functions # Test the upper() and lower() functions

View File

@@ -26,20 +26,22 @@ sqlite3_initialize
sqlite3 db test.db sqlite3 db test.db
# Configure the sorter to use 3 background threads. if {![string match *MAX_WORKER_THREADS=0* [db eval {PRAGMA compile_options}]]} {
# # Configure the sorter to use 3 background threads.
# EVIDENCE-OF: R-19249-32353 SQLITE_LIMIT_WORKER_THREADS The maximum #
# number of auxiliary worker threads that a single prepared statement # EVIDENCE-OF: R-19249-32353 SQLITE_LIMIT_WORKER_THREADS The maximum
# may start. # number of auxiliary worker threads that a single prepared statement
# # may start.
do_test sort4-init001 { #
db eval {PRAGMA threads=5} do_test sort4-init001 {
sqlite3_limit db SQLITE_LIMIT_WORKER_THREADS -1 db eval {PRAGMA threads=5}
} {5} sqlite3_limit db SQLITE_LIMIT_WORKER_THREADS -1
do_test sort4-init002 { } {5}
sqlite3_limit db SQLITE_LIMIT_WORKER_THREADS 3 do_test sort4-init002 {
db eval {PRAGMA threads} sqlite3_limit db SQLITE_LIMIT_WORKER_THREADS 3
} {3} db eval {PRAGMA threads}
} {3}
}
# Minimum number of seconds to run for. If the value is 0, each test # Minimum number of seconds to run for. If the value is 0, each test

View File

@@ -78,8 +78,8 @@ do_test sqllimits1-1.23 {
# Minimum value for SQLITE_LIMIT_LENGTH is 30 # Minimum value for SQLITE_LIMIT_LENGTH is 30
# #
do_test sqllimits1-1.30 { do_test sqllimits1-1.30 {
sqlite3_limit db SQLITE_LIMIT_LENGTH 1 set prior [sqlite3_limit db SQLITE_LIMIT_LENGTH 1]
sqlite3_limit db SQLITE_LIMIT_LENGTH 1000000000 sqlite3_limit db SQLITE_LIMIT_LENGTH $prior
} 30 } 30

View File

@@ -1628,6 +1628,23 @@ static void handle_D_option(char *z){
*z = 0; *z = 0;
} }
/* This routine is called with the argument to each -U command-line option.
** Omit a previously defined macro.
*/
static void handle_U_option(char *z){
int i;
for(i=0; i<nDefine; i++){
if( strcmp(azDefine[i],z)==0 ){
nDefine--;
if( i<nDefine ){
azDefine[i] = azDefine[nDefine];
bDefineUsed[i] = bDefineUsed[nDefine];
}
break;
}
}
}
/* Rember the name of the output directory /* Rember the name of the output directory
*/ */
static char *outputDir = NULL; static char *outputDir = NULL;
@@ -1754,6 +1771,7 @@ int main(int argc, char **argv){
"Generate the *.sql file describing the parser tables."}, "Generate the *.sql file describing the parser tables."},
{OPT_FLAG, "x", (char*)&version, "Print the version number."}, {OPT_FLAG, "x", (char*)&version, "Print the version number."},
{OPT_FSTR, "T", (char*)handle_T_option, "Specify a template file."}, {OPT_FSTR, "T", (char*)handle_T_option, "Specify a template file."},
{OPT_FSTR, "U", (char*)handle_U_option, "Undefine a macro."},
{OPT_FSTR, "W", 0, "Ignored. (Placeholder for '-W' compiler options.)"}, {OPT_FSTR, "W", 0, "Ignored. (Placeholder for '-W' compiler options.)"},
{OPT_FLAG,0,0,0} {OPT_FLAG,0,0,0}
}; };