Thread

  1. Re: bug: repeated ALTER COLUMN SET DATA TYPE corrupt check constraint

    jian he <jian.universality@gmail.com> — 2025-12-27T11:32:06Z

    On Sat, Dec 27, 2025 at 4:32 PM Srinath Reddy Sadipiralla
    <srinath2133@gmail.com> wrote:
    >>
    >
    > Yeah, I can easily reproduce this.
    >
    hi.
    
    thinking about it more...
    I tend to think it's not a bug.
    because SET DATA TYPE changes the CHECK constraint definition.
    
    >> DROP TABLE IF EXISTS main_table;
    >> CREATE TABLE main_table (a int, b int, check(a = b));
    >> ALTER TABLE main_table ALTER COLUMN a SET DATA TYPE numeric;
    >> ALTER TABLE main_table ALTER COLUMN a SET DATA TYPE int;
    
    At this stage, the constraint definition is no longer "a = b",
    it becomes "(a::numeric = b::numeric)", which is different from "(a = b)".
    
    sorry for the noise.