]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
In the previous check-in, use a u32 instead of an int, to make it easier to
authordrh <>
Thu, 2 Nov 2023 22:11:35 +0000 (22:11 +0000)
committerdrh <>
Thu, 2 Nov 2023 22:11:35 +0000 (22:11 +0000)
prove that the integer will never overflow.

FossilOrigin-Name: 51002079e0b499e116415189a913a238e95ed9766a8af9d042928f4263861a87

manifest
manifest.uuid
src/resolve.c
src/sqliteInt.h

index d29835ad88c851f16221e9679e7914175fe936e9..b820b0b5e03c8fac262288ec793e543345fcb73e 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sspurious\s"misuse\sof\saggregate\sfunction"\serror\sthat\scould\soccur\swhen\san\saggregate\sfunction\swas\sused\swithin\sthe\sFROM\sclause\sof\sa\ssub-select\sof\sthe\sselect\sthat\sowns\sthe\saggregate.\se.g.\s"SELECT\s(SELECT\sx\sFROM\s(SELECT\ssum(t1.a)\sAS\sx))\sFROM\st1".\s[forum:/forumpost/c9970a37ed\s|\sForum\spost\sc9970a37ed].
-D 2023-11-02T21:02:53.455
+C In\sthe\sprevious\scheck-in,\suse\sa\su32\sinstead\sof\san\sint,\sto\smake\sit\seasier\sto\nprove\sthat\sthe\sinteger\swill\snever\soverflow.
+D 2023-11-02T22:11:35.443
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -721,14 +721,14 @@ F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7
 F src/prepare.c bde74add20fc0e8ce0c4e937a1f70a36d17413afe4f71d3e103f5cb74b17c8d9
 F src/printf.c 9da63b9ae1c14789bcae12840f5d800fd9302500cd2d62733fac77f0041b4750
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
-F src/resolve.c c74f10e6adf35e2b60e63cba7306a07f976cf119fc29a57845a1ddf3c35ddc68
+F src/resolve.c d017bad7ba8e778617701a0e986fdeb393d67d6afa84fb28ef4e8b8ad2acf916
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c a19daa26e95f7245106a31f288b2f50c72d1f2cc156703f04c8c91450e111515
 F src/shell.c.in aebfbedaa7706d2c73ab7366a19fc8bc40ea68b70d2529f7feef54e6eb077ea2
 F src/sqlite.h.in ef0e41e83ad1ac0dcc9ec9939bf541a44b1c5de821bee2d6c61754c3252f3276
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 3f046c04ea3595d6bfda99b781926b17e672fd6d27da2ba6d8d8fc39981dcb54
-F src/sqliteInt.h f0185af5bbc434fd047c01e8ddd81c9b093fd304b5abb08547301fca70788b8b
+F src/sqliteInt.h 707095a0591e02f4866ed9798cbdd97a8ae8cf4d98f061808944c2cd1c95d1a9
 F src/sqliteLimit.h 33b1c9baba578d34efe7dfdb43193b366111cdf41476b1e82699e14c11ee1fb6
 F src/status.c 160c445d7d28c984a0eae38c144f6419311ed3eace59b44ac6dafc20db4af749
 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@ -2141,8 +2141,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 0d50172477064dce3f7c61641d88aa15d8a1edea9872adaffcc1a7a1c9ab0e93
-R b1c591059f07d73b87055d331d542a79
-U dan
-Z b418469e6326d7ed346db9d2f8a70c19
+P 4470f657d2069972d02a00983252dec1f814d90c0d8d0906e320e955111e8c11
+R 79c60d9c26c18e4bd3eb97f7d6131505
+U drh
+Z b5e2ca2c6ff3e7234971fa445deb54ad
 # Remove this line to create a well-formed Fossil manifest.
index 652d910b8f1578371b328d229b0bf59715e8627f..1eec80173783dc9fc4e3dca097c52d1fed237a62 100644 (file)
@@ -1 +1 @@
-4470f657d2069972d02a00983252dec1f814d90c0d8d0906e320e955111e8c11
\ No newline at end of file
+51002079e0b499e116415189a913a238e95ed9766a8af9d042928f4263861a87
\ No newline at end of file
index a0134fd57c2fdc2a3cee37b70ec3a25a0008d352..5f675c1d2dd6b0c3a57d3e593356b131587fdccd 100644 (file)
@@ -1838,7 +1838,9 @@ static int resolveSelectStep(Walker *pWalker, Select *p){
         }
       }
     }
-    if( pOuterNC ) pOuterNC->nNestedSelect--;
+    if( pOuterNC && ALWAYS(pOuterNC->nNestedSelect>0) ){
+      pOuterNC->nNestedSelect--;
+    }
  
     /* Set up the local name-context to pass to sqlite3ResolveExprNames() to
     ** resolve the result-set expression list.
index c8288736b38f3a44bd9ca5ffc51d36df2fd97b15..23beb48de368e3b17818d2bc992d28957ac51cac 100644 (file)
@@ -3397,7 +3397,7 @@ struct NameContext {
   int nRef;            /* Number of names resolved by this context */
   int nNcErr;          /* Number of errors encountered while resolving names */
   int ncFlags;         /* Zero or more NC_* flags defined below */
-  int nNestedSelect;   /* Number of nested selects using this NC */
+  u32 nNestedSelect;   /* Number of nested selects using this NC */
   Select *pWinSelect;  /* SELECT statement for any window functions */
 };