Thread

  1. tupdesc: simplify assert in equalTupleDescs()

    Chao Li <li.evan.chao@gmail.com> — 2026-03-17T07:21:47Z

    Hi,
    
    While reading the code, I saw these assertions in equalTupleDescs():
    ```
    		CompactAttribute *cattr1 = TupleDescCompactAttr(tupdesc1, i);
    		CompactAttribute *cattr2 = TupleDescCompactAttr(tupdesc2, i);
    
    		Assert(cattr1->attnullability != ATTNULLABLE_UNKNOWN);
    		Assert((cattr1->attnullability == ATTNULLABLE_UNKNOWN) ==
    			   (cattr2->attnullability == ATTNULLABLE_UNKNOWN));
    
    ```
    
    The first assertion already guarantees that cattr1->attnullability is not ATTNULLABLE_UNKNOWN, so in the second one the expression cattr1->attnullability == ATTNULLABLE_UNKNOWN will always be false, That means the second assertion is effectively just checking that cattr2->attnullability is also not ATTNULLABLE_UNKNOWN.
    
    So the current code is correct, but it feels a bit harder to read than necessary. This patch just simplifies the second assertion in a direct way.
    
    Best regards,
    --
    Chao Li (Evan)
    HighGo Software Co., Ltd.
    https://www.highgo.com/
    
    
    
    
    
  2. Re: tupdesc: simplify assert in equalTupleDescs()

    Nazir Bilal Yavuz <byavuz81@gmail.com> — 2026-03-17T08:12:45Z

    Hi,
    
    On Tue, 17 Mar 2026 at 10:22, Chao Li <li.evan.chao@gmail.com> wrote:
    >
    > While reading the code, I saw these assertions in equalTupleDescs():
    > ```
    >                 CompactAttribute *cattr1 = TupleDescCompactAttr(tupdesc1, i);
    >                 CompactAttribute *cattr2 = TupleDescCompactAttr(tupdesc2, i);
    >
    >                 Assert(cattr1->attnullability != ATTNULLABLE_UNKNOWN);
    >                 Assert((cattr1->attnullability == ATTNULLABLE_UNKNOWN) ==
    >                            (cattr2->attnullability == ATTNULLABLE_UNKNOWN));
    >
    > ```
    >
    > The first assertion already guarantees that cattr1->attnullability is not ATTNULLABLE_UNKNOWN, so in the second one the expression cattr1->attnullability == ATTNULLABLE_UNKNOWN will always be false, That means the second assertion is effectively just checking that cattr2->attnullability is also not ATTNULLABLE_UNKNOWN.
    >
    > So the current code is correct, but it feels a bit harder to read than necessary. This patch just simplifies the second assertion in a direct way.
    
    Thank you for the report! You are right and the patch looks good to me.
    
    Nitpick: It is still a bit hard to understand why
    'cattr2->attnullability' should not be equal to 'ATTNULLABLE_UNKNOWN'.
    It would be good to add a comment explaining that 'attr2->attnotnull'
    should be true too because 'if (attr1->attnotnull !=
    attr2->attnotnull)' is returning false.
    
    -- 
    Regards,
    Nazir Bilal Yavuz
    Microsoft
    
    
    
    
  3. Re: tupdesc: simplify assert in equalTupleDescs()

    surya poondla <suryapoondla4@gmail.com> — 2026-04-28T18:29:07Z

    Hi Chao,
    
    Thank you for working on this.
    
    The patch looks good to me and makes the code more easy to read.
    
    Regards,
    Surya Poondla
    
  4. Re: tupdesc: simplify assert in equalTupleDescs()

    Chao Li <li.evan.chao@gmail.com> — 2026-04-30T06:22:04Z

    
    > On Apr 29, 2026, at 02:29, surya poondla <suryapoondla4@gmail.com> wrote:
    > 
    > Hi Chao,
    > 
    > Thank you for working on this.
    > 
    > The patch looks good to me and makes the code more easy to read.
    > 
    > Regards,
    > Surya Poondla
    
    Thanks for your review.
    
    Best regards,
    --
    Chao Li (Evan)
    HighGo Software Co., Ltd.
    https://www.highgo.com/