]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Include the value of the "flags" byte of the relevant page in the log message
authordan <dan@noemail.net>
Tue, 15 May 2018 08:51:05 +0000 (08:51 +0000)
committerdan <dan@noemail.net>
Tue, 15 May 2018 08:51:05 +0000 (08:51 +0000)
emitted when a BEGIN CONCURRENT commit conflict is detected.

FossilOrigin-Name: fbfa547177ac7d57dcb0775d761a7f92fc1f2263cd83e2843cd109139a8c5121

manifest
manifest.uuid
src/btree.c
test/concurrent5.test

index 78138b0dbfcbf092e0c7e0449efa3d282841dacc..b989d2b3f28ead79f07b27053e08cec779bfff0e 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\slatest\schanges\sfrom\strunk.\sIncluding\sthe\s"ORDER\sBY\s...\sLIMIT"\noptimization.
-D 2018-04-26T17:54:11.487
+C Include\sthe\svalue\sof\sthe\s"flags"\sbyte\sof\sthe\srelevant\spage\sin\sthe\slog\smessage\nemitted\swhen\sa\sBEGIN\sCONCURRENT\scommit\sconflict\sis\sdetected.
+D 2018-05-15T08:51:05.745
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 5ce9343cba9c189046f1afe6d2bcc1f68079439febc05267b98aec6ecc752439
@@ -437,7 +437,7 @@ F src/auth.c 6277d63837357549fe14e723490d6dc1a38768d71c795c5eb5c0f8a99f918f73
 F src/backup.c faf17e60b43233c214aae6a8179d24503a61e83b
 F src/bitvec.c 8433d9e98dd6f2ea3286e0d2fe5d65de1bfc18a706486eb2026b01be066b5806
 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
-F src/btree.c a64d302f0fa956af74d2a74538d206c3c854bdb9c6d53b92825b774e8465bcb6
+F src/btree.c 593a90431223ca1dcdd3ff6797e96d36147434431dbfaf213e866e400dd408df
 F src/btree.h 0cd745755efd1f3df4c70544c54253920ea32fe6b179b97e9daeb786ba0de4ba
 F src/btreeInt.h 6c65e6c96f561596f6870c79a64d4706af81613881d7947e3f063e923f14115f
 F src/build.c 1ef8945748702f0069521bafe33df41647bea777fd2353c73530d522a9fedaf8
@@ -708,7 +708,7 @@ F test/concurrent.test 86661967a680670127a62a819e60dc93c2d3d49043ac95b26dfa70d3e
 F test/concurrent2.test 9dfbeb0a323733fe1d13443371734bb94a674dbf777f464365475903873111f8
 F test/concurrent3.test 530671ac706f6a1d0f4992dbdd33a86408330d03cd90fb9e82ecb1b27f5fd081
 F test/concurrent4.test e0b12cd467137e50259df3b4f837507e82aaa07c35941c88664dc8ed1d089c44
-F test/concurrent5.test d5d7d9d404a9b4502464fc097c1fc5c3012bb4f1b063fae7ad707ca983fc86c5
+F test/concurrent5.test ff73e642342f02133151c23b0eecab2ec1ea5bc9645c646861a9baa4263d8f50
 F test/conflict.test 029faa2d81a0d1cafb5f88614beb663d972c01db
 F test/conflict2.test bb0b94cf7196c64a3cbd815c66d3ee98c2fecd9c
 F test/conflict3.test a83db76a6c3503b2fa057c7bfb08c318d8a422202d8bc5b86226e078e5b49ff9
@@ -1736,7 +1736,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 b27bd799ea66748b89223044c536813d56d0aa513f077499cbf8ed9c974d7b01 0fcfc36ceb820fc70136b799a0405fe92e50646e697be2872bbe9a53a05ed5a9
-R aacb8135e5d5d61c420d0eb994490898
+P d8ae7ba083551f05b963f13c5164ff60257c7b615cd48d675027cb6289b463da
+R b31f3045e7e18d43f49b3d4aef3b5822
 U dan
-Z 0c0899207e7f0c3c73b0ec6107e8e193
+Z bf3fce17ea47da69e27674ff4f78c20a
index 9dcfb8e644a0ea4fca6690a994b06dea3cbb310b..285075f6506f4ca36fb5cbafae420bc9265202cd 100644 (file)
@@ -1 +1 @@
-d8ae7ba083551f05b963f13c5164ff60257c7b615cd48d675027cb6289b463da
\ No newline at end of file
+fbfa547177ac7d57dcb0775d761a7f92fc1f2263cd83e2843cd109139a8c5121
\ No newline at end of file
index 013f4cb6f0d6bf9feee53554a5227a60bc525a70..2f4d82e5a6b725c31d246be81fbbd48844ce4088 100644 (file)
@@ -10433,6 +10433,7 @@ int sqlite3BtreeExclusiveLock(Btree *p){
     PgHdr *pPg = 0;
     int rc2 = sqlite3PagerGet(pBt->pPager, pgno, &pPg, 0);
     if( rc2==SQLITE_OK ){
+      u8 pageFlags = 0;
       int bWrite = -1;
       const char *zObj = 0;
       const char *zTab = 0;
@@ -10444,6 +10445,7 @@ int sqlite3BtreeExclusiveLock(Btree *p){
 
         pgnoRoot = ((MemPage*)sqlite3PagerGetExtra(pPg))->pgnoRoot;
         bWrite = sqlite3PagerIswriteable(pPg);
+        pageFlags = ((u8*)sqlite3PagerGetData(pPg))[0];
         sqlite3PagerUnref(pPg);
 
         pSchema = sqlite3SchemaGet(p->db, p);
@@ -10469,11 +10471,12 @@ int sqlite3BtreeExclusiveLock(Btree *p){
       sqlite3_log(SQLITE_OK,
           "cannot commit CONCURRENT transaction "
           "- conflict at page %d "
-          "(%s page; part of db %s %s%s%s)",
+          "(%s page; part of db %s %s%s%s; flags=0x%02x)",
           (int)pgno,
           (bWrite==0?"read-only":(bWrite>0?"read/write":"unknown")),
           (zTab ? "index" : "table"),
-          (zTab ? zTab : ""), (zTab ? "." : ""), (zObj ? zObj : "UNKNOWN")
+          (zTab ? zTab : ""), (zTab ? "." : ""), (zObj ? zObj : "UNKNOWN"),
+          pageFlags
       );
     }
   }
index dde661ea8bd03af099eaebbfd196273d8c0297e3..1747e2ed4447afd951bbaddb8c05673928fb4b54 100644 (file)
@@ -59,7 +59,7 @@ do_test 1.1.1 {
   catchsql COMMIT db2
 } {1 {database is locked}}
 do_test_conflict_msg 1.1.2 {
-  conflict at page 2 (read-only page; part of db table t1)
+  conflict at page 2 (read-only page; part of db table t1; flags=0x05)
 }
 
 do_test 1.2.1 {
@@ -78,7 +78,7 @@ do_test 1.2.1 {
 } {1 {database is locked}}
 
 do_test_conflict_msg 1.2.2 {
-  conflict at page 105 (read/write page; part of db table t1)
+  conflict at page 105 (read/write page; part of db table t1; flags=0x0d)
 }
 
 do_test 1.3.1 {
@@ -97,7 +97,7 @@ do_test 1.3.1 {
 } {1 {database is locked}}
 
 do_test_conflict_msg 1.3.2 {
-  conflict at page 3 (read/write page; part of db table t2)
+  conflict at page 3 (read/write page; part of db table t2; flags=0x0d)
 }
 
 do_test 1.4.1 {
@@ -121,7 +121,7 @@ do_test 1.4.1 {
 } {1 {database is locked}}
 
 do_test_conflict_msg 1.3.2 {
-  conflict at page 211 (read/write page; part of db index t3.i3)
+  conflict at page 211 (read/write page; part of db index t3.i3; flags=0x0a)
 }
 
 db close