-C The\ssqlite3_str_new()\sinterface\snever\sreturns\sNULL,\seven\safter\san\sOOM.\nCode\sthat\suses\sthat\sinterface\sshould\sinvoke\ssqlite3_str_errcode()\sto\ssee\nif\san\sOOM\shas\soccurred.
-D 2026-04-15T14:41:25.480
+C Tentatively\schange\sthe\sname\sof\sthe\snew\s".dbstat"\sdot-command\sto\s".inspect"\nas\ssuggested\sby\n[forum:/info/2026-04-15T01:09:41|forum\spost\s2026-04-15T01:09:41]
+D 2026-04-16T13:07:22.857
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/resolve.c 928ff887f2a7c64275182060d94d06fdddbe32226c569781cf7e7edc6f58d7fd
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c ffe199f025a0dd74670d2a77232bdea364a4d7b36f32c64a6572d39ba6a11576
-F src/shell.c.in 486029de07dea8dbe2c43cd7c86a35257f586894df9716c5998b95a4c96f655a
+F src/shell.c.in 2f2ddaf78d6bf6a7b40935a7602d040baaab0be7d9db7561346a7894a80f083d
F src/sqlite.h.in 39d2e09114d2bdb7afd998f4a469c8f8cd065f8093835a7d0422f260fc78fb4f
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F src/sqlite3ext.h 9788c301f95370fa30e808861f1d2e6f022a816ddbe2a4f67486784c1b31db2e
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 92d8ac0c4938e43b00111b43630ecfa91c30e5200ca03937a84f4b50bd1a13b3
-R 2044f397ccfeb7d1bf77600ef85df643
+P cb910047edc591102dd4ed0d57c863b366981b8aa1d3085d5f95b1fbbabf6c31
+R 2b1acc2b6c6c35e04d6e09a12ad705d3
+T *branch * dbstat-to-inspect
+T *sym-dbstat-to-inspect *
+T -sym-trunk *
U drh
-Z e3131e0c1c5850c27f08aad1e0cda310
+Z d665cd7605251ac5906aaed12582f5c4
# Remove this line to create a well-formed Fossil manifest.
#if SQLITE_SHELL_HAVE_RECOVER
".dbinfo ?DB? Show status information about the database",
#endif
- ".dbstat ?SCHEMA? Report database space and size stats",
".dbtotxt Hex dump of the database file",
".dump ?OBJECTS? Render database content as SQL",
" Options:",
" -a|--all Also show system-generated indexes",
" --expr Show only expression indexes",
" --sys Show only system-generated indexes",
+ ".inspect ?SCHEMA? Report database space and size stats",
".intck ?STEPS_PER_UNLOCK? Run an incremental integrity check on the db",
#ifdef SQLITE_ENABLE_IOTRACE
",iotrace FILE Enable I/O diagnostic logging to FILE",
}else
#endif /* SQLITE_SHELL_HAVE_RECOVER */
- if( c=='d' && n==6 && cli_strncmp(azArg[0], "dbstat", n)==0 ){
- const char *zSchema = 0;
- int ii;
- char *zSql;
- open_db(p, 0);
- for(ii=1; ii<nArg; ii++){
- const char *z = azArg[ii];
- if( z[0]=='-' ){
- dotCmdError(p, ii, "unknown option", 0);
- rc = 1;
- goto meta_command_exit;
- }
- if( zSchema ){
- dotCmdError(p, ii, "unknown argument", 0);
- rc = 1;
- goto meta_command_exit;
- }
- zSchema = z;
- }
- zSql = sqlite3_mprintf("SELECT analyze(%Q)", zSchema);
- shell_check_oom(zSql);
- modePush(p);
- modeChange(p, MODE_BATCH);
- p->mode.spec.nLineLimit = 0;
- p->mode.spec.nCharLimit = 0;
- p->mode.spec.nTitleLimit = 0;
- shell_exec(p, zSql, 0);
- modePop(p);
- sqlite3_free(zSql);
- }else
-
if( c=='d' && n>=3 && cli_strncmp(azArg[0], "dbtotxt", n)==0 ){
open_db(p, 0);
rc = shell_dbtotxt_command(p, nArg, azArg);
sqlite3_str_free(pSql);
}else
+ if( c=='i' && n>=4 && cli_strncmp(azArg[0], "inspect", n)==0 ){
+ const char *zSchema = 0;
+ int ii;
+ char *zSql;
+ open_db(p, 0);
+ for(ii=1; ii<nArg; ii++){
+ const char *z = azArg[ii];
+ if( z[0]=='-' ){
+ dotCmdError(p, ii, "unknown option", 0);
+ rc = 1;
+ goto meta_command_exit;
+ }
+ if( zSchema ){
+ dotCmdError(p, ii, "unknown argument", 0);
+ rc = 1;
+ goto meta_command_exit;
+ }
+ zSchema = z;
+ }
+ zSql = sqlite3_mprintf("SELECT analyze(%Q)", zSchema);
+ shell_check_oom(zSql);
+ modePush(p);
+ modeChange(p, MODE_BATCH);
+ p->mode.spec.nLineLimit = 0;
+ p->mode.spec.nCharLimit = 0;
+ p->mode.spec.nTitleLimit = 0;
+ shell_exec(p, zSql, 0);
+ modePop(p);
+ sqlite3_free(zSql);
+ }else
+
if( c=='i' && cli_strncmp(azArg[0], "intck", n)==0 ){
i64 iArg = 0;
if( nArg==2 ){