On Sun, Feb 24, 2013 at 1:47 AM, Guillaume Lelarge
<guillaume@lelarge.info> wrote:
On Sun, 2013-01-13 at 11:08 -0800, Jeff Janes wrote:
> I have a tab-delimited text file I want to import into a table.
> However, I do not want \t translated to tab characters, etc., which is
> what the "text" format does. My file does not contain any special
> characters in need of escaping, and \ always just represents itself.
>
> So instead I want to use the "csv" format and specify the tab as the
> delimiter (on the "misc. options" tab). But, tab does not appear in
> the drop down list, and since typing tab changes the focus, a literal
> tab cannot by typed into this field. I could get around this by
> typing a tab into WordPad, then copying and pasting it into the
> delimiter field. But it would much nicer if the tab character was
> present in the delimiter drop down list (visibly represented by, say,
> "<tab>").
>
I wonder how this could work through a COPY command. Did you try?
because the import tool is a simple wrapper around the COPY command.
Yes, I can do this with a COPY command. For example, I can use from psql:
copy foo from '/tmp/foo.txt' with (format csv, delimiter E'\t')
I can also use a literal tab character within single quotes rather than the E'\t'. Because psql wants to do tab completion when you hit tab, you have to first hit ctrl-V, then tab, in order to get a literal tab. (A trick that works in readline-based programs, but of course not GUIs)
Cheers,
Jeff