summaryrefslogtreecommitdiff
path: root/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp')
-rw-r--r--storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp235
1 files changed, 235 insertions, 0 deletions
diff --git a/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp b/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
new file mode 100644
index 00000000000..e73986e4d73
--- /dev/null
+++ b/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
@@ -0,0 +1,235 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include <NdbMain.h>
+#include <NdbOut.hpp>
+#include <ndb_types.h>
+
+#define ZNEW_PREP_OP_TYPE 0
+#define ZPREP_OP_TYPE 1
+#define ZCOMMIT_TYPE 2
+#define ZABORT_TYPE 3
+#define ZFD_TYPE 4
+#define ZFRAG_SPLIT_TYPE 5
+#define ZNEXT_LOG_RECORD_TYPE 6
+#define ZNEXT_MBYTE_TYPE 7
+#define ZCOMPLETED_GCI_TYPE 8
+#define ZINVALID_COMMIT_TYPE 9
+
+#define MAX_FILE_DESCRIPTORS 40
+#define NO_MBYTE_IN_FILE 16
+
+#define PAGESIZE 8192
+#define NO_PAGES_IN_MBYTE 32
+#define NO_MBYTE_IN_FILE 16
+
+#define COMMITTRANSACTIONRECORDSIZE 8
+#define COMPLETEDGCIRECORDSIZE 2
+#define PAGEHEADERSIZE 32
+#define FILEDESCRIPTORHEADERSIZE 3
+#define FILEDESCRIPTORRECORDSIZE 48
+#define NEXTMBYTERECORDSIZE 1
+#define ABORTTRANSACTIONRECORDSIZE 3
+
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+class AbortTransactionRecord {
+ friend NdbOut& operator<<(NdbOut&, const AbortTransactionRecord&);
+public:
+ bool check();
+ Uint32 getLogRecordSize();
+protected:
+ Uint32 m_recordType;
+ Uint32 m_transactionId1;
+ Uint32 m_transactionId2;
+};
+
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+class NextMbyteRecord {
+ friend NdbOut& operator<<(NdbOut&, const NextMbyteRecord&);
+public:
+ bool check();
+ Uint32 getLogRecordSize();
+protected:
+ Uint32 m_recordType;
+};
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+
+class PrepareOperationRecord {
+ friend NdbOut& operator<<(NdbOut&, const PrepareOperationRecord&);
+public:
+ bool check();
+ Uint32 getLogRecordSize();
+
+protected:
+ Uint32 m_recordType;
+ Uint32 m_logRecordSize;
+ Uint32 m_hashValue;
+ Uint32 m_schemaVersion;
+ Uint32 m_operationType; // 0 READ, 1 UPDATE, 2 INSERT, 3 DELETE
+ Uint32 m_attributeLength;
+ Uint32 m_keyLength;
+ Uint32 *m_keyInfo; // In this order
+ Uint32 *m_attrInfo;// In this order
+};
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+class CompletedGCIRecord {
+ friend NdbOut& operator<<(NdbOut&, const CompletedGCIRecord&);
+public:
+ bool check();
+ Uint32 getLogRecordSize();
+protected:
+ Uint32 m_recordType;
+ Uint32 m_theCompletedGCI;
+};
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+class NextLogRecord {
+ friend NdbOut& operator<<(NdbOut&, const NextLogRecord&);
+public:
+ bool check();
+ Uint32 getLogRecordSize(Uint32);
+protected:
+ Uint32 m_recordType;
+};
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+class PageHeader {
+ friend NdbOut& operator<<(NdbOut&, const PageHeader&);
+public:
+ bool check();
+ Uint32 getLogRecordSize();
+protected:
+ Uint32 m_checksum;
+ Uint32 m_lap;
+ Uint32 m_max_gci_completed;
+ Uint32 m_max_gci_started;
+ Uint32 m_next_page;
+ Uint32 m_previous_page;
+ Uint32 m_ndb_version;
+ Uint32 m_number_of_logfiles;
+ Uint32 m_current_page_index;
+ Uint32 m_old_prepare_file_number;
+ Uint32 m_old_prepare_page_reference;
+ Uint32 m_dirty_flag;
+};
+
+//----------------------------------------------------------------
+// File descriptor.
+//----------------------------------------------------------------
+
+class FileDescriptorHeader {
+public:
+ Uint32 m_recordType;
+ Uint32 m_noOfDescriptors;
+ Uint32 m_fileNo;
+};
+
+class FileDescriptorRecord {
+public:
+ Uint32 m_maxGciCompleted[16];
+ Uint32 m_maxGciStarted[16];
+ Uint32 m_lastPreparedReference[16];
+};
+
+class FileDescriptor {
+ friend NdbOut& operator<<(NdbOut&, const FileDescriptor&);
+public:
+ bool check();
+ Uint32 getLogRecordSize();
+protected:
+ void printARecord( Uint32 ) const;
+ FileDescriptorHeader m_fdHeader;
+ FileDescriptorRecord m_fdRecord[1];
+};
+
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+class CommitTransactionRecord {
+ friend NdbOut& operator<<(NdbOut&, const CommitTransactionRecord&);
+public:
+ bool check();
+ Uint32 getLogRecordSize();
+protected:
+ Uint32 m_recordType;
+ Uint32 m_tableId;
+ Uint32 m_fragmentId;
+ Uint32 m_fileNumberOfPrepareOperation;
+ Uint32 m_startPageNumberOfPrepareOperation;
+ Uint32 m_startPageIndexOfPrepareOperation;
+ Uint32 m_stopPageNumberOfPrepareOperation;
+ Uint32 m_globalCheckpoint;
+};
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+class InvalidCommitTransactionRecord {
+ friend NdbOut& operator<<(NdbOut&, const InvalidCommitTransactionRecord&);
+public:
+ bool check();
+ Uint32 getLogRecordSize();
+protected:
+ Uint32 m_recordType;
+ Uint32 m_tableId;
+ Uint32 m_fragmentId;
+ Uint32 m_fileNumberOfPrepareOperation;
+ Uint32 m_startPageNumberOfPrepareOperation;
+ Uint32 m_startPageIndexOfPrepareOperation;
+ Uint32 m_stopPageNumberOfPrepareOperation;
+ Uint32 m_globalCheckpoint;
+};
+
+//----------------------------------------------------------------
+//
+//----------------------------------------------------------------
+
+struct NextLogRec {
+
+};
+
+struct NewPrepareOperation {
+
+};
+
+struct FragmentSplit {
+
+};