On Sat, Feb 02, 2008 at 02:23:40PM -0500, Tom Lane wrote: > David Fetter <[EMAIL PROTECTED]> writes: > > On Thu, Jan 31, 2008 at 10:22:42AM +0000, Gregory Stark wrote: > >> There are plenty of DDL commands which modify data (CREATE INDEX, > >> ATLER TABLE ALTER COLUMN TYPE). The defining characteristic of DDL > >> is not that it doesn't modify the data but that it does modify the > >> table definition. > > > Counter-example: ALTER TABLE ALTER COLUMN USING will almost certainly > > modify data, but it's DDL nonetheless. > > Uh, how is that a counter-example to what Greg said?
Oops. I misread. D'oh. > I think the real question here is whether there is a defensible > use-case for a trigger. In the case of TRUNCATE it's pretty obvious > what you might want the trigger for: to do the same thing your > per-row ON DELETE trigger does, but across all rows. It's much less > easy to envision a scriptable-in-advance response to arbitrary ALTER > TABLE operations. > > Looked at in this light, TRUNCATE is clearly more nearly DML than > DDL, in the sense that its effects are predictable and involve only > the data not the schema (at least in the user's view). It still involves DDL-like operations in the sense of changing (for the duration of the query) trigger behavior. Cheers, David. -- David Fetter <[EMAIL PROTECTED]> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: [EMAIL PROTECTED] Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend