-C :-)\s(CVS\s128)
-D 2000-08-04T14:56:25
+C Add\spattern\smatching\sto\sthe\s.table\scommand\s(CVS\s129)
+D 2000-08-08T20:19:09
F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
F Makefile.in 670aa9413cb2cdcded23b328a9e255c845c41a1e
F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
F src/main.c ba16b81890d962821bb90f0a4de9a29b0e495eb2
F src/parse.y 5d199034de5d29ebedb42c1c51f34db4df40cbe5
F src/select.c d382e96c2221d08367cc87976f2b574537c9de97
-F src/shell.c 2fd370838742afa068cfcdd05b667ff89bab25b6
-F src/shell.tcl ca52bb831e03e10480516e5e708c0c452914a219
+F src/shell.c cd560887be6fb9cfa477fce7ba60716139189271
+F src/shell.tcl 27ecbd63dd88396ad16d81ab44f73e6c0ea9d20e
F src/sqlite.h 82ae53028e27919250f886ff9d7c4927de81978a
F src/sqliteInt.h f6d1e139b3bfa4ceff2136684e19d76b53178ec0
F src/tclsqlite.c b1ae6abd50d8b0e2470cc49b5e1d03329a68dd75
F www/arch.png c4d908b79065a72e7dcf19317f36d1324c550e87
F www/arch.tcl 4f6a9afecc099a27bba17b4f8cc9561abc15dc40
F www/c_interface.tcl 29593cf77025bab137b7ba64b9459eb5eb6b4873
-F www/changes.tcl a8608ae834d6e6922f386a9341e84e74a521e847
+F www/changes.tcl 0dc473e0b4240c5711653dbe589fac77508a5c3f
F www/crosscompile.tcl 19734ce7f18b16ff2ed8479412abf8aca56e1dcc
F www/fileformat.tcl cfb7fba80b7275555281ba2f256c00734bcdd1c9
F www/index.tcl 421bcabc6839eb00698b75b169caa8a559454515
F www/lang.tcl 9192e114b19987e630a41e879585b87006eb84a1
F www/mingw.tcl fc5f4ba9d336b6e8c97347cc6496d6162461ef60
F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f
-F www/sqlite.tcl 7c2ee68063fa59463f55d5bac1ffe3e50d8a817f
+F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f
F www/vdbe.tcl bcbfc33bcdd0ebad95eab31286adb9e1bc289520
-P 695fd68eb6291bdcc04af0eec7c7cdd7ff10872b
-R ba994bd9837a407cb6abaac249529cc4
+P d53cccda4fa5d2f8287421e71488817eb4ca13eb
+R c2912166785333a778527e99f3e6b1d7
U drh
-Z 509708daad6c84350903dba5837a203b
+Z 6e010a7ae0b6272f5ce57bde940ce4a2
-d53cccda4fa5d2f8287421e71488817eb4ca13eb
\ No newline at end of file
+2b3511eca7e562ef2428cec2f7eeca1d26b6c1c8
\ No newline at end of file
** This file contains code to implement the "sqlite" command line
** utility for accessing SQLite databases.
**
-** $Id: shell.c,v 1.19 2000/08/02 13:47:42 drh Exp $
+** $Id: shell.c,v 1.20 2000/08/08 20:19:09 drh Exp $
*/
#include <stdlib.h>
#include <string.h>
".output stdout Send output to the screen\n"
".schema ?TABLE? Show the CREATE statements\n"
".separator STRING Change separator string for \"list\" mode\n"
- ".tables List names all tables in the database\n"
+ ".tables ?PATTERN? List names of tables matching a pattern\n"
".timeout MS Try opening locked tables for MS milliseconds\n"
".width NUM NUM ... Set column widths for \"column\" mode\n"
;
if( c=='t' && n>1 && strncmp(azArg[0], "tables", n)==0 ){
struct callback_data data;
char *zErrMsg = 0;
- static char zSql[] =
- "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name";
+ char zSql[1000];
memcpy(&data, p, sizeof(data));
data.showHeader = 0;
data.mode = MODE_List;
+ if( nArg==1 ){
+ sprintf(zSql,
+ "SELECT name FROM sqlite_master "
+ "WHERE type='table' "
+ "ORDER BY name");
+ }else{
+ sprintf(zSql,
+ "SELECT name FROM sqlite_master "
+ "WHERE type='table' AND name LIKE '%%%.100s%%' "
+ "ORDER BY name", azArg[1]);
+ }
sqlite_exec(db, zSql, callback, &data, &zErrMsg);
if( zErrMsg ){
fprintf(stderr,"Error: %s\n", zErrMsg);
# A GUI shell for SQLite
#
+# The following code is slighly modified from the original. See comments
+# for the modifications...
############################################################################
# A console widget for Tcl/Tk. Invoke console:create with a window name,
# a prompt string, and a title to get a new top-level window that allows
} else {
set cmd $v(prior)\n$line
}
- if {[info complete $cmd]} {
- set rc [catch {uplevel #0 $cmd} res]
+##### Original
+# if {[info complete $cmd]} { }
+# set rc [catch {uplevel #0 $cmd} res]
+##### New
+ global DB
+ if {[$DB complete $cmd]} {
+ set CODE {}
+ set rc [catch {$DB eval $cmd RESULT $CODE}]
+##### End Of Changes
if {![winfo exists $w]} return
if {$rc} {
$w insert end $res\n err
puts "<DD><P><UL>$desc</UL></P></DD>"
}
+chng {2000 Aug 8} {
+<li>Added pattern matching to the ".table" command in the "sqlite"
+command shell.</li>
+}
+
chng {2000 Aug 4} {
<li>Documentation updates</li>
<li>Added "busy" and "timeout" methods to the Tcl interface</li>
#
# Run this Tcl script to generate the sqlite.html file.
#
-set rcsid {$Id: sqlite.tcl,v 1.12 2000/08/04 13:49:03 drh Exp $}
+set rcsid {$Id: sqlite.tcl,v 1.13 2000/08/08 20:19:09 drh Exp $}
puts {<html>
<head>
</pre></blockquote>
<p>The <b>%s</b> in the query above is replaced by the argument
-to ".schema", of course.</p>
+to ".schema", of course. Notice that the argument to the ".schema"
+command appears to the right of an SQL LIKE operator. So you can
+use wildcards in the name of the table. For example, to get the
+schema for all tables whose names contain the character string
+"abc" you could enter:</p>}
+
+Code {
+sqlite> (((.schema %abc%)))
+}
+
+puts {
+<p>
+Along these same lines,
+the ".table" command also accepts a pattern as its first argument.
+If you give an argument to the .table command, a "%" is both
+appended and prepended and a LIKE clause is added to the query.
+This allows you to list only those tables that match a particular
+pattern.</p>
<h2>Converting An Entire Database To An ASCII Text File</h2>