aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrh <>2024-04-05 11:28:30 +0000
committerdrh <>2024-04-05 11:28:30 +0000
commit67276c648bae771603ca871037de6cb4b8970e6c (patch)
tree98ad52a2f44a2aab69b2f957dca2fb97b711a3c0
parentff549b138434455382d7bd11c495c488d8528d5d (diff)
downloadsqlite-version-3.44.3.tar.gz
sqlite-version-3.44.3.zip
When compiling with SQLITE_ALLOW_ROWID_IN_VIEW, if the RETURNING clause ofversion-3.44.3
an UPDATE of a view specifies a rowid, then return NULL for the value of that rowid. FossilOrigin-Name: d38cfa6067ccd450c4fac183765c05ff247ecb49ccf172a68ef9d381577df84f
-rw-r--r--manifest14
-rw-r--r--manifest.uuid2
-rw-r--r--src/update.c3
3 files changed, 11 insertions, 8 deletions
diff --git a/manifest b/manifest
index ad1d39699..54096c41a 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sthe\sxBestIndex\smethod\sof\sthe\spragma\svirtual\stable\sso\sthat\sit\scorrectly\ngives\sa\shigher\scost\sto\splans\swhere\sthe\sschema\shidden\sparameter\sis\nunconstrained.
-D 2024-03-24T21:15:01.467
+C When\scompiling\swith\sSQLITE_ALLOW_ROWID_IN_VIEW,\sif\sthe\sRETURNING\sclause\sof\nan\sUPDATE\sof\sa\sview\sspecifies\sa\srowid,\sthen\sreturn\sNULL\sfor\sthe\svalue\sof\nthat\srowid.
+D 2024-04-05T11:28:30.003
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -790,7 +790,7 @@ F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
F src/tokenize.c 23d9f4539880b40226254ad9072f4ecf12eb1902e62aea47aac29928afafcfd5
F src/treeview.c 62fafcd31eea60b718f8daf448116b7b19f90134ebc6c20777ddbb07f56a3d28
F src/trigger.c 0905b96b04bb6658509f711a8207287f1315cdbc3df1a1b13ba6483c8e341c81
-F src/update.c 6904814dd62a7a93bbb86d9f1419c7f134a9119582645854ab02b36b676d9f92
+F src/update.c 732404a04d1737ef14bb6ec6b84f74edf28b3c102a92ae46b4855438a710efe7
F src/upsert.c 2e60567a0e9e8520c18671b30712a88dc73534474304af94f32bb5f3ef65ac65
F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
F src/util.c 1e2754e628086dcb93f3f70be7937f0367baa3ad616c4f16f45d61e8ed12c01f
@@ -2144,9 +2144,9 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P b5d2dce18fcd00749a3efe8386df42fca103f86bd862f2610cfb05651ddb9d59
-Q +bc516ff5202ee6e9834266bf755fe26e30ac557dcc7975ca7a06dfe33874fcd2
-R 11e9a6889c88dada0e484effbb93b607
+P d68fb8b5dbb8305e00d2dd14d8fe6b3d9f67e2459102ff160d956a6b75ddc18e
+Q +c7896e88850669e18e89d44c4169d4f4a5d4b904bea6ccb2ac64f93b6d348a42
+R 32bc816261ff7ca9b25d83710dd33ef1
U drh
-Z 699c21fcd356d70683616c487856f61b
+Z 723a8575c7cde0891641a014d7dbe6b4
# Remove this line to create a well-formed Fossil manifest.
diff --git a/manifest.uuid b/manifest.uuid
index 472e850d4..dc26d25d8 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-d68fb8b5dbb8305e00d2dd14d8fe6b3d9f67e2459102ff160d956a6b75ddc18e \ No newline at end of file
+d38cfa6067ccd450c4fac183765c05ff247ecb49ccf172a68ef9d381577df84f \ No newline at end of file
diff --git a/src/update.c b/src/update.c
index cd7d73f3f..b6068caa7 100644
--- a/src/update.c
+++ b/src/update.c
@@ -921,6 +921,9 @@ void sqlite3Update(
}
}
if( chngRowid==0 && pPk==0 ){
+#ifdef SQLITE_ALLOW_ROWID_IN_VIEW
+ if( isView ) sqlite3VdbeAddOp2(v, OP_Null, 0, regOldRowid);
+#endif
sqlite3VdbeAddOp2(v, OP_Copy, regOldRowid, regNewRowid);
}
}