Skip to content

Commit 9916f66

Browse files
committed
Minor cleanup of PgArray
1 parent 5301580 commit 9916f66

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/oatpp-postgresql/mapping/PgArray.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99

1010
#include <libpq-fe.h>
1111

12-
// TODO: Assumes 64 bits for each element -- only valid for float64 and int64!
1312
struct PgElem {
14-
v_int32 size;
15-
v_int32 value[2];
13+
v_int32 size; // size of each element value (bytes)
14+
v_uint8 value[1]; // Beginning of value array -- dynamically sized
1615
};
1716

1817
// after https://stackoverflow.com/questions/4016412/postgresqls-libpq-encoding-for-binary-transport-of-array-data
1918
struct PgArrayHeader {
19+
PgArrayHeader() : ndim(0), _ign(0), oid(InvalidOid), size(0), index(0) {};
2020
v_int32 ndim; // Number of dimensions
2121
v_int32 _ign; // offset for data, removed by libpq
2222
Oid oid; // type of element in the array
@@ -26,6 +26,7 @@ struct PgArrayHeader {
2626
v_int32 index; // Index of first element
2727
};
2828

29+
// Layout of Postgres array in memory
2930
struct PgArray {
3031
PgArrayHeader header;
3132
PgElem elem[1]; // Beginning of (size, value) elements

0 commit comments

Comments
 (0)