Shorten over-length source code lines in shell.c.
FossilOrigin-Name: 7f3819f6422badd344c1264b0cd2f2c7afe077df
This commit is contained in:
parent
b391b94431
commit
4ace5362c2
16
manifest
16
manifest
@ -1,5 +1,5 @@
|
|||||||
C Add\snew\stest\sfile\se_blobopen.test,\scontaining\stests\sfor\ssqlite3_blob_open().
|
C Shorten\sover-length\ssource\scode\slines\sin\sshell.c.
|
||||||
D 2014-11-07T14:41:11.404
|
D 2014-11-10T14:42:28.114
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
|
F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@ -228,7 +228,7 @@ F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
|
|||||||
F src/resolve.c 4965007d6497b6a4d7a6d98751cc39712885f952
|
F src/resolve.c 4965007d6497b6a4d7a6d98751cc39712885f952
|
||||||
F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
|
F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
|
||||||
F src/select.c 428165951748151e87a15295b7357221433e311b
|
F src/select.c 428165951748151e87a15295b7357221433e311b
|
||||||
F src/shell.c 0500307f63e3675dc4ab21112c6086b4d146fc08
|
F src/shell.c bc28d5992109717c87804e2eb1a08a7c8cc7a2fd
|
||||||
F src/sqlite.h.in 5abfd7d6c9bd2054105820de5ce12b1e491b1dc9
|
F src/sqlite.h.in 5abfd7d6c9bd2054105820de5ce12b1e491b1dc9
|
||||||
F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
|
F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
|
||||||
F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d
|
F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d
|
||||||
@ -452,7 +452,7 @@ F test/descidx3.test 09ddbe3f5295f482d2f8b687cf6db8bad7acd9a2
|
|||||||
F test/diskfull.test 106391384780753ea6896b7b4f005d10e9866b6e
|
F test/diskfull.test 106391384780753ea6896b7b4f005d10e9866b6e
|
||||||
F test/distinct.test 086e70c765f172e8974e9f83b9ac5ca03c154e77
|
F test/distinct.test 086e70c765f172e8974e9f83b9ac5ca03c154e77
|
||||||
F test/distinctagg.test 1a6ef9c87a58669438fc771450d7a72577417376
|
F test/distinctagg.test 1a6ef9c87a58669438fc771450d7a72577417376
|
||||||
F test/e_blobopen.test 234f960d90235a9b51ec3ca1e062e8541dd558d8 w test/e_blob.test
|
F test/e_blobopen.test 234f960d90235a9b51ec3ca1e062e8541dd558d8
|
||||||
F test/e_changes.test fd66105385153dbf21fdb35eb8ef6c3e1eade579
|
F test/e_changes.test fd66105385153dbf21fdb35eb8ef6c3e1eade579
|
||||||
F test/e_createtable.test c7e67b49e6cf92473c8fb30ab26143e9e2128cf7
|
F test/e_createtable.test c7e67b49e6cf92473c8fb30ab26143e9e2128cf7
|
||||||
F test/e_delete.test d5186e2f5478b659f16a2c8b66c09892823e542a
|
F test/e_delete.test d5186e2f5478b659f16a2c8b66c09892823e542a
|
||||||
@ -1213,7 +1213,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
|
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
|
||||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||||
P b45bc80bb16f07192d84fd14433bb724a84d4146
|
P ecbccd0e594d22b3ae7fabc8037951dc49570bc3
|
||||||
R 0ead7b89f3ed1286937ae097bba351c9
|
R 1a35da25c621486ba7906429ccbf946c
|
||||||
U dan
|
U drh
|
||||||
Z d785e78de9d268050b7beac3067db32e
|
Z 427c2830707548878070627d5502fc48
|
||||||
|
@ -1 +1 @@
|
|||||||
ecbccd0e594d22b3ae7fabc8037951dc49570bc3
|
7f3819f6422badd344c1264b0cd2f2c7afe077df
|
100
src/shell.c
100
src/shell.c
@ -172,7 +172,8 @@ static HANDLE hProcess;
|
|||||||
static FILETIME ftKernelBegin;
|
static FILETIME ftKernelBegin;
|
||||||
static FILETIME ftUserBegin;
|
static FILETIME ftUserBegin;
|
||||||
static sqlite3_int64 ftWallBegin;
|
static sqlite3_int64 ftWallBegin;
|
||||||
typedef BOOL (WINAPI *GETPROCTIMES)(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);
|
typedef BOOL (WINAPI *GETPROCTIMES)(HANDLE, LPFILETIME, LPFILETIME,
|
||||||
|
LPFILETIME, LPFILETIME);
|
||||||
static GETPROCTIMES getProcessTimesAddr = NULL;
|
static GETPROCTIMES getProcessTimesAddr = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -183,15 +184,16 @@ static int hasTimer(void){
|
|||||||
if( getProcessTimesAddr ){
|
if( getProcessTimesAddr ){
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
/* GetProcessTimes() isn't supported in WIN95 and some other Windows versions.
|
/* GetProcessTimes() isn't supported in WIN95 and some other Windows
|
||||||
** See if the version we are running on has it, and if it does, save off
|
** versions. See if the version we are running on has it, and if it
|
||||||
** a pointer to it and the current process handle.
|
** does, save off a pointer to it and the current process handle.
|
||||||
*/
|
*/
|
||||||
hProcess = GetCurrentProcess();
|
hProcess = GetCurrentProcess();
|
||||||
if( hProcess ){
|
if( hProcess ){
|
||||||
HINSTANCE hinstLib = LoadLibrary(TEXT("Kernel32.dll"));
|
HINSTANCE hinstLib = LoadLibrary(TEXT("Kernel32.dll"));
|
||||||
if( NULL != hinstLib ){
|
if( NULL != hinstLib ){
|
||||||
getProcessTimesAddr = (GETPROCTIMES) GetProcAddress(hinstLib, "GetProcessTimes");
|
getProcessTimesAddr =
|
||||||
|
(GETPROCTIMES) GetProcAddress(hinstLib, "GetProcessTimes");
|
||||||
if( NULL != getProcessTimesAddr ){
|
if( NULL != getProcessTimesAddr ){
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -208,7 +210,8 @@ static int hasTimer(void){
|
|||||||
static void beginTimer(void){
|
static void beginTimer(void){
|
||||||
if( enableTimer && getProcessTimesAddr ){
|
if( enableTimer && getProcessTimesAddr ){
|
||||||
FILETIME ftCreation, ftExit;
|
FILETIME ftCreation, ftExit;
|
||||||
getProcessTimesAddr(hProcess, &ftCreation, &ftExit, &ftKernelBegin, &ftUserBegin);
|
getProcessTimesAddr(hProcess,&ftCreation,&ftExit,
|
||||||
|
&ftKernelBegin,&ftUserBegin);
|
||||||
ftWallBegin = timeOfDay();
|
ftWallBegin = timeOfDay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -227,7 +230,7 @@ static void endTimer(void){
|
|||||||
if( enableTimer && getProcessTimesAddr){
|
if( enableTimer && getProcessTimesAddr){
|
||||||
FILETIME ftCreation, ftExit, ftKernelEnd, ftUserEnd;
|
FILETIME ftCreation, ftExit, ftKernelEnd, ftUserEnd;
|
||||||
sqlite3_int64 ftWallEnd = timeOfDay();
|
sqlite3_int64 ftWallEnd = timeOfDay();
|
||||||
getProcessTimesAddr(hProcess, &ftCreation, &ftExit, &ftKernelEnd, &ftUserEnd);
|
getProcessTimesAddr(hProcess,&ftCreation,&ftExit,&ftKernelEnd,&ftUserEnd);
|
||||||
printf("Run Time: real %.3f user %f sys %f\n",
|
printf("Run Time: real %.3f user %f sys %f\n",
|
||||||
(ftWallEnd - ftWallBegin)*0.001,
|
(ftWallEnd - ftWallBegin)*0.001,
|
||||||
timeDiff(&ftUserBegin, &ftUserEnd),
|
timeDiff(&ftUserBegin, &ftUserEnd),
|
||||||
@ -726,7 +729,13 @@ static void interrupt_handler(int NotUsed){
|
|||||||
** This is the callback routine that the shell
|
** This is the callback routine that the shell
|
||||||
** invokes for each row of a query result.
|
** invokes for each row of a query result.
|
||||||
*/
|
*/
|
||||||
static int shell_callback(void *pArg, int nArg, char **azArg, char **azCol, int *aiType){
|
static int shell_callback(
|
||||||
|
void *pArg,
|
||||||
|
int nArg, /* Number of result columns */
|
||||||
|
char **azArg, /* Text of each result column */
|
||||||
|
char **azCol, /* Column names */
|
||||||
|
int *aiType /* Column types */
|
||||||
|
){
|
||||||
int i;
|
int i;
|
||||||
ShellState *p = (ShellState*)pArg;
|
ShellState *p = (ShellState*)pArg;
|
||||||
|
|
||||||
@ -1105,57 +1114,77 @@ static int display_stats(
|
|||||||
|
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_MEMORY_USED, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_MEMORY_USED, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Memory Used: %d (max %d) bytes\n", iCur, iHiwtr);
|
fprintf(pArg->out,
|
||||||
|
"Memory Used: %d (max %d) bytes\n",
|
||||||
|
iCur, iHiwtr);
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_MALLOC_COUNT, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_MALLOC_COUNT, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Number of Outstanding Allocations: %d (max %d)\n", iCur, iHiwtr);
|
fprintf(pArg->out, "Number of Outstanding Allocations: %d (max %d)\n",
|
||||||
|
iCur, iHiwtr);
|
||||||
if( pArg->shellFlgs & SHFLG_Pagecache ){
|
if( pArg->shellFlgs & SHFLG_Pagecache ){
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_PAGECACHE_USED, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_PAGECACHE_USED, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Number of Pcache Pages Used: %d (max %d) pages\n", iCur, iHiwtr);
|
fprintf(pArg->out,
|
||||||
|
"Number of Pcache Pages Used: %d (max %d) pages\n",
|
||||||
|
iCur, iHiwtr);
|
||||||
}
|
}
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_PAGECACHE_OVERFLOW, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_PAGECACHE_OVERFLOW, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Number of Pcache Overflow Bytes: %d (max %d) bytes\n", iCur, iHiwtr);
|
fprintf(pArg->out,
|
||||||
|
"Number of Pcache Overflow Bytes: %d (max %d) bytes\n",
|
||||||
|
iCur, iHiwtr);
|
||||||
if( pArg->shellFlgs & SHFLG_Scratch ){
|
if( pArg->shellFlgs & SHFLG_Scratch ){
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_SCRATCH_USED, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_SCRATCH_USED, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Number of Scratch Allocations Used: %d (max %d)\n", iCur, iHiwtr);
|
fprintf(pArg->out, "Number of Scratch Allocations Used: %d (max %d)\n",
|
||||||
|
iCur, iHiwtr);
|
||||||
}
|
}
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_SCRATCH_OVERFLOW, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_SCRATCH_OVERFLOW, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Number of Scratch Overflow Bytes: %d (max %d) bytes\n", iCur, iHiwtr);
|
fprintf(pArg->out,
|
||||||
|
"Number of Scratch Overflow Bytes: %d (max %d) bytes\n",
|
||||||
|
iCur, iHiwtr);
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_MALLOC_SIZE, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_MALLOC_SIZE, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Largest Allocation: %d bytes\n", iHiwtr);
|
fprintf(pArg->out, "Largest Allocation: %d bytes\n",
|
||||||
|
iHiwtr);
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_PAGECACHE_SIZE, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_PAGECACHE_SIZE, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Largest Pcache Allocation: %d bytes\n", iHiwtr);
|
fprintf(pArg->out, "Largest Pcache Allocation: %d bytes\n",
|
||||||
|
iHiwtr);
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_SCRATCH_SIZE, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_SCRATCH_SIZE, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Largest Scratch Allocation: %d bytes\n", iHiwtr);
|
fprintf(pArg->out, "Largest Scratch Allocation: %d bytes\n",
|
||||||
|
iHiwtr);
|
||||||
#ifdef YYTRACKMAXSTACKDEPTH
|
#ifdef YYTRACKMAXSTACKDEPTH
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_status(SQLITE_STATUS_PARSER_STACK, &iCur, &iHiwtr, bReset);
|
sqlite3_status(SQLITE_STATUS_PARSER_STACK, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Deepest Parser Stack: %d (max %d)\n", iCur, iHiwtr);
|
fprintf(pArg->out, "Deepest Parser Stack: %d (max %d)\n",
|
||||||
|
iCur, iHiwtr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if( pArg && pArg->out && db ){
|
if( pArg && pArg->out && db ){
|
||||||
if( pArg->shellFlgs & SHFLG_Lookaside ){
|
if( pArg->shellFlgs & SHFLG_Lookaside ){
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_USED, &iCur, &iHiwtr, bReset);
|
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_USED,
|
||||||
fprintf(pArg->out, "Lookaside Slots Used: %d (max %d)\n", iCur, iHiwtr);
|
&iCur, &iHiwtr, bReset);
|
||||||
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_HIT, &iCur, &iHiwtr, bReset);
|
fprintf(pArg->out, "Lookaside Slots Used: %d (max %d)\n",
|
||||||
|
iCur, iHiwtr);
|
||||||
|
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_HIT,
|
||||||
|
&iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Successful lookaside attempts: %d\n", iHiwtr);
|
fprintf(pArg->out, "Successful lookaside attempts: %d\n", iHiwtr);
|
||||||
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE, &iCur, &iHiwtr, bReset);
|
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE,
|
||||||
|
&iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Lookaside failures due to size: %d\n", iHiwtr);
|
fprintf(pArg->out, "Lookaside failures due to size: %d\n", iHiwtr);
|
||||||
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL, &iCur, &iHiwtr, bReset);
|
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL,
|
||||||
|
&iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Lookaside failures due to OOM: %d\n", iHiwtr);
|
fprintf(pArg->out, "Lookaside failures due to OOM: %d\n", iHiwtr);
|
||||||
}
|
}
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_db_status(db, SQLITE_DBSTATUS_CACHE_USED, &iCur, &iHiwtr, bReset);
|
sqlite3_db_status(db, SQLITE_DBSTATUS_CACHE_USED, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Pager Heap Usage: %d bytes\n", iCur); iHiwtr = iCur = -1;
|
fprintf(pArg->out, "Pager Heap Usage: %d bytes\n",iCur);
|
||||||
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_db_status(db, SQLITE_DBSTATUS_CACHE_HIT, &iCur, &iHiwtr, 1);
|
sqlite3_db_status(db, SQLITE_DBSTATUS_CACHE_HIT, &iCur, &iHiwtr, 1);
|
||||||
fprintf(pArg->out, "Page cache hits: %d\n", iCur);
|
fprintf(pArg->out, "Page cache hits: %d\n", iCur);
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
@ -1166,18 +1195,19 @@ static int display_stats(
|
|||||||
fprintf(pArg->out, "Page cache writes: %d\n", iCur);
|
fprintf(pArg->out, "Page cache writes: %d\n", iCur);
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_db_status(db, SQLITE_DBSTATUS_SCHEMA_USED, &iCur, &iHiwtr, bReset);
|
sqlite3_db_status(db, SQLITE_DBSTATUS_SCHEMA_USED, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Schema Heap Usage: %d bytes\n", iCur);
|
fprintf(pArg->out, "Schema Heap Usage: %d bytes\n",iCur);
|
||||||
iHiwtr = iCur = -1;
|
iHiwtr = iCur = -1;
|
||||||
sqlite3_db_status(db, SQLITE_DBSTATUS_STMT_USED, &iCur, &iHiwtr, bReset);
|
sqlite3_db_status(db, SQLITE_DBSTATUS_STMT_USED, &iCur, &iHiwtr, bReset);
|
||||||
fprintf(pArg->out, "Statement Heap/Lookaside Usage: %d bytes\n", iCur);
|
fprintf(pArg->out, "Statement Heap/Lookaside Usage: %d bytes\n",iCur);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( pArg && pArg->out && db && pArg->pStmt ){
|
if( pArg && pArg->out && db && pArg->pStmt ){
|
||||||
iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_FULLSCAN_STEP, bReset);
|
iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_FULLSCAN_STEP,
|
||||||
|
bReset);
|
||||||
fprintf(pArg->out, "Fullscan Steps: %d\n", iCur);
|
fprintf(pArg->out, "Fullscan Steps: %d\n", iCur);
|
||||||
iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_SORT, bReset);
|
iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_SORT, bReset);
|
||||||
fprintf(pArg->out, "Sort Operations: %d\n", iCur);
|
fprintf(pArg->out, "Sort Operations: %d\n", iCur);
|
||||||
iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_AUTOINDEX, bReset);
|
iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_AUTOINDEX,bReset);
|
||||||
fprintf(pArg->out, "Autoindex Inserts: %d\n", iCur);
|
fprintf(pArg->out, "Autoindex Inserts: %d\n", iCur);
|
||||||
iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_VM_STEP, bReset);
|
iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_VM_STEP, bReset);
|
||||||
fprintf(pArg->out, "Virtual Machine Steps: %d\n", iCur);
|
fprintf(pArg->out, "Virtual Machine Steps: %d\n", iCur);
|
||||||
@ -1221,7 +1251,8 @@ static void display_scanstats(
|
|||||||
sqlite3_stmt_scanstatus(p, i, SQLITE_SCANSTAT_EXPLAIN, (void*)&zExplain);
|
sqlite3_stmt_scanstatus(p, i, SQLITE_SCANSTAT_EXPLAIN, (void*)&zExplain);
|
||||||
fprintf(pArg->out, "Loop %2d: %s\n", n, zExplain);
|
fprintf(pArg->out, "Loop %2d: %s\n", n, zExplain);
|
||||||
rEstLoop *= rEst;
|
rEstLoop *= rEst;
|
||||||
fprintf(pArg->out, " nLoop=%-8lld nRow=%-8lld estRow=%-8lld estRow/Loop=%-8g\n",
|
fprintf(pArg->out,
|
||||||
|
" nLoop=%-8lld nRow=%-8lld estRow=%-8lld estRow/Loop=%-8g\n",
|
||||||
nLoop, nVisit, (sqlite3_int64)(rEstLoop+0.5), rEst
|
nLoop, nVisit, (sqlite3_int64)(rEstLoop+0.5), rEst
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1271,7 +1302,8 @@ static void explain_data_prepare(ShellState *p, sqlite3_stmt *pSql){
|
|||||||
|
|
||||||
const char *azNext[] = { "Next", "Prev", "VPrev", "VNext", "SorterNext",
|
const char *azNext[] = { "Next", "Prev", "VPrev", "VNext", "SorterNext",
|
||||||
"NextIfOpen", "PrevIfOpen", 0 };
|
"NextIfOpen", "PrevIfOpen", 0 };
|
||||||
const char *azYield[] = { "Yield", "SeekLT", "SeekGT", "RowSetRead", "Rewind", 0 };
|
const char *azYield[] = { "Yield", "SeekLT", "SeekGT", "RowSetRead",
|
||||||
|
"Rewind", 0 };
|
||||||
const char *azGoto[] = { "Goto", 0 };
|
const char *azGoto[] = { "Goto", 0 };
|
||||||
|
|
||||||
/* Try to figure out if this is really an EXPLAIN statement. If this
|
/* Try to figure out if this is really an EXPLAIN statement. If this
|
||||||
@ -1384,7 +1416,8 @@ static int shell_exec(
|
|||||||
/* Show the EXPLAIN QUERY PLAN if .eqp is on */
|
/* Show the EXPLAIN QUERY PLAN if .eqp is on */
|
||||||
if( pArg && pArg->autoEQP ){
|
if( pArg && pArg->autoEQP ){
|
||||||
sqlite3_stmt *pExplain;
|
sqlite3_stmt *pExplain;
|
||||||
char *zEQP = sqlite3_mprintf("EXPLAIN QUERY PLAN %s", sqlite3_sql(pStmt));
|
char *zEQP = sqlite3_mprintf("EXPLAIN QUERY PLAN %s",
|
||||||
|
sqlite3_sql(pStmt));
|
||||||
rc = sqlite3_prepare_v2(db, zEQP, -1, &pExplain, 0);
|
rc = sqlite3_prepare_v2(db, zEQP, -1, &pExplain, 0);
|
||||||
if( rc==SQLITE_OK ){
|
if( rc==SQLITE_OK ){
|
||||||
while( sqlite3_step(pExplain)==SQLITE_ROW ){
|
while( sqlite3_step(pExplain)==SQLITE_ROW ){
|
||||||
@ -3335,7 +3368,7 @@ static int do_meta_command(char *zLine, ShellState *p){
|
|||||||
for(i=0; i<nPrintRow; i++){
|
for(i=0; i<nPrintRow; i++){
|
||||||
for(j=i; j<nRow; j+=nPrintRow){
|
for(j=i; j<nRow; j+=nPrintRow){
|
||||||
char *zSp = j<nPrintRow ? "" : " ";
|
char *zSp = j<nPrintRow ? "" : " ";
|
||||||
fprintf(p->out, "%s%-*s", zSp, maxlen, azResult[j] ? azResult[j] : "");
|
fprintf(p->out, "%s%-*s", zSp, maxlen, azResult[j] ? azResult[j]:"");
|
||||||
}
|
}
|
||||||
fprintf(p->out, "\n");
|
fprintf(p->out, "\n");
|
||||||
}
|
}
|
||||||
@ -3805,7 +3838,8 @@ static char *find_home_dir(void){
|
|||||||
static char *home_dir = NULL;
|
static char *home_dir = NULL;
|
||||||
if( home_dir ) return home_dir;
|
if( home_dir ) return home_dir;
|
||||||
|
|
||||||
#if !defined(_WIN32) && !defined(WIN32) && !defined(_WIN32_WCE) && !defined(__RTP__) && !defined(_WRS_KERNEL)
|
#if !defined(_WIN32) && !defined(WIN32) && !defined(_WIN32_WCE) \
|
||||||
|
&& !defined(__RTP__) && !defined(_WRS_KERNEL)
|
||||||
{
|
{
|
||||||
struct passwd *pwent;
|
struct passwd *pwent;
|
||||||
uid_t uid = getuid();
|
uid_t uid = getuid();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user