mirror of
https://github.com/postgres/postgres.git
synced 2025-09-06 13:46:51 +03:00
Use FLEXIBLE_ARRAY_MEMBER in struct varlena.
This forces some minor coding adjustments in tuptoaster.c and inv_api.c, but the new coding there is cleaner anyway. Michael Paquier
This commit is contained in:
@@ -562,11 +562,13 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes)
|
||||
bool neednextpage;
|
||||
bytea *datafield;
|
||||
bool pfreeit;
|
||||
struct
|
||||
union
|
||||
{
|
||||
bytea hdr;
|
||||
char data[LOBLKSIZE]; /* make struct big enough */
|
||||
int32 align_it; /* ensure struct is aligned well enough */
|
||||
/* this is to make the union big enough for a LO data chunk: */
|
||||
char data[LOBLKSIZE + VARHDRSZ];
|
||||
/* ensure union is aligned well enough: */
|
||||
int32 align_it;
|
||||
} workbuf;
|
||||
char *workb = VARDATA(&workbuf.hdr);
|
||||
HeapTuple newtup;
|
||||
@@ -748,11 +750,13 @@ inv_truncate(LargeObjectDesc *obj_desc, int64 len)
|
||||
SysScanDesc sd;
|
||||
HeapTuple oldtuple;
|
||||
Form_pg_largeobject olddata;
|
||||
struct
|
||||
union
|
||||
{
|
||||
bytea hdr;
|
||||
char data[LOBLKSIZE]; /* make struct big enough */
|
||||
int32 align_it; /* ensure struct is aligned well enough */
|
||||
/* this is to make the union big enough for a LO data chunk: */
|
||||
char data[LOBLKSIZE + VARHDRSZ];
|
||||
/* ensure union is aligned well enough: */
|
||||
int32 align_it;
|
||||
} workbuf;
|
||||
char *workb = VARDATA(&workbuf.hdr);
|
||||
HeapTuple newtup;
|
||||
|
Reference in New Issue
Block a user