Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 5740be6

Browse files
committed
Some more FLEXIBLE_ARRAY_MEMBER hacking.
1 parent 9aa53bb commit 5740be6

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

src/backend/utils/adt/rowtypes.c

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)