2
0

message.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*-------------------------------------------------------------------------
  2. * message.h
  3. * Exports from replication/logical/message.c
  4. *
  5. * Copyright (c) 2013-2022, PostgreSQL Global Development Group
  6. *
  7. * src/include/replication/message.h
  8. *-------------------------------------------------------------------------
  9. */
  10. #ifndef PG_LOGICAL_MESSAGE_H
  11. #define PG_LOGICAL_MESSAGE_H
  12. #include "access/xlog.h"
  13. #include "access/xlogdefs.h"
  14. #include "access/xlogreader.h"
  15. /*
  16. * Generic logical decoding message wal record.
  17. */
  18. typedef struct xl_logical_message
  19. {
  20. Oid dbId; /* database Oid emitted from */
  21. bool transactional; /* is message transactional? */
  22. Size prefix_size; /* length of prefix */
  23. Size message_size; /* size of the message */
  24. /* payload, including null-terminated prefix of length prefix_size */
  25. char message[FLEXIBLE_ARRAY_MEMBER];
  26. } xl_logical_message;
  27. #define SizeOfLogicalMessage (offsetof(xl_logical_message, message))
  28. extern XLogRecPtr LogLogicalMessage(const char *prefix, const char *message,
  29. size_t size, bool transactional);
  30. /* RMGR API */
  31. #define XLOG_LOGICAL_MESSAGE 0x00
  32. extern void logicalmsg_redo(XLogReaderState *record);
  33. extern void logicalmsg_desc(StringInfo buf, XLogReaderState *record);
  34. extern const char *logicalmsg_identify(uint8 info);
  35. #endif /* PG_LOGICAL_MESSAGE_H */