@@ -43,7 +43,7 @@ typedef struct RecordIOData
4343Oid record_type ;
4444int32 record_typmod ;
4545int ncolumns ;
46- ColumnIOData columns [1 ]; /* VARIABLE LENGTH ARRAY */
46+ ColumnIOData columns [FLEXIBLE_ARRAY_MEMBER ];
4747}RecordIOData ;
4848
4949/*
@@ -61,7 +61,7 @@ typedef struct RecordCompareData
6161int32 record1_typmod ;
6262Oid record2_type ;
6363int32 record2_typmod ;
64- ColumnCompareData columns [1 ]; /* VARIABLE LENGTH ARRAY */
64+ ColumnCompareData columns [FLEXIBLE_ARRAY_MEMBER ];
6565}RecordCompareData ;
6666
6767
@@ -120,8 +120,8 @@ record_in(PG_FUNCTION_ARGS)
120120{
121121fcinfo -> flinfo -> fn_extra =
122122MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
123- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
124- + ncolumns * sizeof (ColumnIOData ));
123+ offsetof (RecordIOData , columns ) +
124+ ncolumns * sizeof (ColumnIOData ));
125125my_extra = (RecordIOData * )fcinfo -> flinfo -> fn_extra ;
126126my_extra -> record_type = InvalidOid ;
127127my_extra -> record_typmod = 0 ;
@@ -131,8 +131,8 @@ record_in(PG_FUNCTION_ARGS)
131131my_extra -> record_typmod != tupTypmod )
132132{
133133MemSet (my_extra ,0 ,
134- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
135- + ncolumns * sizeof (ColumnIOData ));
134+ offsetof (RecordIOData , columns ) +
135+ ncolumns * sizeof (ColumnIOData ));
136136my_extra -> record_type = tupType ;
137137my_extra -> record_typmod = tupTypmod ;
138138my_extra -> ncolumns = ncolumns ;
@@ -334,8 +334,8 @@ record_out(PG_FUNCTION_ARGS)
334334{
335335fcinfo -> flinfo -> fn_extra =
336336MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
337- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
338- + ncolumns * sizeof (ColumnIOData ));
337+ offsetof (RecordIOData , columns ) +
338+ ncolumns * sizeof (ColumnIOData ));
339339my_extra = (RecordIOData * )fcinfo -> flinfo -> fn_extra ;
340340my_extra -> record_type = InvalidOid ;
341341my_extra -> record_typmod = 0 ;
@@ -345,8 +345,8 @@ record_out(PG_FUNCTION_ARGS)
345345my_extra -> record_typmod != tupTypmod )
346346{
347347MemSet (my_extra ,0 ,
348- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
349- + ncolumns * sizeof (ColumnIOData ));
348+ offsetof (RecordIOData , columns ) +
349+ ncolumns * sizeof (ColumnIOData ));
350350my_extra -> record_type = tupType ;
351351my_extra -> record_typmod = tupTypmod ;
352352my_extra -> ncolumns = ncolumns ;
@@ -489,8 +489,8 @@ record_recv(PG_FUNCTION_ARGS)
489489{
490490fcinfo -> flinfo -> fn_extra =
491491MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
492- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
493- + ncolumns * sizeof (ColumnIOData ));
492+ offsetof (RecordIOData , columns ) +
493+ ncolumns * sizeof (ColumnIOData ));
494494my_extra = (RecordIOData * )fcinfo -> flinfo -> fn_extra ;
495495my_extra -> record_type = InvalidOid ;
496496my_extra -> record_typmod = 0 ;
@@ -500,8 +500,8 @@ record_recv(PG_FUNCTION_ARGS)
500500my_extra -> record_typmod != tupTypmod )
501501{
502502MemSet (my_extra ,0 ,
503- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
504- + ncolumns * sizeof (ColumnIOData ));
503+ offsetof (RecordIOData , columns ) +
504+ ncolumns * sizeof (ColumnIOData ));
505505my_extra -> record_type = tupType ;
506506my_extra -> record_typmod = tupTypmod ;
507507my_extra -> ncolumns = ncolumns ;
@@ -677,8 +677,8 @@ record_send(PG_FUNCTION_ARGS)
677677{
678678fcinfo -> flinfo -> fn_extra =
679679MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
680- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
681- + ncolumns * sizeof (ColumnIOData ));
680+ offsetof (RecordIOData , columns ) +
681+ ncolumns * sizeof (ColumnIOData ));
682682my_extra = (RecordIOData * )fcinfo -> flinfo -> fn_extra ;
683683my_extra -> record_type = InvalidOid ;
684684my_extra -> record_typmod = 0 ;
@@ -688,8 +688,8 @@ record_send(PG_FUNCTION_ARGS)
688688my_extra -> record_typmod != tupTypmod )
689689{
690690MemSet (my_extra ,0 ,
691- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
692- + ncolumns * sizeof (ColumnIOData ));
691+ offsetof (RecordIOData , columns ) +
692+ ncolumns * sizeof (ColumnIOData ));
693693my_extra -> record_type = tupType ;
694694my_extra -> record_typmod = tupTypmod ;
695695my_extra -> ncolumns = ncolumns ;
@@ -829,8 +829,8 @@ record_cmp(FunctionCallInfo fcinfo)
829829{
830830fcinfo -> flinfo -> fn_extra =
831831MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
832- sizeof ( RecordCompareData ) - sizeof ( ColumnCompareData )
833- + ncols * sizeof (ColumnCompareData ));
832+ offsetof( RecordCompareData , columns ) +
833+ ncols * sizeof (ColumnCompareData ));
834834my_extra = (RecordCompareData * )fcinfo -> flinfo -> fn_extra ;
835835my_extra -> ncolumns = ncols ;
836836my_extra -> record1_type = InvalidOid ;
@@ -1065,8 +1065,8 @@ record_eq(PG_FUNCTION_ARGS)
10651065{
10661066fcinfo -> flinfo -> fn_extra =
10671067MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
1068- sizeof ( RecordCompareData ) - sizeof ( ColumnCompareData )
1069- + ncols * sizeof (ColumnCompareData ));
1068+ offsetof( RecordCompareData , columns ) +
1069+ ncols * sizeof (ColumnCompareData ));
10701070my_extra = (RecordCompareData * )fcinfo -> flinfo -> fn_extra ;
10711071my_extra -> ncolumns = ncols ;
10721072my_extra -> record1_type = InvalidOid ;
@@ -1324,8 +1324,8 @@ record_image_cmp(FunctionCallInfo fcinfo)
13241324{
13251325fcinfo -> flinfo -> fn_extra =
13261326MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
1327- sizeof ( RecordCompareData ) - sizeof ( ColumnCompareData )
1328- + ncols * sizeof (ColumnCompareData ));
1327+ offsetof( RecordCompareData , columns ) +
1328+ ncols * sizeof (ColumnCompareData ));
13291329my_extra = (RecordCompareData * )fcinfo -> flinfo -> fn_extra ;
13301330my_extra -> ncolumns = ncols ;
13311331my_extra -> record1_type = InvalidOid ;
@@ -1601,8 +1601,8 @@ record_image_eq(PG_FUNCTION_ARGS)
16011601{
16021602fcinfo -> flinfo -> fn_extra =
16031603MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
1604- sizeof ( RecordCompareData ) - sizeof ( ColumnCompareData )
1605- + ncols * sizeof (ColumnCompareData ));
1604+ offsetof( RecordCompareData , columns ) +
1605+ ncols * sizeof (ColumnCompareData ));
16061606my_extra = (RecordCompareData * )fcinfo -> flinfo -> fn_extra ;
16071607my_extra -> ncolumns = ncols ;
16081608my_extra -> record1_type = InvalidOid ;