make signal stuff work
batch mode?
tab completion - commands as a minimum, maybe tables etc too (and keywords using SQL_KEYWORDS)
separate history by DSN?
multi-line history items get split when history is loaded from file
specify editor as argument to \e? (or named buffer?)
guile support?
ODBC unicode mode?
replace calls to getenv with rc_get or similar to avoid hardcoded prefix
pager gets run even if no result set is generated (is this a problem?)
more consistency in error handling (less random perrors and printfs)
make SQL errors a special case of results, so output.c can render them as it likes?
tidy up function names
improve /help
hexdump-style output for binary data
SQLBrowseConnect?  do any unix drivers support it?
Support strings with embedded NULL characters in result sets?
Display option with lines between every row?
Display mode that truncates/wraps fields to fit screen width?
Use INFORMATION_SCHEMA where available?
Standard syntax checking in run_command()
'n' in prompt - DSN if available, otherwise server name (maybe with other info such as username)?
SQL output mode that outputs INSERTs or UPDATEs?
Mode that gets metadata about a query by preparing without executing
Seperate timings for prepare/execute/fetch?
A way to tell CSV/TSV mode to skip the header?
Generic limit support?

prepared statements/named buffers/aliases
SELECT * FROM TABLE WHERE id = ?
\g 1
\g 2
\s getrow
\l getrow
\e getrow
/getrow 1;
/getrow 2;
etc
automatically saved somewhere (~/.dbsh/aliases/getrow.sql?)

'tabular pipes':
SELECT table2_id FROM table1 \T SELECT * FROM table2 WHERE id = ?;

commands:
/describe <table> - SQLColumns, SQLStatistics etc
/isolation ?
/procedures (SQLProcedures)
/exec command to run procedures?  or just interpret command names as procedures?
/trace
/use
