On Tue, Mar 29, 2016 at 2:45 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Joshua Ma <j...@benchling.com> writes:
> > This might not be a common case, but we're using pg_dump in a testing
> > environment to check migrations - 1) we initialize the db from HEAD,
> > pg_dump it, 2) we initialize the db from migration_base.sql, apply
> > migrations, pg_dump it, and 3) compare the two dumps to verify that our
> > migrations are correct wrt schema.
>
> > However, we're seeing pg_restore transforming our check constraints with
> > different casting.
>
> It's not really different.  What you're seeing is pg_dump (or actually
> ruleutils.c) choosing to dump some implicit casts explicitly to ensure
> that the expression is parsed the same way next time.  It might be
> overly conservative to do so, but we've found that erring in this
> direction tends to avoid breakage when the result is loaded into another
> server version; it's a bit like the intentional overparenthesization.
>

​Why don't we just use ruleutils.c to generate \d results so that what we
end up showing is canonical?

David J.

Reply via email to