Prettification versus dump safety

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Prettification versus dump safety

Tom Lane-2
In testing the TRIGGER WHEN patch, I notice that pg_dump is relying on
pg_get_triggerdef(triggeroid, true) (ie, "pretty" mode) to dump
triggers.  This means that trigger WHEN conditions will be dumped
without adequate parenthesization to ensure they are interpreted the
same way when loaded into future PG versions.  That's not acceptable.

The easy ways out of this are
(1) change pg_dump to not prettify trigger definitions at all, or
(2) change pg_get_triggerdef from the submitted patch so that it
doesn't reduce parenthesization even in "pretty" mode.

Or somebody could bite the bullet and decouple formatting from
parenthesization decisions in ruleutils.c.  That's not going to be
me, though.

Comments, preferences?

                        regards, tom lane

--
Sent via pgsql-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Reply | Threaded
Open this post in threaded view
|

Re: Prettification versus dump safety

Greg Sabino Mullane

-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


> (1) change pg_dump to not prettify trigger definitions at all, or
> (2) change pg_get_triggerdef from the submitted patch so that it
> doesn't reduce parenthesization even in "pretty" mode.
>
> Or somebody could bite the bullet and decouple formatting from
> parenthesization decisions in ruleutils.c.  That's not going to be
> me, though.
>
> Comments, preferences?

Apply (2), and add the decoupling to the official todo list.

- --
Greg Sabino Mullane [hidden email]
PGP Key: 0x14964AC8 200911201315
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAksG3NEACgkQvJuQZxSWSsiIjgCg1u1oZqXGsM/ToBYH6OCBMcDt
yXUAoK8xquH56UerP6AQl7bVxhMhPyyH
=yuZ4
-----END PGP SIGNATURE-----



--
Sent via pgsql-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Reply | Threaded
Open this post in threaded view
|

Re: Prettification versus dump safety

Andreas Pflug
In reply to this post by Tom Lane-2
Tom Lane wrote:

> In testing the TRIGGER WHEN patch, I notice that pg_dump is relying on
> pg_get_triggerdef(triggeroid, true) (ie, "pretty" mode) to dump
> triggers.  This means that trigger WHEN conditions will be dumped
> without adequate parenthesization to ensure they are interpreted the
> same way when loaded into future PG versions.  That's not acceptable.
>
> The easy ways out of this are
> (1) change pg_dump to not prettify trigger definitions at all, or
> (2) change pg_get_triggerdef from the submitted patch so that it
> doesn't reduce parenthesization even in "pretty" mode.
>  
The pretty option was explicitely never intended for pg_dump use.
When pg_dump is used to create a future version proof dump, it shouldn't
use the pretty option, when used to create some schema scripts for
exernal editing it may be enabled. I propose to invent a cmd line option
for that (maybe as "prettified plain text" output format).

Regards,
Andreas


--
Sent via pgsql-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Reply | Threaded
Open this post in threaded view
|

Re: Prettification versus dump safety

Tom Lane-2
Andreas Pflug <[hidden email]> writes:
> Tom Lane wrote:
>> The easy ways out of this are
>> (1) change pg_dump to not prettify trigger definitions at all, or
>> (2) change pg_get_triggerdef from the submitted patch so that it
>> doesn't reduce parenthesization even in "pretty" mode.
>>
> The pretty option was explicitely never intended for pg_dump use.

Yeah.  I went with (1) because it's something we can undo in future
on the pg_dump side.  The alternative is to immortalize an arbitrary
deviation of pg_get_triggerdef's pretty-fying behavior compared to
every other ruleutils.c function.

                        regards, tom lane

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