1
1
mirror of https://github.com/wader/fq.git synced 2024-12-12 13:14:16 +03:00
fq/format/postgres/flavours/postgres12/pg_heap.go

75 lines
2.3 KiB
Go
Raw Normal View History

2022-08-03 13:40:31 +03:00
package postgres12
import (
"github.com/wader/fq/format/postgres/common"
"github.com/wader/fq/format/postgres/flavours/postgres14/common14"
"github.com/wader/fq/pkg/decode"
)
// type = struct PageHeaderData {
/* 0 | 8 */ // PageXLogRecPtr pd_lsn;
/* 8 | 2 */ // uint16 pd_checksum;
/* 10 | 2 */ // uint16 pd_flags;
/* 12 | 2 */ // LocationIndex pd_lower;
/* 14 | 2 */ // LocationIndex pd_upper;
/* 16 | 2 */ // LocationIndex pd_special;
/* 18 | 2 */ // uint16 pd_pagesize_version;
/* 20 | 4 */ // TransactionId pd_prune_xid;
/* 24 | 0 */ // ItemIdData pd_linp[];
//
/* total size (bytes): 24 */
// type = struct PageXLogRecPtr {
/* 0 | 4 */ // uint32 xlogid;
/* 4 | 4 */ // uint32 xrecoff;
//
/* total size (bytes): 8 */
// type = struct HeapTupleHeaderData {
/* 0 | 12 */ // union {
/* 12 */ // HeapTupleFields t_heap;
/* 12 */ // DatumTupleFields t_datum;
// // } t_choice;
/* total size (bytes): 12 */
//
/* 12 | 6 */ // ItemPointerData t_ctid;
/* 18 | 2 */ // uint16 t_infomask2;
/* 20 | 2 */ // uint16 t_infomask;
/* 22 | 1 */ // uint8 t_hoff;
/* 23 | 0 */ // bits8 t_bits[];
/* XXX 1-byte padding */
//
/* total size (bytes): 24 */
// type = struct HeapTupleFields {
/* 0 | 4 */ // TransactionId t_xmin;
/* 4 | 4 */ // TransactionId t_xmax;
/* 8 | 4 */ // union {
/* 4 */ // CommandId t_cid;
/* 4 */ // TransactionId t_xvac;
// } t_field3;
/* total size (bytes): 4 */
//
/* total size (bytes): 12 */
// type = struct DatumTupleFields {
/* 0 | 4 */ // int32 datum_len_;
/* 4 | 4 */ // int32 datum_typmod;
/* 8 | 4 */ // Oid datum_typeid;
//
/* total size (bytes): 12 */
// type = struct ItemPointerData {
/* 0 | 4 */ // BlockIdData ip_blkid;
/* 4 | 2 */ // OffsetNumber ip_posid;
//
/* total size (bytes): 6 */
func DecodeHeap(d *decode.D) any {
heap := &common14.HeapD{
PageSize: common.HeapPageSize,
DecodePageHeaderDataFn: common14.DecodePageHeaderData,
}
2022-09-06 10:23:08 +03:00
return common14.DecodeHeap(heap, d)
2022-08-03 13:40:31 +03:00
}