Re: List of "binary-compatible" data types
Thom Brown <thom@linux.com>
From: Thom Brown <thom@linux.com>
To: Josh Berkus <josh@agliodbs.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2013-11-04T23:30:09Z
Lists: pgsql-hackers
On 4 November 2013 21:58, Josh Berkus <josh@agliodbs.com> wrote: > Folks, > > From our docs: > > "Adding a column with a non-null default or changing the type of an > existing column will require the entire table and indexes to be > rewritten. As an exception, if the USING clause does not change the > column contents and the old type is either binary coercible to the new > type or an unconstrained domain over the new type, a table rewrite is > not needed ..." > > Which is nice, but nowhere do we present users with a set of > binary-compatible data types, even among the built-in types. I'd > happily write this up, if I knew what the binary-compatible data types > *were*. You could try this: SELECT castsource::regtype::text, array_agg(casttarget::regtype order by casttarget::regtype::text) casttargets FROM pg_cast WHERE castmethod = 'b' GROUP BY 1 ORDER BY 1; -- Thom
Commits
-
Avoid some table rewrites for ALTER TABLE .. SET DATA TYPE timestamp.
- 3c5926301aea 12.0 landed
-
Disable transforms that replaced AT TIME ZONE with RelabelType.
- c22ecc6562aa 10.0 cited
-
Add transform functions for AT TIME ZONE.
- b8a18ad4850e 9.5.0 cited