@@ -43,7 +43,7 @@ typedef struct RecordIOData
43
43
Oid record_type ;
44
44
int32 record_typmod ;
45
45
int ncolumns ;
46
- ColumnIOData columns [1 ]; /* VARIABLE LENGTH ARRAY */
46
+ ColumnIOData columns [FLEXIBLE_ARRAY_MEMBER ];
47
47
} RecordIOData ;
48
48
49
49
/*
@@ -61,7 +61,7 @@ typedef struct RecordCompareData
61
61
int32 record1_typmod ;
62
62
Oid record2_type ;
63
63
int32 record2_typmod ;
64
- ColumnCompareData columns [1 ]; /* VARIABLE LENGTH ARRAY */
64
+ ColumnCompareData columns [FLEXIBLE_ARRAY_MEMBER ];
65
65
} RecordCompareData ;
66
66
67
67
@@ -120,8 +120,8 @@ record_in(PG_FUNCTION_ARGS)
120
120
{
121
121
fcinfo -> flinfo -> fn_extra =
122
122
MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
123
- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
124
- + ncolumns * sizeof (ColumnIOData ));
123
+ offsetof (RecordIOData , columns ) +
124
+ ncolumns * sizeof (ColumnIOData ));
125
125
my_extra = (RecordIOData * ) fcinfo -> flinfo -> fn_extra ;
126
126
my_extra -> record_type = InvalidOid ;
127
127
my_extra -> record_typmod = 0 ;
@@ -131,8 +131,8 @@ record_in(PG_FUNCTION_ARGS)
131
131
my_extra -> record_typmod != tupTypmod )
132
132
{
133
133
MemSet (my_extra , 0 ,
134
- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
135
- + ncolumns * sizeof (ColumnIOData ));
134
+ offsetof (RecordIOData , columns ) +
135
+ ncolumns * sizeof (ColumnIOData ));
136
136
my_extra -> record_type = tupType ;
137
137
my_extra -> record_typmod = tupTypmod ;
138
138
my_extra -> ncolumns = ncolumns ;
@@ -334,8 +334,8 @@ record_out(PG_FUNCTION_ARGS)
334
334
{
335
335
fcinfo -> flinfo -> fn_extra =
336
336
MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
337
- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
338
- + ncolumns * sizeof (ColumnIOData ));
337
+ offsetof (RecordIOData , columns ) +
338
+ ncolumns * sizeof (ColumnIOData ));
339
339
my_extra = (RecordIOData * ) fcinfo -> flinfo -> fn_extra ;
340
340
my_extra -> record_type = InvalidOid ;
341
341
my_extra -> record_typmod = 0 ;
@@ -345,8 +345,8 @@ record_out(PG_FUNCTION_ARGS)
345
345
my_extra -> record_typmod != tupTypmod )
346
346
{
347
347
MemSet (my_extra , 0 ,
348
- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
349
- + ncolumns * sizeof (ColumnIOData ));
348
+ offsetof (RecordIOData , columns ) +
349
+ ncolumns * sizeof (ColumnIOData ));
350
350
my_extra -> record_type = tupType ;
351
351
my_extra -> record_typmod = tupTypmod ;
352
352
my_extra -> ncolumns = ncolumns ;
@@ -489,8 +489,8 @@ record_recv(PG_FUNCTION_ARGS)
489
489
{
490
490
fcinfo -> flinfo -> fn_extra =
491
491
MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
492
- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
493
- + ncolumns * sizeof (ColumnIOData ));
492
+ offsetof (RecordIOData , columns ) +
493
+ ncolumns * sizeof (ColumnIOData ));
494
494
my_extra = (RecordIOData * ) fcinfo -> flinfo -> fn_extra ;
495
495
my_extra -> record_type = InvalidOid ;
496
496
my_extra -> record_typmod = 0 ;
@@ -500,8 +500,8 @@ record_recv(PG_FUNCTION_ARGS)
500
500
my_extra -> record_typmod != tupTypmod )
501
501
{
502
502
MemSet (my_extra , 0 ,
503
- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
504
- + ncolumns * sizeof (ColumnIOData ));
503
+ offsetof (RecordIOData , columns ) +
504
+ ncolumns * sizeof (ColumnIOData ));
505
505
my_extra -> record_type = tupType ;
506
506
my_extra -> record_typmod = tupTypmod ;
507
507
my_extra -> ncolumns = ncolumns ;
@@ -677,8 +677,8 @@ record_send(PG_FUNCTION_ARGS)
677
677
{
678
678
fcinfo -> flinfo -> fn_extra =
679
679
MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
680
- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
681
- + ncolumns * sizeof (ColumnIOData ));
680
+ offsetof (RecordIOData , columns ) +
681
+ ncolumns * sizeof (ColumnIOData ));
682
682
my_extra = (RecordIOData * ) fcinfo -> flinfo -> fn_extra ;
683
683
my_extra -> record_type = InvalidOid ;
684
684
my_extra -> record_typmod = 0 ;
@@ -688,8 +688,8 @@ record_send(PG_FUNCTION_ARGS)
688
688
my_extra -> record_typmod != tupTypmod )
689
689
{
690
690
MemSet (my_extra , 0 ,
691
- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
692
- + ncolumns * sizeof (ColumnIOData ));
691
+ offsetof (RecordIOData , columns ) +
692
+ ncolumns * sizeof (ColumnIOData ));
693
693
my_extra -> record_type = tupType ;
694
694
my_extra -> record_typmod = tupTypmod ;
695
695
my_extra -> ncolumns = ncolumns ;
@@ -829,8 +829,8 @@ record_cmp(FunctionCallInfo fcinfo)
829
829
{
830
830
fcinfo -> flinfo -> fn_extra =
831
831
MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
832
- sizeof ( RecordCompareData ) - sizeof ( ColumnCompareData )
833
- + ncols * sizeof (ColumnCompareData ));
832
+ offsetof( RecordCompareData , columns ) +
833
+ ncols * sizeof (ColumnCompareData ));
834
834
my_extra = (RecordCompareData * ) fcinfo -> flinfo -> fn_extra ;
835
835
my_extra -> ncolumns = ncols ;
836
836
my_extra -> record1_type = InvalidOid ;
@@ -1065,8 +1065,8 @@ record_eq(PG_FUNCTION_ARGS)
1065
1065
{
1066
1066
fcinfo -> flinfo -> fn_extra =
1067
1067
MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
1068
- sizeof ( RecordCompareData ) - sizeof ( ColumnCompareData )
1069
- + ncols * sizeof (ColumnCompareData ));
1068
+ offsetof( RecordCompareData , columns ) +
1069
+ ncols * sizeof (ColumnCompareData ));
1070
1070
my_extra = (RecordCompareData * ) fcinfo -> flinfo -> fn_extra ;
1071
1071
my_extra -> ncolumns = ncols ;
1072
1072
my_extra -> record1_type = InvalidOid ;
@@ -1324,8 +1324,8 @@ record_image_cmp(FunctionCallInfo fcinfo)
1324
1324
{
1325
1325
fcinfo -> flinfo -> fn_extra =
1326
1326
MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
1327
- sizeof ( RecordCompareData ) - sizeof ( ColumnCompareData )
1328
- + ncols * sizeof (ColumnCompareData ));
1327
+ offsetof( RecordCompareData , columns ) +
1328
+ ncols * sizeof (ColumnCompareData ));
1329
1329
my_extra = (RecordCompareData * ) fcinfo -> flinfo -> fn_extra ;
1330
1330
my_extra -> ncolumns = ncols ;
1331
1331
my_extra -> record1_type = InvalidOid ;
@@ -1601,8 +1601,8 @@ record_image_eq(PG_FUNCTION_ARGS)
1601
1601
{
1602
1602
fcinfo -> flinfo -> fn_extra =
1603
1603
MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
1604
- sizeof ( RecordCompareData ) - sizeof ( ColumnCompareData )
1605
- + ncols * sizeof (ColumnCompareData ));
1604
+ offsetof( RecordCompareData , columns ) +
1605
+ ncols * sizeof (ColumnCompareData ));
1606
1606
my_extra = (RecordCompareData * ) fcinfo -> flinfo -> fn_extra ;
1607
1607
my_extra -> ncolumns = ncols ;
1608
1608
my_extra -> record1_type = InvalidOid ;
0 commit comments