Instead of just the flags byte, include the first 8 bytes of the relevant page
in an on-commit conflict log message. FossilOrigin-Name: 52e443eb5523963a6b09be66ab1c7281930d0155bf3df13eee0ec9066dbc7f0b
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
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-15T09:03:57.472
|
||||
C Instead\sof\sjust\sthe\sflags\sbyte,\sinclude\sthe\sfirst\s8\sbytes\sof\sthe\srelevant\spage\nin\san\son-commit\sconflict\slog\smessage.
|
||||
D 2018-05-15T11:33:42.540
|
||||
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 facc1e1a4740423e4e35b54667542f1f620744bd81e16ad62eac402480c6e539
|
||||
F src/btree.c 05cb666b7e30e8d9f1bda9abcf2cfe510193864fd2508c2dc98f5b99726d0eb8
|
||||
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 ff73e642342f02133151c23b0eecab2ec1ea5bc9645c646861a9baa4263d8f50
|
||||
F test/concurrent5.test 0c16cbf7446af162a14e6def30445e94016064eb994e5aa4ebb2bebc59554176
|
||||
F test/concurrent6.test a7860e9ca13bb5fb76bcf41c5524fbfa9c37e6e258ecf84ffb5748a272488c67
|
||||
F test/concurrent7.test b96fa5c4cfdf8d5c0bc66b6934214500bad0260884a736f054ccc76e81aae85d
|
||||
F test/conflict.test 029faa2d81a0d1cafb5f88614beb663d972c01db
|
||||
@@ -1738,7 +1738,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 83a4c9f0885768ed3cbe556aed9f4709a1d7a1cd52f2e3632ade28091febee47 fbfa547177ac7d57dcb0775d761a7f92fc1f2263cd83e2843cd109139a8c5121
|
||||
R 40541abbc6ef2af5548171c8c8b7867b
|
||||
P de19abb950e4186c491c39112a52062871ac44fc2bdc5b611e9fdfa611352716 e7dc03e7439f224e4bec458f27fe364f2fb1ac637328657a578ada693ae22842
|
||||
R 56e72c0c1bd42f01c3a903f76a21fc3d
|
||||
U dan
|
||||
Z fb0b2959a512a6822d89400d1256cf51
|
||||
Z fdbeeb03d112744717f4fcaae64d2c9c
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
de19abb950e4186c491c39112a52062871ac44fc2bdc5b611e9fdfa611352716
|
||||
52e443eb5523963a6b09be66ab1c7281930d0155bf3df13eee0ec9066dbc7f0b
|
||||
+14
-4
@@ -10477,19 +10477,29 @@ 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;
|
||||
char zContent[17];
|
||||
|
||||
if( pPg ){
|
||||
Pgno pgnoRoot = 0;
|
||||
HashElem *pE;
|
||||
Schema *pSchema;
|
||||
u8 *aData = (u8*)sqlite3PagerGetData(pPg);
|
||||
int i;
|
||||
for(i=0; i<8; i++){
|
||||
static const char hexdigits[] = {
|
||||
'0', '1', '2', '3', '4', '5', '6', '7',
|
||||
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
|
||||
};
|
||||
zContent[i*2] = hexdigits[(aData[i] >> 4)];
|
||||
zContent[i*2+1] = hexdigits[(aData[i] & 0xF)];
|
||||
}
|
||||
zContent[16] = '\0';
|
||||
|
||||
pgnoRoot = ((MemPage*)sqlite3PagerGetExtra(pPg))->pgnoRoot;
|
||||
bWrite = sqlite3PagerIswriteable(pPg);
|
||||
pageFlags = ((u8*)sqlite3PagerGetData(pPg))[0];
|
||||
sqlite3PagerUnref(pPg);
|
||||
|
||||
pSchema = sqlite3SchemaGet(p->db, p);
|
||||
@@ -10515,12 +10525,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; flags=0x%02x)",
|
||||
"(%s page; part of db %s %s%s%s; content=%s...)",
|
||||
(int)pgno,
|
||||
(bWrite==0?"read-only":(bWrite>0?"read/write":"unknown")),
|
||||
(zTab ? "index" : "table"),
|
||||
(zTab ? zTab : ""), (zTab ? "." : ""), (zObj ? zObj : "UNKNOWN"),
|
||||
pageFlags
|
||||
zContent
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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; flags=0x05)
|
||||
conflict at page 2 (read-only page; part of db table t1; content=0500000063021100...)
|
||||
}
|
||||
|
||||
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; flags=0x0d)
|
||||
conflict at page 105 (read/write page; part of db table t1; content=0D00000002026100...)
|
||||
}
|
||||
|
||||
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; flags=0x0d)
|
||||
conflict at page 3 (read/write page; part of db table t2; content=0D0000000103FB00...)
|
||||
}
|
||||
|
||||
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; flags=0x0a)
|
||||
conflict at page 211 (read/write page; part of db index t3.i3; content=0A0310006300D800...)
|
||||
}
|
||||
|
||||
db close
|
||||
|
||||
Reference in New Issue
Block a user