]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix problems with the sqlite3_error_offset() function and its use in the CLI.
authordrh <>
Mon, 20 Mar 2023 01:59:58 +0000 (01:59 +0000)
committerdrh <>
Mon, 20 Mar 2023 01:59:58 +0000 (01:59 +0000)
FossilOrigin-Name: d5cd6c885b71b0939f5832fbb63bf800ae03dbbc2dc0f7beab1270133d414c54

manifest
manifest.uuid
src/expr.c
src/shell.c.in

index 1579b0af206f0db170e2959c6020ecacc0342ca3..931ff035fdb734ff4cac133fc911fc518145cf8d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Increase\sthe\ssize\sof\sref-count\svalues\sin\sthe\spager\slayer\sto\s64-bits,\sto\savoid\nany\sreasonable\spossiblity\sof\soverflowing\sthe\scounters.
-D 2023-03-19T21:53:35.771
+C Fix\sproblems\swith\sthe\ssqlite3_error_offset()\sfunction\sand\sits\suse\sin\sthe\sCLI.
+D 2023-03-20T01:59:58.610
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -571,7 +571,7 @@ F src/date.c f21815ca7172ce073db3163ac54c8d9f2841077165c1a6123b4d1c376a0c7ec7
 F src/dbpage.c d47549716549311f79dc39fe5c8fb19390a6eb2c960f8e37c89a9c4de0c1052e
 F src/dbstat.c ec92074baa61d883de58c945162d9e666c13cd7cf3a23bc38b4d1c4d0b2c2bef
 F src/delete.c 201fe0763c52783d205c8c13cdd9d55c1bd5cb21c1f036753f99103b43284b90
-F src/expr.c 0bb501fd89d30dcb2569c7e479d765c2b92d969cf36c9dc5aa54db3d35c55d2a
+F src/expr.c e7c0cdde3bc5e5b82b02264547456e4454e1ea5a91b9649b3a02b6422a660122
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 722f20779f5342a787922deded3628d8c74b5249cab04098cf17ee2f2aaff002
 F src/func.c d187be57a886ddf4e6b7ef584a494361899be3df5eee6d4a747b68ff4aff4122
@@ -622,7 +622,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 6a0253379cc15b3f80321362a61f487a8ef7cd2487fe62e1eb2317b3f871c61f
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 F src/select.c 9c6f537469c54af6e5b981d68ac18714562c497e6ff57782f338bb17b3ec9777
-F src/shell.c.in 6f36f5ca05f1bebf74935a7fcf2dce983016e807a09cbd752a673583ad7da087
+F src/shell.c.in 7b184442d3bf93c79ba9c5abbb74a23958843706d97f9c1e3426a2d32ed3691b
 F src/sqlite.h.in 662a2fa083d093896b92560c871dea6d86792b49dc4bf7b4e8dbeca8e7171488
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h da473ce2b3d0ae407a6300c4a164589b9a6bfdbec9462688a8593ff16f3bb6e4
@@ -2045,9 +2045,11 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 1f91fe4bfc81bf66f9c8f0aebe0acdbac89e2c20d90a5eb4ea0a3c560b82a9cd
-Q +6c5d99a813e8498c2ea91383ac8886a43eaf47023919c03900e893640c03778d
-R 01d6fd21f12635eac726e31009c7b354
+P 824611ad33011bda676ce6c9c3cb2b46442fc0a48c458bdc86dd960623c1e945
+Q +26adbb80f51b9219ab2a3593496458b74a567ba5ee46b5154f056e389cfc09f7
+Q +2adb4e0dda471ffc9b2a5cbad01b6c2bc6091b7526a8c8b19944cb2d4a5111e7
+Q +770b3e67c89ca16b08a9234acb626917a26ea414b3bc0340f9601644cb7504f2
+R aeef81675f3fb54c932508006829679b
 U drh
-Z 7843c481c1380fed3f621647835b75d8
+Z f84ff922d2e574df5444162ab60906d4
 # Remove this line to create a well-formed Fossil manifest.
index 78b11e054b119e672d2b2394b087606c98ac311a..77753e4c7baa73548ee802c8713452055ce4903a 100644 (file)
@@ -1 +1 @@
-824611ad33011bda676ce6c9c3cb2b46442fc0a48c458bdc86dd960623c1e945
\ No newline at end of file
+d5cd6c885b71b0939f5832fbb63bf800ae03dbbc2dc0f7beab1270133d414c54
\ No newline at end of file
index c15ed4bafc4350da2cde61445befb0272d1682d3..87adcd344afbc5268d0a7f6356bd498c35ee7c2b 100644 (file)
@@ -3839,9 +3839,10 @@ void sqlite3ExprCodeGeneratedColumn(
 ){
   int iAddr;
   Vdbe *v = pParse->pVdbe;
+  int nErr = pParse->nErr;
   assert( v!=0 );
   assert( pParse->iSelfTab!=0 );
-  if( pParse->iSelfTab>0 ){
+  if( pParse->iSelfTab>0 ){\f
     iAddr = sqlite3VdbeAddOp3(v, OP_IfNullRow, pParse->iSelfTab-1, 0, regOut);
   }else{
     iAddr = 0;
@@ -3851,6 +3852,7 @@ void sqlite3ExprCodeGeneratedColumn(
     sqlite3VdbeAddOp4(v, OP_Affinity, regOut, 1, 0, &pCol->affinity, 1);
   }
   if( iAddr ) sqlite3VdbeJumpHere(v, iAddr);
+  if( pParse->nErr>nErr ) pParse->db->errByteOffset = -1;
 }
 #endif /* SQLITE_OMIT_GENERATED_COLUMNS */
 
index de3b6a73bf33b49a8a76ef48dd669a71cfe6dc53..de8bc3884351f4d2758f114370d6b1ee29369fff 100644 (file)
@@ -2774,6 +2774,7 @@ static char *shell_error_context(const char *zSql, sqlite3 *db){
   if( db==0
    || zSql==0
    || (iOffset = sqlite3_error_offset(db))<0
+   || iOffset>=strlen(zSql)
   ){
     return sqlite3_mprintf("");
   }