Re: New compiler warning

Поиск
Список
Период
Сортировка
От David Steele
Тема Re: New compiler warning
Дата
Msg-id 9de558c3-5b31-fe81-fff3-dd62b37c5110@pgmasters.net
обсуждение исходный текст
Ответ на Re: New compiler warning  (Aleksander Alekseev <aleksander@timescale.com>)
Ответы Re: New compiler warning  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-hackers
On 8/30/23 08:10, Aleksander Alekseev wrote:
> 
>> I am seeing a new gcc 12.2.0 compiler warning from
>> src/backend/commands/sequence.c:
> 
> Yep, the compiler is just not smart enough to derive that this
> actually is not going to happen.
> 
> Here is a proposed fix.

Here's an alternate way to deal with this which is a bit more efficient 
(code not tested):

-        case SEQ_COL_CALLED:
-            coldef = makeColumnDef("is_called", BOOLOID, -1, InvalidOid);
-            value[i - 1] = BoolGetDatum(false);
-            break;
+        default:
+                   Assert(i == SEQ_COL_CALLED);
+            coldef = makeColumnDef("is_called", BOOLOID, -1, InvalidOid);
+            value[i - 1] = BoolGetDatum(false);
+            break;

The downside is that any garbage in i will lead to processing as 
SEQ_COL_CALLED. But things are already pretty bad in that case, ISTM, 
even with the proposed patch (or the original code for that matter).

Regards,
-David



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: pg_stat_get_backend_subxact() and backend IDs?
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: tablecmds.c/MergeAttributes() cleanup