summaryrefslogtreecommitdiff
path: root/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp')
-rw-r--r--storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp145
1 files changed, 145 insertions, 0 deletions
diff --git a/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp b/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp
new file mode 100644
index 00000000000..43c129347c0
--- /dev/null
+++ b/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp
@@ -0,0 +1,145 @@
+/* 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 <signaldata/DictTabInfo.hpp>
+#include <ndb_limits.h>
+
+//static
+const
+SimpleProperties::SP2StructMapping
+DictTabInfo::TableMapping[] = {
+ DTIMAPS(Table, TableName, TableName, 0, MAX_TAB_NAME_SIZE),
+ DTIMAP(Table, TableId, TableId),
+ DTIMAPS(Table, PrimaryTable, PrimaryTable, 0, MAX_TAB_NAME_SIZE),
+ DTIMAP(Table, PrimaryTableId, PrimaryTableId),
+ DTIMAP2(Table, TableLoggedFlag, TableLoggedFlag, 0, 1),
+ DTIMAP2(Table, TableKValue, TableKValue, 6, 6),
+ DTIMAP2(Table, MinLoadFactor, MinLoadFactor, 0, 90),
+ DTIMAP2(Table, MaxLoadFactor, MaxLoadFactor, 25, 110),
+ DTIMAP2(Table, FragmentTypeVal, FragmentType, 0, 3),
+ DTIMAP2(Table, TableStorageVal, TableStorage, 0, 0),
+ DTIMAP2(Table, TableTypeVal, TableType, 1, 3),
+ DTIMAP(Table, NoOfKeyAttr, NoOfKeyAttr),
+ DTIMAP2(Table, NoOfAttributes, NoOfAttributes, 1, MAX_ATTRIBUTES_IN_TABLE),
+ DTIMAP(Table, NoOfNullable, NoOfNullable),
+ DTIMAP2(Table, NoOfVariable, NoOfVariable, 0, 0),
+ DTIMAP(Table, KeyLength, KeyLength),
+ DTIMAP(Table, TableVersion, TableVersion),
+ DTIMAP(Table, IndexState, IndexState),
+ DTIMAP(Table, InsertTriggerId, InsertTriggerId),
+ DTIMAP(Table, UpdateTriggerId, UpdateTriggerId),
+ DTIMAP(Table, DeleteTriggerId, DeleteTriggerId),
+ DTIMAP(Table, CustomTriggerId, CustomTriggerId),
+ DTIMAP2(Table, FrmLen, FrmLen, 0, MAX_FRM_DATA_SIZE),
+ DTIMAPB(Table, FrmData, FrmData, 0, MAX_FRM_DATA_SIZE, FrmLen),
+ DTIMAP(Table, FragmentCount, FragmentCount),
+ DTIMAP2(Table, FragmentDataLen, FragmentDataLen, 0, MAX_FRAGMENT_DATA_BYTES),
+ DTIMAPB(Table, FragmentData, FragmentData, 0, MAX_FRAGMENT_DATA_BYTES, FragmentDataLen),
+ DTIBREAK(AttributeName)
+};
+
+//static
+const Uint32 DictTabInfo::TableMappingSize =
+sizeof(DictTabInfo::TableMapping) / sizeof(SimpleProperties::SP2StructMapping);
+
+//static
+const
+SimpleProperties::SP2StructMapping
+DictTabInfo::AttributeMapping[] = {
+ DTIMAPS(Attribute, AttributeName, AttributeName, 0, MAX_ATTR_NAME_SIZE),
+ DTIMAP(Attribute, AttributeId, AttributeId),
+ DTIMAP(Attribute, AttributeType, AttributeType),
+ DTIMAP2(Attribute, AttributeSize, AttributeSize, 3, 7),
+ DTIMAP2(Attribute, AttributeArraySize, AttributeArraySize, 0, 65535),
+ DTIMAP2(Attribute, AttributeKeyFlag, AttributeKeyFlag, 0, 1),
+ DTIMAP2(Attribute, AttributeNullableFlag, AttributeNullableFlag, 0, 1),
+ DTIMAP2(Attribute, AttributeDKey, AttributeDKey, 0, 1),
+ DTIMAP(Attribute, AttributeExtType, AttributeExtType),
+ DTIMAP(Attribute, AttributeExtPrecision, AttributeExtPrecision),
+ DTIMAP(Attribute, AttributeExtScale, AttributeExtScale),
+ DTIMAP(Attribute, AttributeExtLength, AttributeExtLength),
+ DTIMAP2(Attribute, AttributeAutoIncrement, AttributeAutoIncrement, 0, 1),
+ DTIMAPS(Attribute, AttributeDefaultValue, AttributeDefaultValue,
+ 0, MAX_ATTR_DEFAULT_VALUE_SIZE),
+ DTIBREAK(AttributeEnd)
+};
+
+//static
+const Uint32 DictTabInfo::AttributeMappingSize =
+sizeof(DictTabInfo::AttributeMapping) /
+sizeof(SimpleProperties::SP2StructMapping);
+
+bool printDICTTABINFO(FILE * output, const Uint32 * theData,
+ Uint32 len, Uint16 receiverBlockNo)
+{
+// const DictTabInfo * const sig = (DictTabInfo *) theData;
+
+ fprintf(output, "Signal data: ");
+ Uint32 i = 0;
+ while (i < len)
+ fprintf(output, "H\'%.8x ", theData[i++]);
+ fprintf(output,"\n");
+ return true;
+}
+
+void
+DictTabInfo::Table::init(){
+ memset(TableName, 0, sizeof(TableName));//TableName[0] = 0;
+ TableId = ~0;
+ memset(PrimaryTable, 0, sizeof(PrimaryTable));//PrimaryTable[0] = 0; // Only used when "index"
+ PrimaryTableId = RNIL;
+ TableLoggedFlag = 1;
+ NoOfKeyAttr = 0;
+ NoOfAttributes = 0;
+ NoOfNullable = 0;
+ NoOfVariable = 0;
+ TableKValue = 6;
+ MinLoadFactor = 78;
+ MaxLoadFactor = 80;
+ KeyLength = 0;
+ FragmentType = DictTabInfo::AllNodesSmallTable;
+ TableStorage = 0;
+ TableType = DictTabInfo::UndefTableType;
+ TableVersion = 0;
+ IndexState = ~0;
+ InsertTriggerId = RNIL;
+ UpdateTriggerId = RNIL;
+ DeleteTriggerId = RNIL;
+ CustomTriggerId = RNIL;
+ FrmLen = 0;
+ memset(FrmData, 0, sizeof(FrmData));
+ FragmentCount = 0;
+ FragmentDataLen = 0;
+ memset(FragmentData, 0, sizeof(FragmentData));
+}
+
+void
+DictTabInfo::Attribute::init(){
+ memset(AttributeName, 0, sizeof(AttributeName));//AttributeName[0] = 0;
+ AttributeId = 0;
+ AttributeType = ~0, // deprecated
+ AttributeSize = DictTabInfo::a32Bit;
+ AttributeArraySize = 1;
+ AttributeKeyFlag = 0;
+ AttributeNullableFlag = 0;
+ AttributeDKey = 0;
+ AttributeExtType = DictTabInfo::ExtUnsigned,
+ AttributeExtPrecision = 0,
+ AttributeExtScale = 0,
+ AttributeExtLength = 0,
+ AttributeAutoIncrement = false;
+ memset(AttributeDefaultValue, 0, sizeof(AttributeDefaultValue));//AttributeDefaultValue[0] = 0;
+}