Team Ai
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
sqlite3_analyzer.c.in81 linesDownload Raw Back to tool
1/*2** Read an SQLite database file and analyze its space utilization.  Generate3** text on standard output.4*/5#define TCLSH_INIT_PROC sqlite3_analyzer_init_proc6IFDEF INCLUDE_SQLITE3_C7#undef SQLITE_ENABLE_DBSTAT_VTAB8#define SQLITE_ENABLE_DBSTAT_VTAB 19#undef SQLITE_THREADSAFE10#define SQLITE_THREADSAFE 011#undef SQLITE_ENABLE_COLUMN_METADATA12#define SQLITE_OMIT_DECLTYPE 113#define SQLITE_OMIT_DEPRECATED 114#define SQLITE_OMIT_PROGRESS_CALLBACK 115#define SQLITE_OMIT_SHARED_CACHE 116#define SQLITE_DEFAULT_MEMSTATUS 017#define SQLITE_MAX_EXPR_DEPTH 018#define SQLITE_OMIT_LOAD_EXTENSION 119INCLUDE sqlite3.c20ELSE21#include "sqlite3.h"22ENDIF23INCLUDE $ROOT/src/tclsqlite.c24 25#if defined(_WIN32)26INCLUDE $ROOT/ext/misc/sqlite3_stdio.h27INCLUDE $ROOT/ext/misc/sqlite3_stdio.c28 29/* Substitute "puts" command.  Only these forms recognized:30**31**      puts STRING32**      puts stderr STRING33**      puts -nonewline STRING34*/35static int subst_puts(36  void *NotUsed,37  Tcl_Interp *interp,38  int objc,39  Tcl_Obj *const*objv40){41  FILE *pOut = stdout;42  const char *zOut;43  int addNewLine = 1;44  if( objc==2 ){45    zOut = Tcl_GetString(objv[1]);46  }else if( objc!=3 ){47    Tcl_WrongNumArgs(interp, 1, objv, "?stderr|-nonewline? STRING");48    return TCL_ERROR;49  }else{50    const char *zArg = Tcl_GetString(objv[1]);51    if( zArg==0 ) return TCL_ERROR;52    zOut = Tcl_GetString(objv[2]);53    if( strcmp(zArg, "stderr")==0 ){54      pOut = stderr;55    }else if( strcmp(zArg, "-nonewline")==0 ){56      addNewLine = 0;57    }else{58      Tcl_AppendResult(interp, "bad argument: ", zArg, NULL);59      return TCL_ERROR;60    }61  }62  sqlite3_fputs(zOut, pOut);63  if( addNewLine ) sqlite3_fputs("\n", pOut);64  fflush(pOut);65  return TCL_OK;66}67#endif /* defined(_WIN32) */68 69const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){70#if defined(_WIN32)71  Tcl_CreateObjCommand(interp, "puts", subst_puts, 0, 0);72#else  73  (void)interp;74#endif75  return76BEGIN_STRING77INCLUDE $ROOT/tool/spaceanal.tcl78END_STRING79;80}81