Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Further enhance the vfslog extension to record the number of freelist pages and the first freelist page in CHNGCTR-READ and CHNGCTR-WRITE records. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
08157524ca816a81f3c341097e239827 |
User & Date: | drh 2013-10-18 17:42:35.202 |
Context
2013-10-18
| ||
20:03 | Add the SQLITE_FCNTL_TRACE file control and generate it for OP_Trace when compiled with SQLITE_USE_FCNTL_TRACE. Update vfslog.c to make use of the new file control. Also update vfslog.c to log UNLOCK events before the fact, rather than afterwards. (check-in: e801f35a96 user: drh tags: trunk) | |
17:42 | Further enhance the vfslog extension to record the number of freelist pages and the first freelist page in CHNGCTR-READ and CHNGCTR-WRITE records. (check-in: 08157524ca user: drh tags: trunk) | |
14:37 | In the vfslog extension for FILECONTROL records, show the pragma name for SQLITE_FCNTL_PRAGMAs and the requested size for SQLITE_FCNTL_SIZE_HINT. (check-in: f062969548 user: drh tags: trunk) | |
Changes
Changes to ext/misc/vfslog.c.
︙ | ︙ | |||
341 342 343 344 345 346 347 348 349 350 351 352 353 354 | s1 += pI[1] + s0; pI += 2; } for(i=0; i<8; i++) sqlite3_snprintf(3, zCksum+i*2, "%02x", p[i]); sqlite3_snprintf(18, zCksum+i*2, "-%08x%08x", s0, s1); } } /* ** Read data from an vlog-file. */ static int vlogRead( sqlite3_file *pFile, void *zBuf, | > > > > > > > | 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 | s1 += pI[1] + s0; pI += 2; } for(i=0; i<8; i++) sqlite3_snprintf(3, zCksum+i*2, "%02x", p[i]); sqlite3_snprintf(18, zCksum+i*2, "-%08x%08x", s0, s1); } } /* ** Convert a big-endian 32-bit integer into a native integer */ static int bigToNative(const unsigned char *x){ return (x[0]<<24) + (x[1]<<16) + (x[2]<<8) + x[3]; } /* ** Read data from an vlog-file. */ static int vlogRead( sqlite3_file *pFile, void *zBuf, |
︙ | ︙ | |||
372 373 374 375 376 377 378 | if( rc==SQLITE_OK && p->pLog && p->pLog->zFilename && iOfst<=24 && iOfst+iAmt>=28 ){ unsigned char *x = ((unsigned char*)zBuf)+(24-iOfst); | | > > | > > > > > | | 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 | if( rc==SQLITE_OK && p->pLog && p->pLog->zFilename && iOfst<=24 && iOfst+iAmt>=28 ){ unsigned char *x = ((unsigned char*)zBuf)+(24-iOfst); unsigned iCtr, nFree = -1; char *zFree = 0; char zStr[12]; iCtr = bigToNative(x); if( iOfst+iAmt>=40 ){ zFree = zStr; sqlite3_snprintf(sizeof(zStr), zStr, "%d", bigToNative(x+8)); nFree = bigToNative(x+12); } vlogLogPrint(p->pLog, tStart, 0, "CHNGCTR-READ", iCtr, nFree, zFree, 0); } return rc; } /* ** Write data to an vlog-file. */ |
︙ | ︙ | |||
405 406 407 408 409 410 411 | if( rc==SQLITE_OK && p->pLog && p->pLog->zFilename && iOfst<=24 && iOfst+iAmt>=28 ){ unsigned char *x = ((unsigned char*)z)+(24-iOfst); | | > > | > > > > > | | 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 | if( rc==SQLITE_OK && p->pLog && p->pLog->zFilename && iOfst<=24 && iOfst+iAmt>=28 ){ unsigned char *x = ((unsigned char*)z)+(24-iOfst); unsigned iCtr, nFree = -1; char *zFree = 0; char zStr[12]; iCtr = bigToNative(x); if( iOfst+iAmt>=40 ){ zFree = zStr; sqlite3_snprintf(sizeof(zStr), zStr, "%d", bigToNative(x+8)); nFree = bigToNative(x+12); } vlogLogPrint(p->pLog, tStart, 0, "CHNGCTR-WRITE", iCtr, nFree, zFree, 0); } return rc; } /* ** Truncate an vlog-file. */ |
︙ | ︙ |