1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00

The code for sqlite3_analyzer is still in the tree, and you can still build

it using "make sqlite3_analyzer" but it does not get built as part of
"make tool-zip" and there is no mention of it in the README files and
similar.

FossilOrigin-Name: 77278079d9dddaff30a1862bf412329e91242a41be7eafc19d3fac8d872adeff
This commit is contained in:
drh
2026-10-09 23:18:07 +00:00
parent fc96a3c453
commit 265bd6339f
10 changed files with 21 additions and 126 deletions

View File

@@ -23,7 +23,7 @@ that are public domain include the following:
* All of the code used to compile the
[command-line interface](https://sqlite.org/cli.html)
* All of the code used to build various utility programs such as
"sqldiff", "sqlite3_rsync", and "sqlite3_analyzer".
"sqldiff" and "sqlite3_rsync".
The public domain source files usually contain a header comment

View File

@@ -1679,7 +1679,6 @@ EXTHDR = $(EXTHDR) \
TESTPROGS = \
testfixture.exe \
$(SQLITE3EXE) \
sqlite3_analyzer.exe \
sqldiff.exe \
dbhash.exe \
sqltclsh.exe
@@ -2573,10 +2572,10 @@ extensiontest: testfixture.exe testloadext.dll
@set PATH=$(LIBTCLPATH);$(PATH)
.\testfixture.exe $(TOP)\test\loadext.test $(TESTOPTS)
tool-zip: testfixture.exe sqlite3.exe sqldiff.exe sqlite3_analyzer.exe sqlite3_rsync.exe sqlite3.dll $(TOP)\tool\mktoolzip.tcl
tool-zip: testfixture.exe sqlite3.exe sqldiff.exe sqlite3_rsync.exe sqlite3.dll $(TOP)\tool\mktoolzip.tcl
.\testfixture.exe $(TOP)\tool\mktoolzip.tcl
snapshot-zip: testfixture.exe sqlite3.exe sqldiff.exe sqlite3_analyzer.exe sqlite3_rsync.exe sqlite3.dll $(TOP)\tool\mktoolzip.tcl
snapshot-zip: testfixture.exe sqlite3.exe sqldiff.exe sqlite3_rsync.exe sqlite3.dll $(TOP)\tool\mktoolzip.tcl
.\testfixture.exe $(TOP)\tool\mktoolzip.tcl --snapshot
coretestprogs: testfixture.exe sqlite3.exe

View File

@@ -115,7 +115,6 @@ For example:
make tclextension-install ;# Install the SQLite TCL extension
make test ;# Run development tests
make releasetest ;# Run full release tests
make sqlite3_analyzer ;# Builds the "sqlite3_analyzer" tool
See the makefile for additional targets. For debugging builds, the
core developers typically run "configure" with options like this:
@@ -179,7 +178,6 @@ file:
make tclextension-install
make test
make releasetest
make sqlite3_analyzer.exe
There are many other makefile targets. See comments in Makefile.msc for
details.

View File

@@ -89,7 +89,6 @@ guidance on building for Windows.
<li> `make tclextension-install`
<li> `make test`
<li> `make releasetest`
<li> `make sqlite3_analyzer`
</ul>
It is not required that you run the "tclextension-install" target prior to

View File

@@ -149,48 +149,6 @@ The command the developers use for building the deliverable DLL on the
That command generates both the sqlite3.dll and sqlite3.def files. The same
command works for both 32-bit and 64-bit builds.
## Statically Linking The TCL Library
Some utility programs associated with SQLite need to be linked
with TCL in order to function. The [sqlite3_analyzer.exe program](https://sqlite.org/sqlanalyze.html)
is an example. You can build as described above, and then
enter:
> nmake /f Makefile.msc sqlite3_analyzer.exe
And you will end up with a working executable. However, that executable
will depend on having the "tcl98.dll" library somewhere on your %PATH%.
Use the following steps to build an executable that has the TCL library
statically linked so that it does not depend on separate DLL:
1. Use the appropriate "Command Prompt" window - either x86 or
x64, depending on whether you want a 32-bit or 64-bit executable.
2. Untar the TCL source tarball into a fresh directory. CD into
the "win/" subfolder.
3. Run: `nmake /f makefile.vc OPTS=static shell`
4. CD into the "Release*" subfolder that is created (note the
wildcard - the full name of the directory might vary). There
you will find the "tcl90s.lib" file. Copy this file into the
same directory that you put the "tcl90.lib" on your initial
installation. (In this document, that directory is
"`C:\Tcl32\lib`" for 32-bit builds and
"`C:\Tcl\lib`" for 64-bit builds.)
5. CD into your SQLite source code directory and build the desired
utility program, but add the following extra argument to the
nmake command line:
<blockquote><pre>STATICALLY_LINK_TCL=1</pre></blockquote>
<p>So, for example, to build a statically linked version of
sqlite3_analyzer.exe, you might type:
<blockquote><pre>nmake /f Makefile.msc STATICALLY_LINK_TCL=1 sqlite3_analyzer.exe</pre></blockquote>
6. After your executable is built, you can verify that it does not
depend on the TCL DLL by running:
<blockquote><pre>dumpbin /dependents sqlite3_analyzer.exe</pre></blockquote>
## Linking Against ZLIB
Some feature (such as zip-file support in the CLI) require the ZLIB

View File

@@ -925,7 +925,6 @@ EXTHDR += \
TESTPROGS = \
testfixture$(T.exe) \
sqlite3$(T.exe) \
sqlite3_analyzer$(T.exe) \
sqldiff$(T.exe) \
dbhash$(T.exe) \
sqltclsh$(T.exe)
@@ -2158,13 +2157,13 @@ src-archives: sqlite-amalgamation.zip amalgamation-tarball sqlite-src.zip
# Build a ZIP archive containing various command-line tools.
#
tool-zip: sqlite3$(T.exe) sqldiff$(T.exe) \
sqlite3_analyzer$(T.exe) sqlite3_rsync$(T.exe) $(TOP)/tool/mktoolzip.tcl
strip sqlite3$(T.exe) sqldiff$(T.exe) sqlite3_analyzer$(T.exe) sqlite3_rsync$(T.exe)
sqlite3_rsync$(T.exe) $(TOP)/tool/mktoolzip.tcl
strip sqlite3$(T.exe) sqldiff$(T.exe) sqlite3_rsync$(T.exe)
$(TCLSH_CMD) $(TOP)/tool/mktoolzip.tcl
snapshot-zip: testfixture$(T.exe) sqlite3$(T.exe) sqldiff$(T.exe) \
sqlite3_analyzer$(T.exe) sqlite3_rsync$(T.exe) $(TOP)/tool/mktoolzip.tcl
strip sqlite3$(T.exe) sqldiff$(T.exe) sqlite3_analyzer$(T.exe) sqlite3_rsync$(T.exe)
sqlite3_rsync$(T.exe) $(TOP)/tool/mktoolzip.tcl
strip sqlite3$(T.exe) sqldiff$(T.exe) sqlite3_rsync$(T.exe)
$(TCLSH_CMD) $(TOP)/tool/mktoolzip.tcl --snapshot
clean-tool-zip:

View File

@@ -1,14 +1,14 @@
C Add\sthe\stree-tracker\soptimization.
D 2026-10-09T21:05:47.655
C The\scode\sfor\ssqlite3_analyzer\sis\sstill\sin\sthe\stree,\sand\syou\scan\sstill\sbuild\nit\susing\s"make\ssqlite3_analyzer"\sbut\sit\sdoes\snot\sget\sbuilt\sas\spart\sof\n"make\stool-zip"\sand\sthere\sis\sno\smention\sof\sit\sin\sthe\sREADME\sfiles\sand\nsimilar.
D 2026-10-09T23:18:07.243
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F AGENTS.md 44ddfb38ef23e277888bd70ae378e6cbf5f5cab0e2a4420bd21d89b6caff7a4a
F LICENSE.md 6bc480fc673fb4acbc4094e77edb326267dd460162d7723c7f30bee2d3d9e97d
F LICENSE.md 3aa673c9c864ea8ee3ac46c7a52d270543a8fb8e1dd7e7b02df8f41dca1b80b6
F Makefile.in b9e64c91cf8bea2305e1ca88bd3eb022afa93963a8561ea8290c65d4fafec03e
F Makefile.linux-generic bd3e3cacd369821a6241d4ea1967395c962dfe3057e38cb0a435cee0e8b789d0
F Makefile.msc 909a0a694e82bfd536ae152acb554010cafc7ab0a5acc30044fb8f02a480fc01
F README.md 8a7487de00e6d6d360cec15cc114cbb397207e1b975901683561506401c6d48c
F Makefile.msc 46aa9ff8ace1e23d25e0dc7f80cc1856062f70f44a9517ec323b020a984d9cfa
F README.md b261d8e17a18fd45c55172d5ccead58455a9b5fe35f30d39e516338973578375
F VERSION 80115ed2da2f1a67c6ab9e67c3931a85d37c003bfe7b38989258624219ca6663
F art/icon-243x273.gif 9750b734f82fdb3dc43127753d5e6fbf3b62c9f4e136c2fbf573b2f57ea87af5
F art/icon-80x90.gif 65509ce3e5f86a9cd64fe7fca2d23954199f31fe44c1e09e208c80fb83d87031
@@ -57,8 +57,8 @@ F autosetup/teaish/tester.tcl 1799514c2652db49561b3386c5242b94534d1663f2cfac861a
F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
F contrib/sqlitecon.tcl eb4c6578e08dd353263958da0dc620f8400b869a50d06e271ab0be85a51a08d3
F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
F doc/compile-for-unix.md e729dff2f54ce7afbb0a8bb6813dcbc8720b3838133c5c7449e39962e6fe5c62
F doc/compile-for-windows.md 19f87b5b2bd980e0f91c31b2c9d3375e60b4d7901c9bf0c5d060f7cb48334706
F doc/compile-for-unix.md d7d5de5f21529956b28cbb9ae55f81555dd761ae0e922381c342a3f6c8dceef7
F doc/compile-for-windows.md 64414962d8d00d3a5295540809f4c02b17186a26ebb147e79e9bfc6291f12c4e
F doc/json-enhancements.md e356fc834781f1f1aa22ee300027a270b2c960122468499bf347bb123ce1ea4f
F doc/jsonb.md acd77fc3a709f51242655ad7803510c886aa8304202fa9cf2abc5f5c4e9d7ae5
F doc/lemon.html fe663e044f54546d7ae7974d2f670f16f09c657e8776079054855153c7e20b5f
@@ -723,7 +723,7 @@ F ext/wasm/tests/opfs/sahpool/index.html be736567fd92d3ecb9754c145755037cbbd2bca
F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36e0f6991460fff0cb7c15079454679a4e2
F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61
F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
F main.mk 09c833b8a53d476979641dd91424c5abbe8ecf8b9976fc0b99586cfd1dde68a3
F main.mk dcb16dd1a254df261a53bbb20d9296e89ac879868f0c9182ce7c6f514be3aa3d
F make.bat a136fd0b1c93e89854a86d5f4edcf0386d211e5d5ec2434480f6eea436c7420c
F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@ -934,7 +934,6 @@ F test/analyzeD.test 485f621cfd2ef0a8f8ac79672586651bfa495bd899db50461bb4b558400
F test/analyzeE.test d2ec7921c162cdc33ac8e7eb01f9ebf78100610af7c94c8552bbf551de1fb397
F test/analyzeF.test 40b5cc3ad7b10e81020d7ca86f1417647ecfae7477cfd88acc5aa7ae1068f949
F test/analyzeG.test 623be33038c49648872746c8dd8b23b5792c08fef173c55e82f1b12fca259852
F test/analyzer1.test b6a624ec0af92eec209e1328465b66937c8fdf2fb442a3fa45321ddb3700f4aa
F test/atof1.test bd21c4a0e718ab1470de07a2a79f2544d7903be34feebcc80de04beee4807b00
F test/atof2.test 12912add57230495450e2fc94cb8ad1c9f3277f8843a3bc27079cae45c9782a1
F test/atomic.test 065a453dde33c77ff586d91ccaa6ed419829d492dbb1a5694b8a09f3f9d7d061
@@ -2237,7 +2236,7 @@ F tool/mksqlite3c.tcl d592e422865c5e49e15ffea83401ede2912475efb4071127b9c6599d91
F tool/mksqlite3h.tcl 6c47cd98605f9a9618ccc96d4a403492c856d1d6d56310e877d44b33a9cee1b5
F tool/mksqlite3internalh.tcl 46ef6ed6ccd3c36e23051109dd25085d8edef3887635cea25afa81c4adf4d4db
F tool/mksrczip.tcl 81efd9974dbb36005383f2cd655520057a2ae5aa85ac2441a80c7c28f803ac52
F tool/mktoolzip.tcl c9f388b2b0751982aef29a0c1d80f7959dbe38065ebb4421c39844e92622b086
F tool/mktoolzip.tcl c946d4d32ef08e014386454e60630b8d18a30f4756b1fc00d74da80612f12dde
F tool/mkvsix.tcl 67b40996a50f985a573278eea32fc5a5eb6110bdf14d33f1d8086e48c69e540a
F tool/mkwinarm64ec.tcl 171f79234fa53552a129b360356df5599fdab15239caffb3d29c571292728033
F tool/offsets.c 8ed2b344d33f06e71366a9b93ccedaa38c096cc1dbd4c3c26ad08c6115285845
@@ -2281,9 +2280,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P fa41e6201609f40ce9d6ec28693e4cd143363a78f072476586f6de7fd90aed66 e5d0f760591ee7ed6535b3d2e630274e2a1a02fce5a1e3dc9a9bae41fa4d20be
R bff13f9492ce21de9636be9fa3a41b74
T +closed e5d0f760591ee7ed6535b3d2e630274e2a1a02fce5a1e3dc9a9bae41fa4d20be
P e24a8fe9867370bf9766638ff2337ec7a448d5c8995ca6ceed9024e43ccb957d
R 4c8c9528b7d15c4e21d88b0862548ced
U drh
Z bdc2fe5869c899f0a4f6c38447a0ccfe
Z a7b42b714a3c2a3748cf1e89481b1dfb
# Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
e24a8fe9867370bf9766638ff2337ec7a448d5c8995ca6ceed9024e43ccb957d
77278079d9dddaff30a1862bf412329e91242a41be7eafc19d3fac8d872adeff

View File

@@ -1,55 +0,0 @@
# 2015-05-11
#
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
#
# Quick tests for the sqlite3_analyzer tool
#
set testdir [file dirname $argv0]
source $testdir/tester.tcl
ifcapable !vtab {
finish_test
return
}
if {$tcl_platform(platform) eq "windows"} {
set PROG "sqlite3_analyzer.exe"
} else {
set PROG "./sqlite3_analyzer"
}
if {![file exe $PROG]} {
set PROG [file normalize [file join $::cmdlinearg(TESTFIXTURE_HOME) $PROG]]
if {![file exe $PROG]} {
puts "analyzer1 cannot run because $PROG is not available"
finish_test
return
}
}
db close
forcedelete test.db test.db-journal test.db-wal
sqlite3 db test.db
do_test analyzer1-1.0 {
db eval {
CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
CREATE TABLE t2(a INT PRIMARY KEY, b) WITHOUT ROWID;
WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<250)
INSERT INTO t1(a,b) SELECT x, randomblob(200) FROM c;
INSERT INTO t2(a,b) SELECT a, b FROM t1;
}
set line "exec $PROG test.db"
unset -nocomplain ::MSG
catch {eval $line} ::MSG
} {0}
do_test analyzer1-1.1 {
regexp {^/\*\* Disk-Space Utilization.*COMMIT;\W*$} $::MSG
} {1}
finish_test

View File

@@ -9,7 +9,6 @@
# testfixture -- used to run this script
# sqlite3 -- the SQLite CLI
# sqldiff -- Program to diff two databases
# sqlite3_analyzer -- Space analyzer
# sqlite3_rsync -- Remote db sync
#
# On Windows, add:
@@ -82,7 +81,7 @@ if {$bSnapshot} {
}
set name sqlite-tools-$OS-$ARCH-$v2.zip
set filelist "sqlite3$EXE sqldiff$EXE sqlite3_analyzer$EXE sqlite3_rsync$EXE"
set filelist "sqlite3$EXE sqldiff$EXE sqlite3_rsync$EXE"
proc make_zip_archive {name filelist} {
file delete -force $name
puts "fossil test-filezip $name $filelist"