Search Postgresql Archives

Re: Alter domain type / avoiding table rewrite

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/16/19 7:42 AM, Tom Lane wrote:
Adrian Klaver <adrian.klaver@xxxxxxxxxxx> writes:
I suspect the OP wants the type to text with a CHECK constraint to allow
for increasing the length of field values in the future by just changing
the CHECK setting. If that is the case would changing the type to text
and then adding a CHECK NOT VALID work without too much pain?

I don't think we really support NOT VALID on domain constraints do we?

I was not clear. I was thinking the OP could modify your suggestion.

Instead of:

old_type --> varchar(9) --> varchar(12)

doing:

old_type --> varchar(9) --> text --> CHECK ((length(VALUE) <= 12)) NOT VALID


In any case, the point remains that domains are pretty inefficient
compared to native types like varchar(12); partly because the system
can't reason very well about arbitrary check constraints as compared
to simple length constraints, and partly because the whole feature
just isn't implemented very completely or efficiently.  So you'll be
paying *a lot* for some hypothetical future savings.

(Having said that, you're already paying a fair chunk of that
overhead with your existing domain type, so maybe it's not bothering
you.  But I'm worried that going from domain-without-check-constraint
to domain-with-check-constraint is going to bite you.)

			regards, tom lane



--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux