diff options
Diffstat (limited to 'storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp')
-rw-r--r-- | storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp | 145 |
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; +} |