On 5/3/2010 10:51 PM, Tom Lane wrote:
Jan Wieck <janwi...@yahoo.com> writes:
On 4/30/2010 1:56 AM, Jaime Casanova wrote:
ah! this is because COPY doesn't follow inherited tables... should it?

The TRUNCATE command's behavior was changed in that regard. What TRUNCATE did in 8.3 is now TRUNCATE ONLY in 8.4. I don't see a reason why COPY should not follow suit.

How about "because it's inappropriate for dump/reload, which is the main
use-case for COPY"?  In any case it'd be weird for COPY FROM and COPY TO
to behave differently on this point, but I don't really see how COPY
FROM would do anything intelligent for inheritance.

Dump would have to switch to the more consistent syntax using the

   COPY ONLY <table> ...

form. As simple as that.

You are right that COPY ONLY ... FROM makes no sense at all. But I would consider that the corner case, not the defining general rule. One could make exactly the save inconsistency argument about the fact that there is a SELECT ... FROM ONLY, UPDATE ONLY and DELETE FROM ONLY, but no INSERT INTO ONLY.

As of right now, all commands that retrieve or affect existing rows, except for COPY, do honor the ONLY keyword to stop inheritance. And while pg_dump may be one of the main users of COPY, I think there are quite a few other. I don't really see why COPY is so special.


Jan

--
Anyone who trades liberty for security deserves neither
liberty nor security. -- Benjamin Franklin

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to