"TJ O'Donnell" <tjo@acm.org> writes:
> ERROR: could not write block 196261 of temporary file: No space left
> on device
> I can't tell if this was because I ran out of real disk space,
> or because of some disk space limit set in pg config files.
There is no "disk space limit in pg config files". Depending on your
platform, that error could represent a per-user disk quota limit being
enforced against the postmaster rather than genuine disk-full, but
whatever the limit was it's at the OS level not Postgres.
> I also can't tell if the error came from the Copy or the Insert.
Since it says "temporary file", it's not talking about insertion of data
into a real table (even a temporary one). It's talking about genuinely
temporary intra-query workspace. I'd venture that the error comes from
the SELECT DISTINCT step trying to write a sort temp file that there's
not room for. (The fact that you see UPDATE 0 right after that is
further evidence for this theory --- after the failure, there's nothing
in fragment_table, so the UPDATE just falls through.)
regards, tom lane