ATPrepCmd: cleanup unreachable AT_AddIndexConstraint handling - Mailing list pgsql-hackers

From Chao Li
Subject ATPrepCmd: cleanup unreachable AT_AddIndexConstraint handling
Date
Msg-id CE5CFCE7-F101-4A42-9461-221DC5BF099E@gmail.com
Whole thread Raw
Responses Re: ATPrepCmd: cleanup unreachable AT_AddIndexConstraint handling
List pgsql-hackers
Hi Hackers,

While working on the patch [1], I was looking at the handling of AT_AddIndexConstraint in ATPrepCmd():
```
ATPrepCmd()
{
      case AT_AddIndexConstraint: /* ADD CONSTRAINT USING INDEX */
         ATSimplePermissions(cmd->subtype, rel, ATT_TABLE | ATT_PARTITIONED_TABLE);
         /* This command never recurses */
         /* No command-specific prep needed */
         pass = AT_PASS_ADD_INDEXCONSTR;
}
```

I initially thought the comment about “never recurses” was stale, but after some debugging, I found that this branch is
actuallyunreachable. So leaving the code and comments in an unreachable branch would be confusing for readers. 

This patch cleans up the handling by putting an Assert(false) there and adding a comment to explain why this code path
isunreachable. I did think about just deleting the branch, but decided to keep it: if it were removed entirely, readers
mightwonder why AT_AddIndexConstraint is not handled in ATPrepCmd() and end up spending time debugging this themselves. 

Two things to note in the patch:

1) The test edits are purely cosmetic. They just change lowercase keywords to uppercase to align with surrounding SQL
statements,and remove an unnecessary whitespace. I noticed this while debugging ADD CONSTRAINT USING INDEX, and the
changefelt too trivial to file a separate patch. 

2) There is an unnecessary empty line after "case AT_AddIndexConstraint:" that was added by pgindent. I believe this is
aknown pgindent issue that I reported before. 

With this patch applied, all regression tests pass.

[1] https://postgr.es/m/CAEoWx2kggo1N2kDH6OSfXHL_5gKg3DqQ0PdNuL4LH4XSTKJ3-g@mail.gmail.com

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/





Attachment

pgsql-hackers by date:

Previous
From: Corey Huinker
Date:
Subject: Re: Extended Statistics set/restore/clear functions.
Next
From: "Xiangyu Liang"
Date:
Subject: Fix grammar in comment describing LP_DEAD hint safety