"Daniel Verite" <dan...@manitou-mail.org> writes: >> A proposed fix is attached. print_csv_vertical() is left unchanged >> because it's not possible currently to end up with \. alone >> on a line with the expanded display
> On second thought, it is possible > postgres=# \pset format csv > Output format is csv. > postgres=# \pset fieldsep_csv '.' > Field separator for CSV is ".". > postgres=# \x > Expanded display is on. > postgres=# select '' as "\" ; > \. Ugh. There's more to that than meets the eye; consider also \pset csv_fieldsep '.' select '\' as d1, '' as d2; or the reverse case where we set the fieldsep to '\' and then emit a second field containing '.'. I think that the approach you're using doesn't really scale to handle all these cases sanely, so what I did instead was just to make csv_print_field force field quoting if any of these cases could possibly apply. That will result in excess quoting in some cases, but I think that's fine, since they're all pretty uncommon. (BTW, it seems only chance that the server's CSV mode isn't also subject to this case, but since it always quotes empty fields, I think we're OK there.) Pushed with that correction and some other last-minute review. regards, tom lane