On Thu, 26 Feb 2015 10:58:30 +0000 Adam Podstawczy?ski <adam at podstawczynski.com> wrote:
> While this solves the issue for me, I still believe this behavior is > confusing ? truncated characters should be handled more gracefully. To your point, I think the column and column-width features of the shell could benefit from some re-thinking. My ~/.sqliterc includes these lines: .mode column .header ON and truncated strings and numbers are a source of confusion and error even though I know how they work. I wish that by default column formatting would be "soft" in the sense that printf(1) and printf(3) define: digits to the left of the decimal are never truncated, and strings are not truncated unless explicitly requested: $ printf '%5.4f\n' 123456789.123456789 123456789.1235 $ printf '%5.4s\n' 123456789.123456789 1234 This would make the output "snakey" on the screen sometimes, but would never conceal important information. I would change the width specification to accept the width and precision notation used by printf. The statement .width 8 would mean "set the minimum column width to 8", whereas .width 8.8 would mean "set the minumum width to 8, minimum precision to 8, and truncate strings to 8". I wouldn't worry about columns that mix strings and numbers; funny-looking strings in that case should be expected. And, besides, don't do that. It would also be nice to have a mode ".autowidth" that set column widths based on, say, the first 10 lines (and, preferably, their labels) in a manner similar to column(1). Provided it never truncated anything, I would use that more often than an improved .width. Thoughts? --jkl