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