MCPcopy Create free account
hub / github.com/2shady4u/godot-sqlite / vfstraceFileControl

Function vfstraceFileControl

src/sqlite/shell.c:16372–16569  ·  view source on GitHub ↗

** File control method. For custom operations on an vfstrace-file. */

Source from the content-addressed store, hash-verified

16370** File control method. For custom operations on an vfstrace-file.
16371*/
16372static int vfstraceFileControl(sqlite3_file *pFile, int op, void *pArg){
16373 vfstrace_file *p = (vfstrace_file *)pFile;
16374 vfstrace_info *pInfo = p->pInfo;
16375 int rc;
16376 char zBuf[100];
16377 char zBuf2[100];
16378 char *zOp;
16379 char *zRVal = 0;
16380 vfstraceOnOff(pInfo, VTR_FCTRL);
16381 switch( op ){
16382 case SQLITE_FCNTL_LOCKSTATE: zOp = "LOCKSTATE"; break;
16383 case SQLITE_GET_LOCKPROXYFILE: zOp = "GET_LOCKPROXYFILE"; break;
16384 case SQLITE_SET_LOCKPROXYFILE: zOp = "SET_LOCKPROXYFILE"; break;
16385 case SQLITE_LAST_ERRNO: zOp = "LAST_ERRNO"; break;
16386 case SQLITE_FCNTL_SIZE_HINT: {
16387 sqlite3_snprintf(sizeof(zBuf), zBuf, "SIZE_HINT,%lld",
16388 *(sqlite3_int64*)pArg);
16389 zOp = zBuf;
16390 break;
16391 }
16392 case SQLITE_FCNTL_CHUNK_SIZE: {
16393 sqlite3_snprintf(sizeof(zBuf), zBuf, "CHUNK_SIZE,%d", *(int*)pArg);
16394 zOp = zBuf;
16395 break;
16396 }
16397 case SQLITE_FCNTL_FILE_POINTER: zOp = "FILE_POINTER"; break;
16398 case SQLITE_FCNTL_WIN32_AV_RETRY: zOp = "WIN32_AV_RETRY"; break;
16399 case SQLITE_FCNTL_PERSIST_WAL: {
16400 sqlite3_snprintf(sizeof(zBuf), zBuf, "PERSIST_WAL,%d", *(int*)pArg);
16401 zOp = zBuf;
16402 break;
16403 }
16404 case SQLITE_FCNTL_OVERWRITE: zOp = "OVERWRITE"; break;
16405 case SQLITE_FCNTL_VFSNAME: zOp = "VFSNAME"; break;
16406 case SQLITE_FCNTL_POWERSAFE_OVERWRITE: zOp = "POWERSAFE_OVERWRITE"; break;
16407 case SQLITE_FCNTL_PRAGMA: {
16408 const char *const* a = (const char*const*)pArg;
16409 if( a[1] && strcmp(a[1],"vfstrace")==0 && a[2] ){
16410 const u8 *zArg = (const u8*)a[2];
16411 if( zArg[0]>='0' && zArg[0]<='9' ){
16412 pInfo->mTrace = (sqlite3_uint64)strtoll(a[2], 0, 0);
16413 }else{
16414 static const struct {
16415 const char *z;
16416 unsigned int m;
16417 } aKw[] = {
16418 { "all", 0xffffffff },
16419 { "close", VTR_CLOSE },
16420 { "read", VTR_READ },
16421 { "write", VTR_WRITE },
16422 { "truncate", VTR_TRUNC },
16423 { "sync", VTR_SYNC },
16424 { "filesize", VTR_FSIZE },
16425 { "lock", VTR_LOCK },
16426 { "unlock", VTR_UNLOCK },
16427 { "checkreservedlock", VTR_CRL },
16428 { "filecontrol", VTR_FCTRL },
16429 { "sectorsize", VTR_SECSZ },

Callers

nothing calls this directly

Calls 3

vfstraceOnOffFunction · 0.85
vfstrace_printfFunction · 0.85
vfstrace_print_errcodeFunction · 0.85

Tested by

no test coverage detected