Cppgres
Build Postgres extensions in C++
Loading...
Searching...
No Matches
heap_tuple.hpp
1#pragma once
2
3#include "imports.h"
4#include "xact.hpp"
5
6namespace cppgres {
7
11struct heap_tuple {
12
13 heap_tuple(::HeapTuple tuple) : tuple_(tuple) {}
14
15 operator ::HeapTuple() const { return tuple_; }
16
17 transaction_id xmin(bool raw = false) const {
18 return raw ? HeapTupleHeaderGetRawXmin(tuple_->t_data) : HeapTupleHeaderGetXmin(tuple_->t_data);
19 }
20
21 transaction_id xmax() const { return HeapTupleHeaderGetRawXmax(tuple_->t_data); }
22
23 transaction_id update_xid() const { return HeapTupleHeaderGetUpdateXid(tuple_->t_data); }
24
25 command_id cmin() const { return HeapTupleHeaderGetCmin(tuple_->t_data); }
26 command_id cmax() const { return HeapTupleHeaderGetCmax(tuple_->t_data); }
27
28private:
29 HeapTuple tuple_;
30};
31
32static_assert(sizeof(heap_tuple) == sizeof(::HeapTuple));
33
34} // namespace cppgres
Heap tuple convenience wrapper.
Definition: heap_tuple.hpp:11
Definition: xact.hpp:16