]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix #ifdefs so it compiles cleanly with all SQLITE_OMIT compile-time options.
authordrh <drh@noemail.net>
Fri, 17 Jan 2020 19:14:08 +0000 (19:14 +0000)
committerdrh <drh@noemail.net>
Fri, 17 Jan 2020 19:14:08 +0000 (19:14 +0000)
Update compile-time option testing.

FossilOrigin-Name: 7584e4b649d57767aac3906da6b06549d5b772aaa69f469c623ae5da834d54d5

manifest
manifest.uuid
src/func.c
src/insert.c
src/main.c
src/select.c
src/util.c
src/vdbemem.c
tool/omittest.tcl

index e4296d5c2ef95b9dc4a271a5dd9f55514f83885a..535246c54be9a2e0827e79d50978732a0ac387c7 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improved\srounding\sin\sthe\s'unixepoch'\sfeature\sof\sthe\sdate\sand\stime\sfunctions.
-D 2020-01-17T16:47:07.892
+C Fix\s#ifdefs\sso\sit\scompiles\scleanly\swith\sall\sSQLITE_OMIT\scompile-time\soptions.\nUpdate\scompile-time\soption\stesting.
+D 2020-01-17T19:14:08.891
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -486,16 +486,16 @@ F src/delete.c a5c59b9c0251cf7682bc52af0d64f09b1aefc6781a63592c8f1136f7b73c66e4
 F src/expr.c 003c59158b33d7f3b198122cb0d1e13c06517cc3932e56b42283eb0e96696d66
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 92a248ec0fa4ed8ab60c98d9b188ce173aaf218f32e7737ba77deb2a684f9847
-F src/func.c 259496e4856bd0a3215d16804992f3339f3e8db29f129a5a7285c341488bbe9c
+F src/func.c 92249abc3fd7e52b249ca8eb2d15a617f70819d2fa4c777a4a33552b89bfb322
 F src/global.c 59601d885a0dbbfbd22ed2d030424a5e7f1b9809a17ca46686058bbc4a55e980
 F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19
 F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38
 F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144
 F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
-F src/insert.c 5ba8fd376f539240939ae76b5bc9fa7ad9a0d86e9914ecd11eb7002204138c11
+F src/insert.c 2fe4d7f67078a68650f16e4efe73207899e21702e6b9d2e8ad1894c76dcad352
 F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
 F src/loadext.c 8cd803f1747c03a50b32fe87ebfb5851998d0cdafefe02737daa95e0616b42bb
-F src/main.c da8b42cee9b83cc923bf23d1945c9fb48cf57cb0422d5fe43a1ff88dc453b97b
+F src/main.c 430db07f140a2455784b504af1a56fe49134a79dd479a203370490031708d48f
 F src/malloc.c eaa4dc9602ce28b077f7de2eb275db2be270c5cc56d7fec5466301bd9b80e2f5
 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
@@ -531,7 +531,7 @@ F src/printf.c 9be6945837c839ba57837b4bc3af349eba630920fa5532aa518816defe42a7d4
 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c 1139e3157c710c6e6f04fe726f4e0d8bdb1ae89a276d3b0ca4975af163141c9c
 F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93
-F src/select.c 28211b0eeeaf572624fa443515c90bca5c4f46bd1f01c3f688d1b85c308d3224
+F src/select.c 1b787876c0f3052ccd27490a350ab181281e9833f455ee273bee0a0c8a94765d
 F src/shell.c.in 1b2a636ba5b676f844a2af2a5f719b5c4ace7c6825d56270e2ae912b2a5fc840
 F src/sqlite.h.in 8ec22eb7e2a3d391be7d13024755bfd65a5ef6a752c0469b0f652162270d38b6
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -601,7 +601,7 @@ F src/trigger.c a40d50e88bd3355f1d2a73f0a3b2d6b42eae26ca4219001b82ef0d064439badc
 F src/update.c 9ad19af96aff95dc02a923a99f97c1bc0b909009a29a2914b796f786b9ac0c60
 F src/upsert.c 2920de71b20f04fe25eb00b655d086f0ba60ea133c59d7fa3325c49838818e78
 F src/utf.c 736ff76753236ffbc8b5b939f5e0607f28aeaa7c780b3a56b419228f0a81c87b
-F src/util.c e5f3971160154e5c9b660fd119b02ec4890e87cd18a5bc4d45ee60cddbb9e6a2
+F src/util.c d035b09df9cecbc0e8f07c34b815acbf0d43c8adc8d2c540e3dc92eecb27855a
 F src/vacuum.c 82dcec9e7b1afa980288718ad11bc499651c722d7b9f32933c4d694d91cb6ebf
 F src/vdbe.c 35dcc7d43c2635853773d994b052061283a4e5b0e60e799cef83e410d90f3145
 F src/vdbe.h defd693289c7bb8d325f109be9490c77138061211a116827da7244b6015a4934
@@ -609,7 +609,7 @@ F src/vdbeInt.h 30d3e8b991547cdf39025e416a0a737b0416d46747af70ae058f60e2e0466fe7
 F src/vdbeapi.c 1252d80c548711e47a6d84dae88ed4e95d3fbb4e7bd0eaa1347299af7efddf02
 F src/vdbeaux.c ff690e6c9314ef281de7c06f8c8c33393f0afca80aabb1fe69836dcf2d60b0bf
 F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1
-F src/vdbemem.c ad9e6217635f2b04df98bc57b12c98cefc9c0a1745cca47f4e8109119213253d
+F src/vdbemem.c 6200af702c87105d5b00d8ac5f5fa2c6d8f796aa974dbe2d15dcd95379ba1fa7
 F src/vdbesort.c a3be032cc3fee0e3af31773af4a7a6f931b7230a34f53282ccf1d9a2a72343be
 F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143f0
 F src/vtab.c 7b704a90515a239c6cdba6a66b1bb3a385e62326cceb5ecb05ec7a091d6b8515
@@ -1800,7 +1800,7 @@ F tool/mksqlite3h.tcl 080873e3856eceb9d289a08a00c4b30f875ea3feadcbece796bd509b15
 F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b
 F tool/mkvsix.tcl b9e0777a213c23156b6542842c238479e496ebf5
 F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
-F tool/omittest.tcl 27f9413c3343bac200a28d81e8234adb0f5e141c4771893cb19b40235a91f1e0
+F tool/omittest.tcl 6616fbf384f0f630113eab27d41d4530435dd94e2883307759988b45f0604a3b
 F tool/opcodesum.tcl 740ed206ba8c5040018988129abbf3089a0ccf4a
 F tool/pagesig.c ff0ca355fd3c2398e933da5e22439bbff89b803b
 F tool/replace.tcl 60f91e8dd06ab81f74d213ecbd9c9945f32ac048
@@ -1857,7 +1857,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 4d6cb28811c01599e34c0394fe5ed17d47f14893c860590c9b4660bef68eb294
-R 8a133b71d0beb94bc5fe229d4942915c
+P c9abf1bd2d2496ced9ef4619cd997933cd58452e6ab527ba70746c9975104b6a
+R 78ab34995171428871c77c466fa8b08a
 U drh
-Z 1fba68fad8f22ba34b83ab745c2e9833
+Z 326389f638ab9279b86bd4c2cd08b041
index 7bf77c4d586254af8dea87c3c31a033f87197aae..c0ef800e4b3f4b1bf6bf20fa596420dc73cdf974 100644 (file)
@@ -1 +1 @@
-c9abf1bd2d2496ced9ef4619cd997933cd58452e6ab527ba70746c9975104b6a
\ No newline at end of file
+7584e4b649d57767aac3906da6b06549d5b772aaa69f469c623ae5da834d54d5
\ No newline at end of file
index be4975afcc98468624a926722aaa4fbe139e2dff..36ab5717606a0e8d493adfb28effe90130ca149b 100644 (file)
@@ -16,7 +16,9 @@
 #include "sqliteInt.h"
 #include <stdlib.h>
 #include <assert.h>
+#ifndef SQLITE_OMIT_FLOATING_POINT
 #include <math.h>
+#endif
 #include "vdbeInt.h"
 
 /*
index e3035c8d0a9eb0b1d350fdac8d6b94b9860d7c75..93f22a8cbf3a1c81ab0103283e54b6c07415fae6 100644 (file)
@@ -1640,6 +1640,7 @@ void sqlite3GenerateConstraintChecks(
       }
       if( b2ndPass ) break;  /* Never need more than 2 passes */
       b2ndPass = 1;
+#ifndef SQLITE_OMIT_GENERATED_COLUMNS
       if( nSeenReplace>0 && (pTab->tabFlags & TF_HasGenerated)!=0 ){
         /* If any NOT NULL ON CONFLICT REPLACE constraints fired on the
         ** first pass, recomputed values for all generated columns, as
@@ -1647,6 +1648,7 @@ void sqlite3GenerateConstraintChecks(
         */
         sqlite3ComputeGeneratedColumns(pParse, regNewData+1, pTab);
       }
+#endif
     } /* end of 2-pass loop */
   } /* end if( has-not-null-constraints ) */
 
index 995061fec7a2e53cefc701774f3b7598cb601320..903f187a9f2958a04aa217328bcf5d13aadbe9c4 100644 (file)
@@ -3904,6 +3904,7 @@ int sqlite3_test_control(int op, ...){
     ** This test-control also resets the PRNG so that the new seed will
     ** be used for the next call to sqlite3_randomness().
     */
+#ifndef SQLITE_OMIT_WSD
     case SQLITE_TESTCTRL_PRNG_SEED: {
       int x = va_arg(ap, int);
       int y;
@@ -3914,6 +3915,7 @@ int sqlite3_test_control(int op, ...){
       sqlite3_randomness(0,0);
       break;
     }
+#endif
 
     /*
     **  sqlite3_test_control(BITVEC_TEST, size, program)
index d15be56c27bba725439263537cf542a24b1b5da8..971f7375a38b6d3d7477a7d56dc803b7b4e6c52e 100644 (file)
@@ -2496,7 +2496,9 @@ static int multiSelectValues(
     assert( p->selFlags & SF_Values );
     assert( p->op==TK_ALL || (p->op==TK_SELECT && p->pPrior==0) );
     assert( p->pNext==0 || p->pEList->nExpr==p->pNext->pEList->nExpr );
+#ifndef SQLITE_OMIT_WINDOWFUNC
     if( p->pWin ) return -1;
+#endif
     if( p->pPrior==0 ) break;
     assert( p->pPrior->pNext==p );
     p = p->pPrior;
@@ -3859,7 +3861,9 @@ static int flattenSubquery(
       if( (pSub1->selFlags & (SF_Distinct|SF_Aggregate))!=0    /* (17b) */
        || (pSub1->pPrior && pSub1->op!=TK_ALL)                 /* (17a) */
        || pSub1->pSrc->nSrc<1                                  /* (17c) */
+#ifndef SQLITE_OMIT_WINDOWFUNC
        || pSub1->pWin                                          /* (17e) */
+#endif
       ){
         return 0;
       }
@@ -4966,7 +4970,7 @@ static int selectExpander(Walker *pWalker, Select *p){
       if( !IsVirtual(pTab) && cannotBeFunction(pParse, pFrom) ){
         return WRC_Abort;
       }
-#if !defined(SQLITE_OMIT_VIEW) || !defined (SQLITE_OMIT_VIRTUALTABLE)
+#if !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_VIRTUALTABLE)
       if( IsVirtual(pTab) || pTab->pSelect ){
         i16 nCol;
         u8 eCodeOrig = pWalker->eCode;
@@ -6118,7 +6122,9 @@ int sqlite3Select(
   */
   if( (p->selFlags & (SF_Distinct|SF_Aggregate))==SF_Distinct 
    && sqlite3ExprListCompare(sSort.pOrderBy, pEList, -1)==0
+#ifndef SQLITE_OMIT_WINDOWFUNC
    && p->pWin==0
+#endif
   ){
     p->selFlags &= ~SF_Distinct;
     pGroupBy = p->pGroupBy = sqlite3ExprListDup(db, pEList, 0);
index 88ac6d39f8803cb160a41420cd94f526ea9ffd2f..3e3a9244ac293db50bfbcb6716d89abff637394e 100644 (file)
@@ -17,7 +17,9 @@
 */
 #include "sqliteInt.h"
 #include <stdarg.h>
+#ifndef SQLITE_OMIT_FLOATING_POINT
 #include <math.h>
+#endif
 
 /*
 ** Routine needed to support the testcase() macro.
index 464e8ffdc505c317407f1f845babba09bc57980c..ddb6b2c11379d58a1ed2c05c85eca763d550b19f 100644 (file)
@@ -1559,7 +1559,11 @@ static int valueFromExpr(
       if( pVal->flags & MEM_Real ){
         pVal->u.r = -pVal->u.r;
       }else if( pVal->u.i==SMALLEST_INT64 ){
+#ifndef SQLITE_OMIT_FLOATING_POINT
         pVal->u.r = -(double)SMALLEST_INT64;
+#else
+        pVal->u.r = LARGEST_INT64;
+#endif
         MemSetTypeFlag(pVal, MEM_Real);
       }else{
         pVal->u.i = -pVal->u.i;
index fc51127a6c9c521e3b5c39cf259e356effc0859a..120fc2afddca4735d197d5fd078c715a96126175 100644 (file)
@@ -98,7 +98,7 @@ proc run_quick_test {dir omit_symbol_list} {
   }
 
   if {$::SKIP_RUN} {
-      puts "Skip testing $dir."
+    #  puts "Skip testing $dir."
   } else {
     # Run the test suite.
     puts -nonewline "Testing $dir..."
@@ -127,7 +127,7 @@ proc process_options {argv} {
   } else {
     set ::MAKEFILE ./Makefile.linux-gcc     ;# Default value
   }
-  set ::SKIP_RUN 0                          ;# Default to attempt test
+  set ::SKIP_RUN 1                          ;# Default to attempt test
   set ::TARGET testfixture                  ;# Default thing to build
 
   for {set i 0} {$i < [llength $argv]} {incr i} {
@@ -150,6 +150,9 @@ proc process_options {argv} {
       -{1,2}skip_run {
         set ::SKIP_RUN 1
       }
+      -{1,2}run {
+        set ::SKIP_RUN 0
+      }
 
       -{1,2}help {
         puts $::USAGE_MESSAGE
@@ -192,6 +195,7 @@ proc main {argv} {
     SQLITE_OMIT_BETWEEN_OPTIMIZATION \
     SQLITE_OMIT_BLOB_LITERAL \
     SQLITE_OMIT_BTREECOUNT \
+    SQLITE_OMIT_CASE_SENSITIVE_LIKE_PRAGMA \
     SQLITE_OMIT_CAST \
     SQLITE_OMIT_CHECK \
     SQLITE_OMIT_COMPILEOPTION_DIAGS \
@@ -207,16 +211,17 @@ proc main {argv} {
     SQLITE_OMIT_FLAG_PRAGMAS \
     SQLITE_OMIT_FLOATING_POINT \
     SQLITE_OMIT_FOREIGN_KEY \
+    SQLITE_OMIT_GENERATED_COLUMNS \
     SQLITE_OMIT_GET_TABLE \
     SQLITE_OMIT_HEX_INTEGER \
     SQLITE_OMIT_INCRBLOB \
     SQLITE_OMIT_INTEGRITY_CHECK \
+    SQLITE_OMIT_INTROSPECTION_PRAGMAS \
     SQLITE_OMIT_LIKE_OPTIMIZATION \
     SQLITE_OMIT_LOAD_EXTENSION \
     SQLITE_OMIT_LOCALTIME \
     SQLITE_OMIT_LOOKASIDE \
     SQLITE_OMIT_MEMORYDB \
-    SQLITE_OMIT_MEMORY_ALLOCATION \
     SQLITE_OMIT_OR_OPTIMIZATION \
     SQLITE_OMIT_PAGER_PRAGMAS \
     SQLITE_OMIT_PARSER_TRACE \