Subject: Re: Unexpected modification of check constraint definition

From: Adrian Klaver <[email-masked]>
Date: Wed, 7 Jan 2026 07:24:13 -0800

On 1/7/26 02:32, Stuart Campbell wrote:
> Hi there,

> I'm working in a Ruby on Rails application where the schema is 
> periodically dumped to a structure.sql file on disk. So, it would be 
> convenient if the constraint definition was "stable" (otherwise, there's 
> unnecessary noise in our version control history)
> 
> Is it expected that the second form is rewritten into the third form? It 
> seems a bit odd to see all the type casting going on, but maybe there is 
> a good reason for that. (Maybe this is an issue with using varchar 
> instead of text?)

https://www.postgresql.org/docs/current/datatype-character.html

"text is PostgreSQL's native string data type, in that most built-in 
functions operating on strings are declared to take or return text not 
character varying. For many purposes, character varying acts as though 
it were a domain over text."

When you did the dump/restore cycles where they from and to the same 
Postgres version/instance?

> 
> Regards,
> Stuart
> 
> This communication and any attachments may contain confidential 
> information and are intended to be viewed only by the intended 
> recipients. If you have received this message in error, please notify 
> the sender immediately by replying to the original message and then 
> delete all copies of the email from your systems.
> 
> 

-- 
Adrian Klaver
[email-masked]

---

From: Stuart Campbell <[email-masked]>
Date: Thu, 8 Jan 2026 08:59:52 +1100

> it were a domain over text."

Thanks. It seems like I should generally prefer to use text over varchar.
(I've read advice along those lines elsewhere.)

> Postgres version/instance?

Yes. In the example I provided, that was all from the same Postgres 16.4
instance.

Regards,
Stuart

-- 
This communication and any attachments may contain confidential information 
and are intended to be viewed only by the intended recipients. If you have 
received this message in error, please notify the sender immediately by 
replying to the original message and then delete all copies of the email 
from your systems.