Index: third_party/sqlite/src/src/dbstat.c |
diff --git a/third_party/sqlite/src/src/dbstat.c b/third_party/sqlite/src/src/dbstat.c |
index ae55d6b803800f9ae5c76401e3ccc9b330fe7105..13974bb979033550099a2ea4339a9c387dc69018 100644 |
--- a/third_party/sqlite/src/src/dbstat.c |
+++ b/third_party/sqlite/src/src/dbstat.c |
@@ -58,10 +58,10 @@ |
*/ |
#define VTAB_SCHEMA \ |
"CREATE TABLE xx( " \ |
- " name STRING, /* Name of table or index */" \ |
- " path INTEGER, /* Path to page from root */" \ |
+ " name TEXT, /* Name of table or index */" \ |
+ " path TEXT, /* Path to page from root */" \ |
" pageno INTEGER, /* Page number */" \ |
- " pagetype STRING, /* 'internal', 'leaf' or 'overflow' */" \ |
+ " pagetype TEXT, /* 'internal', 'leaf' or 'overflow' */" \ |
" ncell INTEGER, /* Cells on page (0 for overflow) */" \ |
" payload INTEGER, /* Bytes of payload on this page */" \ |
" unused INTEGER, /* Bytes of unused space on this page */" \ |
@@ -149,7 +149,9 @@ static int statConnect( |
int iDb; |
if( argc>=4 ){ |
- iDb = sqlite3FindDbName(db, argv[3]); |
+ Token nm; |
+ sqlite3TokenInit(&nm, (char*)argv[3]); |
+ iDb = sqlite3FindDb(db, &nm); |
if( iDb<0 ){ |
*pzErr = sqlite3_mprintf("no such database: %s", argv[3]); |
return SQLITE_ERROR; |
@@ -160,7 +162,7 @@ static int statConnect( |
rc = sqlite3_declare_vtab(db, VTAB_SCHEMA); |
if( rc==SQLITE_OK ){ |
pTab = (StatTable *)sqlite3_malloc64(sizeof(StatTable)); |
- if( pTab==0 ) rc = SQLITE_NOMEM; |
+ if( pTab==0 ) rc = SQLITE_NOMEM_BKPT; |
} |
assert( rc==SQLITE_OK || pTab==0 ); |
@@ -241,7 +243,7 @@ static int statOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor){ |
pCsr = (StatCursor *)sqlite3_malloc64(sizeof(StatCursor)); |
if( pCsr==0 ){ |
- return SQLITE_NOMEM; |
+ return SQLITE_NOMEM_BKPT; |
}else{ |
memset(pCsr, 0, sizeof(StatCursor)); |
pCsr->base.pVtab = pVTab; |
@@ -347,7 +349,7 @@ static int statDecodePage(Btree *pBt, StatPage *p){ |
nUsable = szPage - sqlite3BtreeGetReserveNoMutex(pBt); |
sqlite3BtreeLeave(pBt); |
p->aCell = sqlite3_malloc64((p->nCell+1) * sizeof(StatCell)); |
- if( p->aCell==0 ) return SQLITE_NOMEM; |
+ if( p->aCell==0 ) return SQLITE_NOMEM_BKPT; |
memset(p->aCell, 0, (p->nCell+1) * sizeof(StatCell)); |
for(i=0; i<p->nCell; i++){ |
@@ -380,7 +382,7 @@ static int statDecodePage(Btree *pBt, StatPage *p){ |
pCell->nLastOvfl = (nPayload-nLocal) - (nOvfl-1) * (nUsable-4); |
pCell->nOvfl = nOvfl; |
pCell->aOvfl = sqlite3_malloc64(sizeof(u32)*nOvfl); |
- if( pCell->aOvfl==0 ) return SQLITE_NOMEM; |
+ if( pCell->aOvfl==0 ) return SQLITE_NOMEM_BKPT; |
pCell->aOvfl[0] = sqlite3Get4byte(&aData[iOff+nLocal]); |
for(j=1; j<nOvfl; j++){ |
int rc; |
@@ -459,7 +461,7 @@ statNextRestart: |
pCsr->aPage[0].iCell = 0; |
pCsr->aPage[0].zPath = z = sqlite3_mprintf("/"); |
pCsr->iPage = 0; |
- if( z==0 ) rc = SQLITE_NOMEM; |
+ if( z==0 ) rc = SQLITE_NOMEM_BKPT; |
}else{ |
pCsr->isEof = 1; |
return sqlite3_reset(pCsr->pStmt); |
@@ -494,7 +496,7 @@ statNextRestart: |
} |
pCell->iOvfl++; |
statSizeAndOffset(pCsr); |
- return z==0 ? SQLITE_NOMEM : SQLITE_OK; |
+ return z==0 ? SQLITE_NOMEM_BKPT : SQLITE_OK; |
} |
if( p->iRightChildPg ) break; |
p->iCell++; |
@@ -518,7 +520,7 @@ statNextRestart: |
p[1].iCell = 0; |
p[1].zPath = z = sqlite3_mprintf("%s%.3x/", p->zPath, p->iCell); |
p->iCell++; |
- if( z==0 ) rc = SQLITE_NOMEM; |
+ if( z==0 ) rc = SQLITE_NOMEM_BKPT; |
} |
@@ -552,7 +554,7 @@ statNextRestart: |
pCsr->nUnused = p->nUnused; |
pCsr->nMxPayload = p->nMxPayload; |
pCsr->zPath = z = sqlite3_mprintf("%s", p->zPath); |
- if( z==0 ) rc = SQLITE_NOMEM; |
+ if( z==0 ) rc = SQLITE_NOMEM_BKPT; |
nPayload = 0; |
for(i=0; i<p->nCell; i++){ |
nPayload += p->aCell[i].nLocal; |
@@ -586,7 +588,7 @@ static int statFilter( |
if( pCsr->iDb<0 ){ |
sqlite3_free(pCursor->pVtab->zErrMsg); |
pCursor->pVtab->zErrMsg = sqlite3_mprintf("no such schema: %s", zDbase); |
- return pCursor->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM; |
+ return pCursor->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM_BKPT; |
} |
}else{ |
pCsr->iDb = pTab->iDb; |
@@ -600,9 +602,9 @@ static int statFilter( |
" UNION ALL " |
"SELECT name, rootpage, type" |
" FROM \"%w\".%s WHERE rootpage!=0" |
- " ORDER BY name", pTab->db->aDb[pCsr->iDb].zName, zMaster); |
+ " ORDER BY name", pTab->db->aDb[pCsr->iDb].zDbSName, zMaster); |
if( zSql==0 ){ |
- return SQLITE_NOMEM; |
+ return SQLITE_NOMEM_BKPT; |
}else{ |
rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0); |
sqlite3_free(zSql); |
@@ -654,7 +656,7 @@ static int statColumn( |
default: { /* schema */ |
sqlite3 *db = sqlite3_context_db_handle(ctx); |
int iDb = pCsr->iDb; |
- sqlite3_result_text(ctx, db->aDb[iDb].zName, -1, SQLITE_STATIC); |
+ sqlite3_result_text(ctx, db->aDb[iDb].zDbSName, -1, SQLITE_STATIC); |
break; |
} |
} |