| From: | Japin Li <japinli(at)hotmail(dot)com> | 
|---|---|
| To: | Ted Yu <yuzhihong(at)gmail(dot)com> | 
| Cc: | peter(at)eisentraut(dot)org, pgsql-hackers(at)lists(dot)postgresql(dot)org | 
| Subject: | Re: redundant check of msg in does_not_exist_skipping | 
| Date: | 2022-11-17 15:06:22 | 
| Message-ID: | MEYP282MB1669A8063E015BE1D9DD81D6B6069@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Thu, 17 Nov 2022 at 20:12, Ted Yu <yuzhihong(at)gmail(dot)com> wrote:
> Hi,
> I was looking at commit aca992040951c7665f1701cd25d48808eda7a809
>
> I think the check of msg after the switch statement is not necessary. The
> variable msg is used afterward.
> If there is (potential) missing case in switch statement, the compiler
> would warn.
>
> How about removing the check ?
>
I think we cannot remove the check, for example, if objtype is OBJECT_OPFAMILY,
and schema_does_not_exist_skipping() returns true, the so the msg keeps NULL,
if we remove this check, a sigfault might be occurd in ereport().
        case OBJECT_OPFAMILY:
            {
                List       *opfname = list_copy_tail(castNode(List, object), 1);
                if (!schema_does_not_exist_skipping(opfname, &msg, &name))
                {
                    msg = gettext_noop("operator family \"%s\" does not exist for access method \"%s\", skipping");
                    name = NameListToString(opfname);
                    args = strVal(linitial(castNode(List, object)));
                }
            }
            break;
-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Eisentraut | 2022-11-17 15:09:22 | Re: libpq compression (part 2) | 
| Previous Message | Peter Eisentraut | 2022-11-17 15:00:11 | Re: libpq support for NegotiateProtocolVersion |