Skip to content

Commit

Permalink
PostgreSQl: heap impl for version 13
Browse files Browse the repository at this point in the history
  • Loading branch information
Pavel Safonov committed Aug 4, 2022
1 parent c273a6c commit 621c4c4
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
55 changes: 55 additions & 0 deletions format/postgres/flavours/postgres13/pgheap.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package postgres13

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 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;h
/* total size (bytes): 4 */
//
/* total size (bytes): 12 */

func DecodeHeap(d *decode.D) any {
heap := &common14.HeapD{
PageSize: common.HeapPageSize,
DecodePageHeaderDataFn: common14.DecodePageHeaderData,
}
return common14.DecodeHeap(d, heap)
}
3 changes: 3 additions & 0 deletions format/postgres/pgheap.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"github.com/wader/fq/format/postgres/flavours/pgproee14"
"github.com/wader/fq/format/postgres/flavours/postgres11"
"github.com/wader/fq/format/postgres/flavours/postgres12"
"github.com/wader/fq/format/postgres/flavours/postgres13"
"github.com/wader/fq/format/postgres/flavours/postgres14"
"github.com/wader/fq/pkg/decode"
"github.com/wader/fq/pkg/interp"
Expand All @@ -32,6 +33,8 @@ func decodePgheap(d *decode.D, in any) any {
return postgres11.DecodeHeap(d)
case PG_FLAVOUR_POSTGRES12:
return postgres12.DecodeHeap(d)
case PG_FLAVOUR_POSTGRES13:
return postgres13.DecodeHeap(d)
case PG_FLAVOUR_POSTGRES14, PG_FLAVOUR_POSTGRES:
return postgres14.DecodeHeap(d)
case PG_FLAVOUR_PGPROEE11:
Expand Down

0 comments on commit 621c4c4

Please sign in to comment.