mirror of
https://github.com/debezium/postgres-decoderbufs.git
synced 2026-02-04 06:56:22 +00:00
First working version for debug text output at least
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
#define PROTOBUF_C__NO_DEPRECATED
|
||||
#endif
|
||||
|
||||
#include "proto/pg_logicaldec.pb-c.h"
|
||||
#include "pg_logicaldec.pb-c.h"
|
||||
void decoderbufs__datum_message__init
|
||||
(Decoderbufs__DatumMessage *message)
|
||||
{
|
||||
@@ -50,47 +50,47 @@ void decoderbufs__datum_message__free_unpacked
|
||||
assert(message->base.descriptor == &decoderbufs__datum_message__descriptor);
|
||||
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
||||
}
|
||||
void decoderbufs__txn_message__init
|
||||
(Decoderbufs__TxnMessage *message)
|
||||
void decoderbufs__row_message__init
|
||||
(Decoderbufs__RowMessage *message)
|
||||
{
|
||||
static Decoderbufs__TxnMessage init_value = DECODERBUFS__TXN_MESSAGE__INIT;
|
||||
static Decoderbufs__RowMessage init_value = DECODERBUFS__ROW_MESSAGE__INIT;
|
||||
*message = init_value;
|
||||
}
|
||||
size_t decoderbufs__txn_message__get_packed_size
|
||||
(const Decoderbufs__TxnMessage *message)
|
||||
size_t decoderbufs__row_message__get_packed_size
|
||||
(const Decoderbufs__RowMessage *message)
|
||||
{
|
||||
assert(message->base.descriptor == &decoderbufs__txn_message__descriptor);
|
||||
assert(message->base.descriptor == &decoderbufs__row_message__descriptor);
|
||||
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
||||
}
|
||||
size_t decoderbufs__txn_message__pack
|
||||
(const Decoderbufs__TxnMessage *message,
|
||||
size_t decoderbufs__row_message__pack
|
||||
(const Decoderbufs__RowMessage *message,
|
||||
uint8_t *out)
|
||||
{
|
||||
assert(message->base.descriptor == &decoderbufs__txn_message__descriptor);
|
||||
assert(message->base.descriptor == &decoderbufs__row_message__descriptor);
|
||||
return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
||||
}
|
||||
size_t decoderbufs__txn_message__pack_to_buffer
|
||||
(const Decoderbufs__TxnMessage *message,
|
||||
size_t decoderbufs__row_message__pack_to_buffer
|
||||
(const Decoderbufs__RowMessage *message,
|
||||
ProtobufCBuffer *buffer)
|
||||
{
|
||||
assert(message->base.descriptor == &decoderbufs__txn_message__descriptor);
|
||||
assert(message->base.descriptor == &decoderbufs__row_message__descriptor);
|
||||
return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
||||
}
|
||||
Decoderbufs__TxnMessage *
|
||||
decoderbufs__txn_message__unpack
|
||||
Decoderbufs__RowMessage *
|
||||
decoderbufs__row_message__unpack
|
||||
(ProtobufCAllocator *allocator,
|
||||
size_t len,
|
||||
const uint8_t *data)
|
||||
{
|
||||
return (Decoderbufs__TxnMessage *)
|
||||
protobuf_c_message_unpack (&decoderbufs__txn_message__descriptor,
|
||||
return (Decoderbufs__RowMessage *)
|
||||
protobuf_c_message_unpack (&decoderbufs__row_message__descriptor,
|
||||
allocator, len, data);
|
||||
}
|
||||
void decoderbufs__txn_message__free_unpacked
|
||||
(Decoderbufs__TxnMessage *message,
|
||||
void decoderbufs__row_message__free_unpacked
|
||||
(Decoderbufs__RowMessage *message,
|
||||
ProtobufCAllocator *allocator)
|
||||
{
|
||||
assert(message->base.descriptor == &decoderbufs__txn_message__descriptor);
|
||||
assert(message->base.descriptor == &decoderbufs__row_message__descriptor);
|
||||
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
||||
}
|
||||
static const ProtobufCFieldDescriptor decoderbufs__datum_message__field_descriptors[9] =
|
||||
@@ -235,27 +235,15 @@ const ProtobufCMessageDescriptor decoderbufs__datum_message__descriptor =
|
||||
(ProtobufCMessageInit) decoderbufs__datum_message__init,
|
||||
NULL,NULL,NULL /* reserved[123] */
|
||||
};
|
||||
static const ProtobufCFieldDescriptor decoderbufs__txn_message__field_descriptors[6] =
|
||||
static const ProtobufCFieldDescriptor decoderbufs__row_message__field_descriptors[5] =
|
||||
{
|
||||
{
|
||||
"timestamp",
|
||||
"commit_time",
|
||||
1,
|
||||
PROTOBUF_C_LABEL_OPTIONAL,
|
||||
PROTOBUF_C_TYPE_SINT64,
|
||||
offsetof(Decoderbufs__TxnMessage, has_timestamp),
|
||||
offsetof(Decoderbufs__TxnMessage, timestamp),
|
||||
NULL,
|
||||
NULL,
|
||||
0, /* flags */
|
||||
0,NULL,NULL /* reserved1,reserved2, etc */
|
||||
},
|
||||
{
|
||||
"xid",
|
||||
2,
|
||||
PROTOBUF_C_LABEL_OPTIONAL,
|
||||
PROTOBUF_C_TYPE_INT64,
|
||||
offsetof(Decoderbufs__TxnMessage, has_xid),
|
||||
offsetof(Decoderbufs__TxnMessage, xid),
|
||||
offsetof(Decoderbufs__RowMessage, has_commit_time),
|
||||
offsetof(Decoderbufs__RowMessage, commit_time),
|
||||
NULL,
|
||||
NULL,
|
||||
0, /* flags */
|
||||
@@ -263,11 +251,11 @@ static const ProtobufCFieldDescriptor decoderbufs__txn_message__field_descriptor
|
||||
},
|
||||
{
|
||||
"table",
|
||||
3,
|
||||
2,
|
||||
PROTOBUF_C_LABEL_OPTIONAL,
|
||||
PROTOBUF_C_TYPE_STRING,
|
||||
0, /* quantifier_offset */
|
||||
offsetof(Decoderbufs__TxnMessage, table),
|
||||
offsetof(Decoderbufs__RowMessage, table),
|
||||
NULL,
|
||||
NULL,
|
||||
0, /* flags */
|
||||
@@ -275,67 +263,66 @@ static const ProtobufCFieldDescriptor decoderbufs__txn_message__field_descriptor
|
||||
},
|
||||
{
|
||||
"op",
|
||||
4,
|
||||
3,
|
||||
PROTOBUF_C_LABEL_OPTIONAL,
|
||||
PROTOBUF_C_TYPE_ENUM,
|
||||
offsetof(Decoderbufs__TxnMessage, has_op),
|
||||
offsetof(Decoderbufs__TxnMessage, op),
|
||||
offsetof(Decoderbufs__RowMessage, has_op),
|
||||
offsetof(Decoderbufs__RowMessage, op),
|
||||
&decoderbufs__op__descriptor,
|
||||
NULL,
|
||||
0, /* flags */
|
||||
0,NULL,NULL /* reserved1,reserved2, etc */
|
||||
},
|
||||
{
|
||||
"new_datum",
|
||||
5,
|
||||
PROTOBUF_C_LABEL_OPTIONAL,
|
||||
"new_tuple",
|
||||
4,
|
||||
PROTOBUF_C_LABEL_REPEATED,
|
||||
PROTOBUF_C_TYPE_MESSAGE,
|
||||
0, /* quantifier_offset */
|
||||
offsetof(Decoderbufs__TxnMessage, new_datum),
|
||||
offsetof(Decoderbufs__RowMessage, n_new_tuple),
|
||||
offsetof(Decoderbufs__RowMessage, new_tuple),
|
||||
&decoderbufs__datum_message__descriptor,
|
||||
NULL,
|
||||
0, /* flags */
|
||||
0,NULL,NULL /* reserved1,reserved2, etc */
|
||||
},
|
||||
{
|
||||
"old_datum",
|
||||
6,
|
||||
PROTOBUF_C_LABEL_OPTIONAL,
|
||||
"old_tuple",
|
||||
5,
|
||||
PROTOBUF_C_LABEL_REPEATED,
|
||||
PROTOBUF_C_TYPE_MESSAGE,
|
||||
0, /* quantifier_offset */
|
||||
offsetof(Decoderbufs__TxnMessage, old_datum),
|
||||
offsetof(Decoderbufs__RowMessage, n_old_tuple),
|
||||
offsetof(Decoderbufs__RowMessage, old_tuple),
|
||||
&decoderbufs__datum_message__descriptor,
|
||||
NULL,
|
||||
0, /* flags */
|
||||
0,NULL,NULL /* reserved1,reserved2, etc */
|
||||
},
|
||||
};
|
||||
static const unsigned decoderbufs__txn_message__field_indices_by_name[] = {
|
||||
4, /* field[4] = new_datum */
|
||||
5, /* field[5] = old_datum */
|
||||
3, /* field[3] = op */
|
||||
2, /* field[2] = table */
|
||||
0, /* field[0] = timestamp */
|
||||
1, /* field[1] = xid */
|
||||
static const unsigned decoderbufs__row_message__field_indices_by_name[] = {
|
||||
0, /* field[0] = commit_time */
|
||||
3, /* field[3] = new_tuple */
|
||||
4, /* field[4] = old_tuple */
|
||||
2, /* field[2] = op */
|
||||
1, /* field[1] = table */
|
||||
};
|
||||
static const ProtobufCIntRange decoderbufs__txn_message__number_ranges[1 + 1] =
|
||||
static const ProtobufCIntRange decoderbufs__row_message__number_ranges[1 + 1] =
|
||||
{
|
||||
{ 1, 0 },
|
||||
{ 0, 6 }
|
||||
{ 0, 5 }
|
||||
};
|
||||
const ProtobufCMessageDescriptor decoderbufs__txn_message__descriptor =
|
||||
const ProtobufCMessageDescriptor decoderbufs__row_message__descriptor =
|
||||
{
|
||||
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
||||
"decoderbufs.TxnMessage",
|
||||
"TxnMessage",
|
||||
"Decoderbufs__TxnMessage",
|
||||
"decoderbufs.RowMessage",
|
||||
"RowMessage",
|
||||
"Decoderbufs__RowMessage",
|
||||
"decoderbufs",
|
||||
sizeof(Decoderbufs__TxnMessage),
|
||||
6,
|
||||
decoderbufs__txn_message__field_descriptors,
|
||||
decoderbufs__txn_message__field_indices_by_name,
|
||||
1, decoderbufs__txn_message__number_ranges,
|
||||
(ProtobufCMessageInit) decoderbufs__txn_message__init,
|
||||
sizeof(Decoderbufs__RowMessage),
|
||||
5,
|
||||
decoderbufs__row_message__field_descriptors,
|
||||
decoderbufs__row_message__field_indices_by_name,
|
||||
1, decoderbufs__row_message__number_ranges,
|
||||
(ProtobufCMessageInit) decoderbufs__row_message__init,
|
||||
NULL,NULL,NULL /* reserved[123] */
|
||||
};
|
||||
const ProtobufCEnumValue decoderbufs__op__enum_values_by_number[3] =
|
||||
|
||||
@@ -16,7 +16,7 @@ PROTOBUF_C__BEGIN_DECLS
|
||||
|
||||
|
||||
typedef struct _Decoderbufs__DatumMessage Decoderbufs__DatumMessage;
|
||||
typedef struct _Decoderbufs__TxnMessage Decoderbufs__TxnMessage;
|
||||
typedef struct _Decoderbufs__RowMessage Decoderbufs__RowMessage;
|
||||
|
||||
|
||||
/* --- enums --- */
|
||||
@@ -55,22 +55,22 @@ struct _Decoderbufs__DatumMessage
|
||||
, NULL, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, NULL, 0,{0,NULL} }
|
||||
|
||||
|
||||
struct _Decoderbufs__TxnMessage
|
||||
struct _Decoderbufs__RowMessage
|
||||
{
|
||||
ProtobufCMessage base;
|
||||
protobuf_c_boolean has_timestamp;
|
||||
int64_t timestamp;
|
||||
protobuf_c_boolean has_xid;
|
||||
int64_t xid;
|
||||
protobuf_c_boolean has_commit_time;
|
||||
int64_t commit_time;
|
||||
char *table;
|
||||
protobuf_c_boolean has_op;
|
||||
Decoderbufs__Op op;
|
||||
Decoderbufs__DatumMessage *new_datum;
|
||||
Decoderbufs__DatumMessage *old_datum;
|
||||
size_t n_new_tuple;
|
||||
Decoderbufs__DatumMessage **new_tuple;
|
||||
size_t n_old_tuple;
|
||||
Decoderbufs__DatumMessage **old_tuple;
|
||||
};
|
||||
#define DECODERBUFS__TXN_MESSAGE__INIT \
|
||||
{ PROTOBUF_C_MESSAGE_INIT (&decoderbufs__txn_message__descriptor) \
|
||||
, 0,0, 0,0, NULL, 0,0, NULL, NULL }
|
||||
#define DECODERBUFS__ROW_MESSAGE__INIT \
|
||||
{ PROTOBUF_C_MESSAGE_INIT (&decoderbufs__row_message__descriptor) \
|
||||
, 0,0, NULL, 0,0, 0,NULL, 0,NULL }
|
||||
|
||||
|
||||
/* Decoderbufs__DatumMessage methods */
|
||||
@@ -92,32 +92,32 @@ Decoderbufs__DatumMessage *
|
||||
void decoderbufs__datum_message__free_unpacked
|
||||
(Decoderbufs__DatumMessage *message,
|
||||
ProtobufCAllocator *allocator);
|
||||
/* Decoderbufs__TxnMessage methods */
|
||||
void decoderbufs__txn_message__init
|
||||
(Decoderbufs__TxnMessage *message);
|
||||
size_t decoderbufs__txn_message__get_packed_size
|
||||
(const Decoderbufs__TxnMessage *message);
|
||||
size_t decoderbufs__txn_message__pack
|
||||
(const Decoderbufs__TxnMessage *message,
|
||||
/* Decoderbufs__RowMessage methods */
|
||||
void decoderbufs__row_message__init
|
||||
(Decoderbufs__RowMessage *message);
|
||||
size_t decoderbufs__row_message__get_packed_size
|
||||
(const Decoderbufs__RowMessage *message);
|
||||
size_t decoderbufs__row_message__pack
|
||||
(const Decoderbufs__RowMessage *message,
|
||||
uint8_t *out);
|
||||
size_t decoderbufs__txn_message__pack_to_buffer
|
||||
(const Decoderbufs__TxnMessage *message,
|
||||
size_t decoderbufs__row_message__pack_to_buffer
|
||||
(const Decoderbufs__RowMessage *message,
|
||||
ProtobufCBuffer *buffer);
|
||||
Decoderbufs__TxnMessage *
|
||||
decoderbufs__txn_message__unpack
|
||||
Decoderbufs__RowMessage *
|
||||
decoderbufs__row_message__unpack
|
||||
(ProtobufCAllocator *allocator,
|
||||
size_t len,
|
||||
const uint8_t *data);
|
||||
void decoderbufs__txn_message__free_unpacked
|
||||
(Decoderbufs__TxnMessage *message,
|
||||
void decoderbufs__row_message__free_unpacked
|
||||
(Decoderbufs__RowMessage *message,
|
||||
ProtobufCAllocator *allocator);
|
||||
/* --- per-message closures --- */
|
||||
|
||||
typedef void (*Decoderbufs__DatumMessage_Closure)
|
||||
(const Decoderbufs__DatumMessage *message,
|
||||
void *closure_data);
|
||||
typedef void (*Decoderbufs__TxnMessage_Closure)
|
||||
(const Decoderbufs__TxnMessage *message,
|
||||
typedef void (*Decoderbufs__RowMessage_Closure)
|
||||
(const Decoderbufs__RowMessage *message,
|
||||
void *closure_data);
|
||||
|
||||
/* --- services --- */
|
||||
@@ -127,7 +127,7 @@ typedef void (*Decoderbufs__TxnMessage_Closure)
|
||||
|
||||
extern const ProtobufCEnumDescriptor decoderbufs__op__descriptor;
|
||||
extern const ProtobufCMessageDescriptor decoderbufs__datum_message__descriptor;
|
||||
extern const ProtobufCMessageDescriptor decoderbufs__txn_message__descriptor;
|
||||
extern const ProtobufCMessageDescriptor decoderbufs__row_message__descriptor;
|
||||
|
||||
PROTOBUF_C__END_DECLS
|
||||
|
||||
|
||||
Reference in New Issue
Block a user