From: Álvaro Herrera Date: Tue, 12 Nov 2024 10:35:43 +0000 (+0100) Subject: Silence compilers about extractNotNullColumn() X-Git-Tag: REL_18_BETA1~1500 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=ff239c3bf4e8cc8b758450e82ff698100aa8efc0;p=postgresql.git Silence compilers about extractNotNullColumn() Multiple buildfarm animals warn that a newly added Assert() is impossible to fail; remove it to avoid the noise. While at it, use direct assignment to obtain the value we need, avoiding an unnecessary memcpy(). (I decided to remove the "pfree" call for the detoasted short-datum; because this is only used for DDL, it's not problematic to leak such a small allocation.) Noted by Tom Lane about 14e87ffa5c54. Discussion: https://postgr.es/m/3649828.1731083171@sss.pgh.pa.us --- diff --git a/src/backend/catalog/pg_constraint.c b/src/backend/catalog/pg_constraint.c index e953000c01d..9c05a98d28c 100644 --- a/src/backend/catalog/pg_constraint.c +++ b/src/backend/catalog/pg_constraint.c @@ -688,7 +688,6 @@ findDomainNotNullConstraint(Oid typid) AttrNumber extractNotNullColumn(HeapTuple constrTup) { - AttrNumber colnum; Datum adatum; ArrayType *arr; @@ -704,13 +703,9 @@ extractNotNullColumn(HeapTuple constrTup) ARR_DIMS(arr)[0] != 1) elog(ERROR, "conkey is not a 1-D smallint array"); - memcpy(&colnum, ARR_DATA_PTR(arr), sizeof(AttrNumber)); - Assert(colnum > 0 && colnum <= MaxAttrNumber); + /* We leak the detoasted datum, but we don't care */ - if ((Pointer) arr != DatumGetPointer(adatum)) - pfree(arr); /* free de-toasted copy, if any */ - - return colnum; + return ((AttrNumber *) ARR_DATA_PTR(arr))[0]; } /*