Thread

Commits

  1. ATPrepAddPrimaryKey: ignore non-PK constraints

  1. Assert failure in ATPrepAddPrimaryKey

    Richard Guo <guofenglinux@gmail.com> — 2023-09-01T07:13:42Z

    I ran into an Assert failure in ATPrepAddPrimaryKey() with the query
    below:
    
    CREATE TABLE t0(c0 boolean);
    CREATE TABLE t1() INHERITS(t0);
    
    # ALTER TABLE t0 ADD CONSTRAINT m EXCLUDE ((1) WITH =);
    server closed the connection unexpectedly
    
    The related codes are
    
        foreach(lc, stmt->indexParams)
        {
            IndexElem  *elem = lfirst_node(IndexElem, lc);
            Constraint *nnconstr;
    
            Assert(elem->expr == NULL);
    
    It seems to be introduced by b0e96f3119.
    
    Thanks
    Richard
    
  2. Re: Assert failure in ATPrepAddPrimaryKey

    Alvaro Herrera <alvherre@alvh.no-ip.org> — 2023-09-01T11:48:00Z

    On 2023-Sep-01, Richard Guo wrote:
    
    > I ran into an Assert failure in ATPrepAddPrimaryKey() with the query
    > below:
    > 
    > CREATE TABLE t0(c0 boolean);
    > CREATE TABLE t1() INHERITS(t0);
    > 
    > # ALTER TABLE t0 ADD CONSTRAINT m EXCLUDE ((1) WITH =);
    > server closed the connection unexpectedly
    
    Ugh, right, I failed to make the new function do nothing for this case;
    this had no coverage.  Fix attached, with some additional test cases
    based on yours.
    
    Thanks for reporting.
    
    -- 
    Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
    "XML!" Exclaimed C++.  "What are you doing here? You're not a programming
    language."
    "Tell that to the people who use me," said XML.
    https://burningbird.net/the-parable-of-the-languages/
    
  3. Re: Assert failure in ATPrepAddPrimaryKey

    Richard Guo <guofenglinux@gmail.com> — 2023-09-04T03:05:08Z

    On Fri, Sep 1, 2023 at 7:48 PM Alvaro Herrera <alvherre@alvh.no-ip.org>
    wrote:
    
    > On 2023-Sep-01, Richard Guo wrote:
    >
    > > I ran into an Assert failure in ATPrepAddPrimaryKey() with the query
    > > below:
    > >
    > > CREATE TABLE t0(c0 boolean);
    > > CREATE TABLE t1() INHERITS(t0);
    > >
    > > # ALTER TABLE t0 ADD CONSTRAINT m EXCLUDE ((1) WITH =);
    > > server closed the connection unexpectedly
    >
    > Ugh, right, I failed to make the new function do nothing for this case;
    > this had no coverage.  Fix attached, with some additional test cases
    > based on yours.
    
    
    Thanks for the fix!
    
    Thanks
    Richard