SQLite Forum

3.33.0 column mode breaks -noheader in CLI
SQlite release 3.33.0 change 6(b):
seems to break the CLI -noheader behavior from previous versions.

That is, using .mode column in the input renders the CLI -noheader inop when specified.  This behavior is different from previous versions and may be related to the 'automatically turns ".header" on if it has not been previously set' in change 6(b) above.

My input SQL:
.mode column
select type, name from sqlite_master limit 2

sqlite3-3.35.3 -noheader test.db < test.sql produces
type   name
-----  ----
table  foo
table  bar

whereas 3.29.0 (at least) removes the header as desired.

This change has unfavorable impact when accumulating sqlite3 CLI output from multiple invocations without duplicating headers in subsequent calls.  Being able to just disable headers with -noheader while allowing the input to use different output formats (e.g. .mode csv, .mode column, etc.) is flexible.