| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
| Cc: | Дмитрий Воронин <carriingfate92(at)yandex(dot)ru>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Warnings in objectaddress.c |
| Date: | 2017-10-04 01:41:27 |
| Message-ID: | 2317.1507081287@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> Perhaps we should apply some glorified version of this:
> + if (list_length(object) < 2)
> + elog(ERROR, "fail");
> However, I'm not 100% sure that would be sufficient to suppress these
> warnings, because the compiler has got to be smart enough to know that
> elog() doesn't return and that i >= 2 is sufficient to guarantee that
> everything is initialized.
I'm betting it wouldn't help. I was considering something along the line
of unrolling the loop:
Assert(list_length(object) == 2);
assign typenames[0] and typeoids[0] from linitial(object)
assign typenames[1] and typeoids[1] from lsecond(object)
This would involve duplicating the loop body, but that's only 3 lines,
so I think it wouldn't even net out as more code.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2017-10-04 01:46:26 | Re: Re: protocol version negotiation (Re: Libpq PGRES_COPY_BOTH - version compatibility) |
| Previous Message | Michael Paquier | 2017-10-04 01:39:18 | Re: 64-bit queryId? |