On Tue, Aug 29, 2023 at 08:44:02PM +0200, Alvaro Herrera wrote:
> On 2023-Aug-29, Nathan Bossart wrote:
>> My compiler is complaining about 1fa9241b:
>>
>> ../postgresql/src/backend/commands/sequence.c: In function ‘DefineSequence’:
>> ../postgresql/src/backend/commands/sequence.c:196:21: error: ‘coldef’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
>> 196 | stmt->tableElts = lappend(stmt->tableElts, coldef);
>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> This went away when I added a default case that ERROR'd or initialized
>> coldef to NULL.
>
> Makes sense. However, maybe we should replace those ugly defines and
> their hardcoded values in DefineSequence with a proper array with their
> names and datatypes.
That might be an improvement, but IIUC you'd still need to enumerate all of
the columns or data types to make sure you use the right get-Datum
function. It doesn't help that last_value uses Int64GetDatumFast and
log_cnt uses Int64GetDatum. I could be missing something, though.
--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com