1
1
mirror of https://github.com/wader/fq.git synced 2024-11-29 23:27:12 +03:00

postgres: refactoring

This commit is contained in:
Pavel Safonov 2022-10-07 14:12:36 +03:00
parent e06fa6e139
commit bedc480a51
19 changed files with 52 additions and 921 deletions

View File

@ -0,0 +1,16 @@
package pgproee
import (
"github.com/wader/fq/format"
"github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"github.com/wader/fq/pkg/decode"
)
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres.Heap{
Args: args,
DecodePageHeaderData: DecodePageHeaderData,
DecodePageSpecial: DecodePageSpecial,
}
return postgres.Decode(heap, d)
}

View File

@ -0,0 +1,14 @@
package postgres
import (
"github.com/wader/fq/format"
"github.com/wader/fq/pkg/decode"
)
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &Heap{
Args: args,
DecodePageHeaderData: DecodePageHeader,
}
return Decode(heap, d)
}

View File

@ -137,7 +137,7 @@ type TupleD struct {
IsMulti bool
}
func DecodeHeap(heap *Heap, d *decode.D) any {
func Decode(heap *Heap, d *decode.D) any {
d.SeekAbs(0)
decodeHeapPages(heap, d)

View File

@ -1,15 +0,0 @@
package pgpro10
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"github.com/wader/fq/pkg/decode"
)
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,61 +0,0 @@
package pgpro11
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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
/* 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 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,62 +0,0 @@
package pgpro12
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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;
/* 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 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,62 +0,0 @@
package pgpro13
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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;
/* 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 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,62 +0,0 @@
package pgpro14
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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;
/* 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 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,64 +0,0 @@
package pgproee10
import (
"github.com/wader/fq/format"
"github.com/wader/fq/format/postgres/common/pg_heap/pgproee"
"github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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 | 0 */ // ItemIdData pd_linp[];
//
/* total size (bytes): 20 */
// 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 */ // ShortTransactionId t_xmin;
/* 4 | 4 */ // ShortTransactionId t_xmax;
/* 8 | 4 */ // union {
/* 4 */ // CommandId t_cid;
/* 4 */ // ShortTransactionId t_xvac;
// } t_field3;
/* total size (bytes): 4 */
//
/* total size (bytes): 12 */
// type = struct HeapPageSpecialData {
/* 0 | 8 */ // TransactionId pd_xid_base;
/* 8 | 8 */ // TransactionId pd_multi_base;
/* 16 | 4 */ // ShortTransactionId pd_prune_xid;
/* 20 | 4 */ // uint32 pd_magic;
//
/* total size (bytes): 24 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres.Heap{
Args: args,
DecodePageHeaderData: pgproee.DecodePageHeaderData,
DecodePageSpecial: pgproee.DecodePageSpecial,
}
return postgres.DecodeHeap(heap, d)
}

View File

@ -1,83 +0,0 @@
package pgproee11
import (
"github.com/wader/fq/format"
"github.com/wader/fq/format/postgres/common/pg_heap/pgproee"
"github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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 | 0 */ // ItemIdData pd_linp[];
//
/* total size (bytes): 20 */
// 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 */ // ShortTransactionId t_xmin;
/* 4 | 4 */ // ShortTransactionId t_xmax;
/* 8 | 4 */ // union {
/* 4 */ // CommandId t_cid;
/* 4 */ // ShortTransactionId 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 */
// type = struct HeapPageSpecialData {
/* 0 | 8 */ // TransactionId pd_xid_base;
/* 8 | 8 */ // TransactionId pd_multi_base;
/* 16 | 4 */ // ShortTransactionId pd_prune_xid;
/* 20 | 4 */ // uint32 pd_magic;
//
/* total size (bytes): 24 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres.Heap{
Args: args,
DecodePageHeaderData: pgproee.DecodePageHeaderData,
DecodePageSpecial: pgproee.DecodePageSpecial,
}
return postgres.DecodeHeap(heap, d)
}

View File

@ -1,64 +0,0 @@
package pgproee12
import (
"github.com/wader/fq/format"
"github.com/wader/fq/format/postgres/common/pg_heap/pgproee"
"github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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 | 0 */ // ItemIdData pd_linp[];
//
/* total size (bytes): 20 */
// 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 */ // ShortTransactionId t_xmin;
/* 4 | 4 */ // ShortTransactionId t_xmax;
/* 8 | 4 */ // union {
/* 4 */ // CommandId t_cid;
/* 4 */ // ShortTransactionId t_xvac;
// } t_field3;
/* total size (bytes): 4 */
//
/* total size (bytes): 12 */
// type = struct HeapPageSpecialData {
/* 0 | 8 */ // TransactionId pd_xid_base;
/* 8 | 8 */ // TransactionId pd_multi_base;
/* 16 | 4 */ // ShortTransactionId pd_prune_xid;
/* 20 | 4 */ // uint32 pd_magic;
//
/* total size (bytes): 24 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres.Heap{
Args: args,
DecodePageHeaderData: pgproee.DecodePageHeaderData,
DecodePageSpecial: pgproee.DecodePageSpecial,
}
return postgres.DecodeHeap(heap, d)
}

View File

@ -1,64 +0,0 @@
package pgproee13
import (
"github.com/wader/fq/format"
"github.com/wader/fq/format/postgres/common/pg_heap/pgproee"
"github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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 | 0 */ // ItemIdData pd_linp[];
//
/* total size (bytes): 20 */
// 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 */ // ShortTransactionId t_xmin;
/* 4 | 4 */ // ShortTransactionId t_xmax;
/* 8 | 4 */ // union {
/* 4 */ // CommandId t_cid;
/* 4 */ // ShortTransactionId t_xvac;
// } t_field3;
/* total size (bytes): 4 */
//
/* total size (bytes): 12 */
// type = struct HeapPageSpecialData {
/* 0 | 8 */ // TransactionId pd_xid_base;
/* 8 | 8 */ // TransactionId pd_multi_base;
/* 16 | 4 */ // ShortTransactionId pd_prune_xid;
/* 20 | 4 */ // uint32 pd_magic;
//
/* total size (bytes): 24 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres.Heap{
Args: args,
DecodePageHeaderData: pgproee.DecodePageHeaderData,
DecodePageSpecial: pgproee.DecodePageSpecial,
}
return postgres.DecodeHeap(heap, d)
}

View File

@ -1,91 +0,0 @@
package pgproee14
import (
"github.com/wader/fq/format"
"github.com/wader/fq/format/postgres/common/pg_heap/pgproee"
"github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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 | 0 */ // ItemIdData pd_linp[];
//
/* total size (bytes): 20 */
// type = struct PageXLogRecPtr {
/* 0 | 4 */ // uint32 xlogid;
/* 4 | 4 */ // uint32 xrecoff;
//
/* total size (bytes): 8 */
// type = struct ItemIdData {
/* 0: 0 | 4 */ // unsigned int lp_off : 15;
/* 1: 7 | 4 */ // unsigned int lp_flags : 2;
/* 2: 1 | 4 */ // unsigned int lp_len : 15;
//
/* total size (bytes): 4 */
// 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 */ // ShortTransactionId t_xmin;
/* 4 | 4 */ // ShortTransactionId t_xmax;
/* 8 | 4 */ // union {
/* 4 */ // CommandId t_cid;
/* 4 */ // ShortTransactionId t_xvac;
//
/* total size (bytes): 4 */
// } t_field3;
//
/* 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 */
// type = struct HeapPageSpecialData {
/* 0 | 8 */ // TransactionId pd_xid_base;
/* 8 | 8 */ // TransactionId pd_multi_base;
/* 16 | 4 */ // ShortTransactionId pd_prune_xid;
/* 20 | 4 */ // uint32 pd_magic;
//
/* total size (bytes): 24 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres.Heap{
Args: args,
DecodePageHeaderData: pgproee.DecodePageHeaderData,
DecodePageSpecial: pgproee.DecodePageSpecial,
}
return postgres.DecodeHeap(heap, d)
}

View File

@ -1,15 +0,0 @@
package postgres10
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"github.com/wader/fq/pkg/decode"
)
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,74 +0,0 @@
package postgres11
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,74 +0,0 @@
package postgres12
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,55 +0,0 @@
package postgres13
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -1,28 +0,0 @@
package postgres14
import (
"github.com/wader/fq/format"
postgres2 "github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"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 */
func DecodeHeap(d *decode.D, args format.PostgresHeapIn) any {
heap := &postgres2.Heap{
Args: args,
DecodePageHeaderData: postgres2.DecodePageHeader,
}
return postgres2.DecodeHeap(heap, d)
}

View File

@ -2,23 +2,10 @@ package postgres
import (
"embed"
"github.com/wader/fq/format/postgres/common/pg_heap/pgproee"
"github.com/wader/fq/format/postgres/common/pg_heap/postgres"
"github.com/wader/fq/format"
"github.com/wader/fq/format/postgres/flavours/pgpro10"
"github.com/wader/fq/format/postgres/flavours/pgpro11"
"github.com/wader/fq/format/postgres/flavours/pgpro12"
"github.com/wader/fq/format/postgres/flavours/pgpro13"
"github.com/wader/fq/format/postgres/flavours/pgpro14"
"github.com/wader/fq/format/postgres/flavours/pgproee10"
"github.com/wader/fq/format/postgres/flavours/pgproee11"
"github.com/wader/fq/format/postgres/flavours/pgproee12"
"github.com/wader/fq/format/postgres/flavours/pgproee13"
"github.com/wader/fq/format/postgres/flavours/pgproee14"
"github.com/wader/fq/format/postgres/flavours/postgres10"
"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"
)
@ -54,40 +41,28 @@ func decodePgheap(d *decode.D, in any) any {
}
switch pgIn.Flavour {
case PG_FLAVOUR_POSTGRES10:
return postgres10.DecodeHeap(d, pgIn)
case PG_FLAVOUR_POSTGRES11:
return postgres11.DecodeHeap(d, pgIn)
case PG_FLAVOUR_POSTGRES12:
return postgres12.DecodeHeap(d, pgIn)
case PG_FLAVOUR_POSTGRES13:
return postgres13.DecodeHeap(d, pgIn)
case PG_FLAVOUR_POSTGRES14:
return postgres14.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPROEE10:
return pgproee10.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPROEE11:
return pgproee11.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPROEE12:
return pgproee12.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPROEE13:
return pgproee13.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPROEE14:
return pgproee14.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPRO10:
return pgpro10.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPRO11:
return pgpro11.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPRO12:
return pgpro12.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPRO13:
return pgpro13.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPRO14:
return pgpro14.DecodeHeap(d, pgIn)
case PG_FLAVOUR_POSTGRES10,
PG_FLAVOUR_POSTGRES11,
PG_FLAVOUR_POSTGRES12,
PG_FLAVOUR_POSTGRES13,
PG_FLAVOUR_POSTGRES14,
PG_FLAVOUR_PGPRO10,
PG_FLAVOUR_PGPRO11,
PG_FLAVOUR_PGPRO12,
PG_FLAVOUR_PGPRO13,
PG_FLAVOUR_PGPRO14:
return postgres.DecodeHeap(d, pgIn)
case PG_FLAVOUR_PGPROEE10,
PG_FLAVOUR_PGPROEE11,
PG_FLAVOUR_PGPROEE12,
PG_FLAVOUR_PGPROEE13,
PG_FLAVOUR_PGPROEE14:
return pgproee.DecodeHeap(d, pgIn)
default:
break
}
return postgres14.DecodeHeap(d, pgIn)
return postgres.DecodeHeap(d, pgIn)
}