OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_DBPAGE_VTAB=1
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_DBSTAT_VTAB=1
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_BYTECODE_VTAB=1
+OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_CARRAY=1
!ENDIF
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
!ENDIF
# Always enable math functions on Windows
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_MATH_FUNCTIONS
+OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_PERCENTILE
# Should the rbu extension be enabled? If so, add compilation options
# to enable it.
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_MEMSYS5
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_OSS_FUZZ
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_BYTECODE_VTAB
+FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_CARRAY
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_DBPAGE_VTAB
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_DBSTAT_VTAB
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_ENABLE_BYTECODE_VTAB
# The list of feature --flags which the --all flag implies. This
# requires special handling in a few places.
#
- all-flag-enables {fts4 fts5 rtree geopoly session dbpage dbstat}
+ all-flag-enables {fts4 fts5 rtree geopoly session dbpage dbstat carray}
#
# Default value for the --all flag. Can hypothetically be modified
session => {Enable the SESSION extension}
dbpage => {Enable the sqlite3_dbpage extension}
dbstat => {Enable the sqlite3_dbstat extension}
+ carray=1 => {Disable the CARRAY extension}
all=$::sqliteConfig(all-flag-default) => {$allFlagHelp}
largefile=1
=> {This legacy flag has no effect on the library but may influence
column-metadata -DSQLITE_ENABLE_COLUMN_METADATA {}
dbpage -DSQLITE_ENABLE_DBPAGE_VTAB {}
dbstat -DSQLITE_ENABLE_DBSTAT_VTAB {}
+ carray -DSQLITE_ENABLE_CARRAY {}
}] {
if {$boolFlag ni $::autosetup(options)} {
# Skip flags which are in the canonical build but not
}
define LDFLAGS_MATH [get-define lib_ceil]
undefine lib_ceil
- sqlite-add-feature-flag -DSQLITE_ENABLE_MATH_FUNCTIONS
+ sqlite-add-feature-flag -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_PERCENTILE
msg-result "Enabling math SQL functions"
} {
define LDFLAGS_MATH ""
FUZZCHECK_OPT += \
-DSQLITE_OSS_FUZZ \
-DSQLITE_ENABLE_BYTECODE_VTAB \
+ -DSQLITE_ENABLE_CARRAY \
-DSQLITE_ENABLE_DBPAGE_VTAB \
-DSQLITE_ENABLE_DBSTAT_VTAB \
-DSQLITE_ENABLE_DESERIALIZE \
-C Regenerate\sautoconf/Makefile.msc\sto\ssquelch\sa\s'make\stest'\swarning.
-D 2025-10-10T14:00:27.843
+C Makefile\supdates\sto\ssuppose\scarray()\sand\spercentile().\s\sAdd\sCarray\sto\nthe\sCLI\sand\sfuzzcheck\sto\ssupport\sdebugging.
+D 2025-10-10T14:22:05.888
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
F Makefile.in 3ce07126d7e87c7464301482e161fdae6a51d0a2aa06b200b8f0000ef4d6163b
F Makefile.linux-generic bd3e3cacd369821a6241d4ea1967395c962dfe3057e38cb0a435cee0e8b789d0
-F Makefile.msc 8560c2eb70e6d94e8a90cc933be35e3f65fc8456e0295429a890744aec77a0b7
+F Makefile.msc 8dd676302f3165984c046f81af14b6676a334418fa30255efaf439f8033042fa
F README.md e28077cfbef795e99c9c75ed95aa7257a1166709b562076441a8506ac421b7c1
F VERSION 16eddb43056a79c1977427ab7a05f3457c373fa159dcdced8754eb89ce7e06b8
F art/icon-243x273.gif 9750b734f82fdb3dc43127753d5e6fbf3b62c9f4e136c2fbf573b2f57ea87af5
F autosetup/jimsh0.c a57c16e65dcffc9c76e496757cb3f7fb47e01ecbd1631a0a5e01751fc856f049
F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
F autosetup/proj.tcl ec30c4bc301b6e9eb937655744a7315f863f804fc66400d975bcf9352ac96a1d
-F autosetup/sqlite-config.tcl b274cecb070f7e1b85c87b2e00afb0a3f3a28f373d8cd67d34ba40fa81482be7
+F autosetup/sqlite-config.tcl a616f2e33f1921a5bd7932312a88812a01f80af3d76250e479836e0e15ce9ee1
F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9
F autosetup/teaish/README.txt b40071e6f8506500a2f7f71d5fc69e0bf87b9d7678dd9da1e5b4d0acbf40b1ca
F autosetup/teaish/core.tcl aee092fc71986d1272b835ea7492bb55ffc213a289502e4f14da80cf67b7e3c3
F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36e0f6991460fff0cb7c15079454679a4e2
F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61
F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
-F main.mk cf5f466db969a30f268c8baa0615799ba41ce92116f0d380ae480629fc49b9d2
+F main.mk 00dd631c66c1f7922b2d691631163899eff1c3d1da780ff37a62f8d997b368e1
F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421
F src/resolve.c f8d1d011aba0964ff1bdccd049d4d2c2fec217efd90d202a4bb775e926b2c25d
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c b95181711d59c36d9789e67f76c4cfec64b99f9629a50be5e6566e117b87d957
-F src/shell.c.in 01e4a3ee9de00d423c8da51f2b0395b002707671f0fb8ab8e43e7c80718fa853
+F src/shell.c.in c63c9d77565c43c02a889164486edbfcdcdf4417fbad6780e4b0ec8aefa28d08
F src/sqlite.h.in 5706a425081d1712be81b31456801919c5760087cf3de32bbf86885994db26fe
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F src/sqlite3ext.h 3f0c4ed6934e7309a61c6f3c30f70a30a5b869f785bb3d9f721a36c5e4359126
F test/fuzz4.test c229bcdb45518a89e1d208a21343e061503460ac69fae1539320a89f572eb634
F test/fuzz_common.tcl b7197de6ed1ee8250a4f82d67876f4561b42ee8cbbfc6160dcb66331bad3f830
F test/fuzz_malloc.test f348276e732e814802e39f042b1f6da6362a610af73a528d8f76898fde6b22f2
-F test/fuzzcheck.c 6cb29fbcf02b666fc99a0069d0026728738157d2c26ba2007bbc88010036b618
+F test/fuzzcheck.c 02824a0a8d84242f616e4ffd249b75eade48ecb7d10c18d2ac19a38218ff9c13
F test/fuzzdata1.db 3e86d9cf5aea68ddb8e27c02d7dfdaa226347426c7eb814918e4d95475bf8517
F test/fuzzdata2.db 128b3feeb78918d075c9b14b48610145a0dd4c8d6f1ca7c2870c7e425f5bf31f
F test/fuzzdata3.db c6586d3e3cef0fbc18108f9bb649aa77bfc38aba
F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8
F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14
F test/fuzzerfault.test f64c4aef4c9e9edf1d6dc0d3f1e65dcc81e67c996403c88d14f09b74807a42bc
-F test/fuzzinvariants.c e9b28a91d7d413f2db8efa622e24869ea87c28b048dd7bc2ae81bb6e28e45707
+F test/fuzzinvariants.c 3ddfec7f5b970b018f1a982532de905cf180e0c1e48cd653be9365d3e6177625
F test/gcfault.test 4ea410ac161e685f17b19e1f606f58514a2850e806c65b846d05f60d436c5b0d
F test/gencol1.test ceb3163b59cb77f4ad57ae4f01a143ce36b06fdd6a8dab1149235db89979ffd8
F test/genesis.tcl 1e2e2e8e5cc4058549a154ff1892fe5c9de19f98
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 767a667b91caff2e789179231f13a0d260c9837020c0ce1553b86e88cf9aa352
-R d7498807ae3cf83c51ba1d2dd5190500
-U stephan
-Z e4a83425b638919adf3527ae0aeea1f3
+P f7f55dce184c433b7774ab569caaeae5994c63421de01e9ea36aa1dbecb2d579
+R c5698e060db125c860054e5489c68f46
+U drh
+Z 175ce6f44b9f88153f6b5bd455ca30e5
# Remove this line to create a well-formed Fossil manifest.
-f7f55dce184c433b7774ab569caaeae5994c63421de01e9ea36aa1dbecb2d579
+fe9cf68b513d1e8cfcde90f1982a7f4123f54e3ebb004d961a99bdf6bec03a32
memcpy(zBuf, &zVar[6], szVar-5);
sqlite3_bind_text64(pStmt, i, zBuf, szVar-6, sqlite3_free, SQLITE_UTF8);
}
+#ifdef SQLITE_ENABLE_CARRAY
+ }else if( strncmp(zVar, "$carray_", 8)==0 ){
+ static char *azColorNames[] = {
+ "azure", "black", "blue", "brown", "cyan", "fuchsia", "gold",
+ "gray", "green", "indigo", "khaki", "lime", "magenta", "maroon",
+ "navy", "olive", "orange", "pink", "purple", "red", "silver",
+ "tan", "teal", "violet", "white", "yellow"
+ };
+ static int aPrimes[] = {
+ 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
+ 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
+ };
+ /* Special bindings: carray($carray_clr), carray($carray_primes)
+ ** with --unsafe-testing: carray($carray_clr_p,26,'char*'),
+ ** carray($carray_primes_p,26,'int32')
+ */
+ if( strcmp(zVar+8,"clr")==0 ){
+ sqlite3_carray_bind(pStmt,i,azColorNames,26,SQLITE_CARRAY_TEXT,0);
+ }else if( strcmp(zVar+8,"primes")==0 ){
+ sqlite3_carray_bind(pStmt,i,aPrimes,26,SQLITE_CARRAY_INT32,0);
+ }else if( strcmp(zVar+8,"clr_p")==0
+ && ShellHasFlag(pArg,SHFLG_TestingMode) ){
+ sqlite3_bind_pointer(pStmt,i,azColorNames,"carray",0);
+ }else if( strcmp(zVar+8,"primes_p")==0
+ && ShellHasFlag(pArg,SHFLG_TestingMode) ){
+ sqlite3_bind_pointer(pStmt,i,aPrimes,"carray",0);
+ }else{
+ sqlite3_bind_null(pStmt, i);
+ }
+#endif
}else{
sqlite3_bind_null(pStmt, i);
}
}
return rc;
}
+
/*
** Special parameter binding, for testing and debugging purposes.
**
-** $int_NNN -> integer value NNN
-** $text_TTTT -> floating point value TTT with destructor
+** $int_NNN -> integer value NNN
+** $text_TTTT -> floating point value TTT with destructor
+** $carray_clr -> First argument to carray() for color names
+** $carray_primes -> First argument to carray() for prime numbers
*/
static void bindDebugParameters(sqlite3_stmt *pStmt){
int nVar = sqlite3_bind_parameter_count(pStmt);
for(i=1; i<=nVar; i++){
const char *zVar = sqlite3_bind_parameter_name(pStmt, i);
if( zVar==0 ) continue;
+#ifdef SQLITE_ENABLE_CARRAY
+ if( strcmp(zVar,"$carray_clr")==0 ){
+ static char *azColorNames[] = {
+ "azure", "black", "blue", "brown", "cyan", "fuchsia", "gold",
+ "gray", "green", "indigo", "khaki", "lime", "magenta", "maroon",
+ "navy", "olive", "orange", "pink", "purple", "red", "silver",
+ "tan", "teal", "violet", "white", "yellow"
+ };
+ sqlite3_carray_bind(pStmt,i,azColorNames,26,SQLITE_CARRAY_TEXT,0);
+ }else
+ if( strcmp(zVar,"$carray_primes")==0 ){
+ static int aPrimes[] = {
+ 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
+ 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
+ };
+ sqlite3_carray_bind(pStmt,i,aPrimes,26,SQLITE_CARRAY_INT32,0);
+ }else
+#endif
if( strncmp(zVar, "$int_", 5)==0 ){
sqlite3_bind_int(pStmt, i, atoi(&zVar[5]));
}else
/*
** Special parameter binding, for testing and debugging purposes.
**
-** $int_NNN -> integer value NNN
-** $text_TTTT -> floating point value TTT with destructor
+** $int_NNN -> integer value NNN
+** $text_TTTT -> floating point value TTT with destructor
+** $carray_clr -> First argument to carray() for color names
+** $carray_primes -> First argument to carray() for prime numbers
*/
static void bindDebugParameters(sqlite3_stmt *pStmt){
int nVar = sqlite3_bind_parameter_count(pStmt);
for(i=1; i<=nVar; i++){
const char *zVar = sqlite3_bind_parameter_name(pStmt, i);
if( zVar==0 ) continue;
+#ifdef SQLITE_ENABLE_CARRAY
+ if( strcmp(zVar,"$carray_clr")==0 ){
+ static char *azColorNames[] = {
+ "azure", "black", "blue", "brown", "cyan", "fuchsia", "gold",
+ "gray", "green", "indigo", "khaki", "lime", "magenta", "maroon",
+ "navy", "olive", "orange", "pink", "purple", "red", "silver",
+ "tan", "teal", "violet", "white", "yellow"
+ };
+ sqlite3_carray_bind(pStmt,i,azColorNames,26,SQLITE_CARRAY_TEXT,0);
+ }else
+ if( strcmp(zVar,"$carray_primes")==0 ){
+ static int aPrimes[] = {
+ 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
+ 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
+ };
+ sqlite3_carray_bind(pStmt,i,aPrimes,26,SQLITE_CARRAY_INT32,0);
+ }else
+#endif
if( strncmp(zVar, "$int_", 5)==0 ){
sqlite3_bind_int(pStmt, i, atoi(&zVar[5]));
}else