Обсуждение: pg_dump dumps event triggers and transforms unconditionally
I noticed $subject while trying to fix the extension membership problem Karsten Hilbert complained of last week. I do not think that if I ask for a dump of a single table, that should include event triggers. AFAICT event triggers don't belong to any particular schema, so I'd propose that they be dumped only when include_everything is true, which is the usual rule for objects that don't belong to any schema. Transforms have got the same issue, which means that the dump of a database containing, eg, hstore_plperl is outright broken: it will dump both the extension *and* a CREATE TRANSFORM command. Again, they ought to obey the default rules for schema-less objects, which in this case is "dump if include_everything and not an extension member". regards, tom lane
Tom Lane wrote: > I noticed $subject while trying to fix the extension membership problem > Karsten Hilbert complained of last week. I do not think that if I ask > for a dump of a single table, that should include event triggers. Ugh, certainly not. > AFAICT event triggers don't belong to any particular schema, so I'd > propose that they be dumped only when include_everything is true, > which is the usual rule for objects that don't belong to any schema. > > Transforms have got the same issue, which means that the dump of a > database containing, eg, hstore_plperl is outright broken: it will > dump both the extension *and* a CREATE TRANSFORM command. Again, they > ought to obey the default rules for schema-less objects, which in > this case is "dump if include_everything and not an extension member". Sounds reasonable. (I assume this last detailed rule is what applies to both object types. Surely event triggers can be part of an extension too.) -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > Tom Lane wrote: >> AFAICT event triggers don't belong to any particular schema, so I'd >> propose that they be dumped only when include_everything is true, >> which is the usual rule for objects that don't belong to any schema. >> >> Transforms have got the same issue, which means that the dump of a >> database containing, eg, hstore_plperl is outright broken: it will >> dump both the extension *and* a CREATE TRANSFORM command. Again, they >> ought to obey the default rules for schema-less objects, which in >> this case is "dump if include_everything and not an extension member". > Sounds reasonable. (I assume this last detailed rule is what applies to > both object types. Surely event triggers can be part of an extension > too.) Don't know offhand if they can or not, but the code will do the right thing if so. regards, tom lane