On 22.03.23 10:00, Peter Eisentraut wrote:
>> I get that for the type, but why do we need the typmod duplicated as
>> well?
>
> Earlier patch versions didn't do that, but that got really confusing
> about which type the typmod really belonged to, since code currently
> assumes that typid+typmod makes sense. Earlier patch versions had three
> fields (usertypid, keyid, encalg), and then I changed it to (usertypid,
> usertypmod, keyid) and instead placed the encalg into the real typmod,
> which made everything much cleaner.
I thought about this some more. I think we could get rid of
attusertypmod and just hardcode it as -1. The idea would be that if you
ask for an encrypted column of type, say, varchar(500), the server isn't
able to enforce that anyway, so we could just prohibit specifying a
nondefault typmod for encrypted columns.
I'm not sure if there are weird types that use typmods in some way where
this wouldn't work. But so far I could not think of anything.
I'll look into this some more.