diff --git a/ndb/include/kernel/AttributeDescriptor.hpp b/ndb/include/kernel/AttributeDescriptor.hpp index 789325c7939..834070651a3 100644 --- a/ndb/include/kernel/AttributeDescriptor.hpp +++ b/ndb/include/kernel/AttributeDescriptor.hpp @@ -33,7 +33,6 @@ private: static void setDGroup(Uint32 &, Uint32 dgroup); static void setDKey(Uint32 &, Uint32 dkey); static void setPrimaryKey(Uint32 &, Uint32 dkey); - static void setStoredInTup(Uint32 &, Uint32 storedInTup); static void setDynamic(Uint32 &, Uint32 dynamicInd); static Uint32 getType(const Uint32 &); @@ -44,10 +43,8 @@ private: static Uint32 getArraySize(const Uint32 &); static Uint32 getOriginal(const Uint32 &); static Uint32 getNullable(const Uint32 &); - static Uint32 getDGroup(const Uint32 &); static Uint32 getDKey(const Uint32 &); static Uint32 getPrimaryKey(const Uint32 &); - static Uint32 getStoredInTup(const Uint32 &); static Uint32 getDynamic(const Uint32 &); }; @@ -58,18 +55,15 @@ private: * s = Attribute size - 3 Bits -> Max 7 (Bit 4-6) * o = Original attribute - 1 Bit 7 * n = Nullable - 1 Bit 8 - * ? = Stored in tup - 1 Bit 9 * d = Disk based - 1 Bit 10 - * g = Distribution Group Ind- 1 Bit 11 * k = Distribution Key Ind - 1 Bit 12 - * r = Distribution group sz - 1 Bit 13 * p = Primary key attribute - 1 Bit 14 * y = Dynamic attribute - 1 Bit 15 * z = Array size - 16 Bits -> Max 65535 (Bit 16-31) * * 1111111111222222222233 * 01234567890123456789012345678901 - * aattsss n dgkrpyzzzzzzzzzzzzzzzz + * aattsss n d k pyzzzzzzzzzzzzzzzz * */ @@ -89,11 +83,8 @@ private: #define AD_ORIGINAL_SHIFT (8) #define AD_NULLABLE_SHIFT (8) -#define AD_TUP_STORED_SHIFT (9) -#define AD_DISTR_GROUP_SHIFT (11) #define AD_DISTR_KEY_SHIFT (12) -#define AD_DISTR_GROUP_SZ (13) #define AD_PRIMARY_KEY (14) #define AD_DYNAMIC (15) @@ -140,13 +131,6 @@ AttributeDescriptor::setOriginal(Uint32 & desc, Uint32 original){ desc |= (original << AD_ORIGINAL_SHIFT); } -inline -void -AttributeDescriptor::setDGroup(Uint32 & desc, Uint32 dgroup){ - ASSERT_BOOL(dgroup, "AttributeDescriptor::setDGroup"); - desc |= (dgroup << AD_DISTR_GROUP_SHIFT); -} - inline void AttributeDescriptor::setDKey(Uint32 & desc, Uint32 dkey){ @@ -161,13 +145,6 @@ AttributeDescriptor::setPrimaryKey(Uint32 & desc, Uint32 dkey){ desc |= (dkey << AD_PRIMARY_KEY); } -inline -void -AttributeDescriptor::setStoredInTup(Uint32 & desc, Uint32 storedInTup){ - ASSERT_BOOL(storedInTup, "AttributeDescriptor::setStoredInTup"); - desc |= (storedInTup << AD_TUP_STORED_SHIFT); -} - inline void AttributeDescriptor::setDynamic(Uint32 & desc, Uint32 dynamic){ @@ -229,12 +206,6 @@ AttributeDescriptor::getOriginal(const Uint32 & desc){ return (desc >> AD_ORIGINAL_SHIFT) & 1; } -inline -Uint32 -AttributeDescriptor::getDGroup(const Uint32 & desc){ - return (desc >> AD_DISTR_GROUP_SHIFT) & 1; -} - inline Uint32 AttributeDescriptor::getDKey(const Uint32 & desc){ @@ -253,10 +224,4 @@ AttributeDescriptor::getDynamic(const Uint32 & desc){ return (desc >> AD_DYNAMIC) & 1; } -inline -Uint32 -AttributeDescriptor::getStoredInTup(const Uint32 & desc){ - return (desc >> AD_TUP_STORED_SHIFT) & 1; -} - #endif diff --git a/ndb/include/kernel/signaldata/DictTabInfo.hpp b/ndb/include/kernel/signaldata/DictTabInfo.hpp index 62830b1dbc1..4d459ddf813 100644 --- a/ndb/include/kernel/signaldata/DictTabInfo.hpp +++ b/ndb/include/kernel/signaldata/DictTabInfo.hpp @@ -85,10 +85,6 @@ public: MaxLoadFactor = 11, //Default 80 KeyLength = 12, //Default 1 (No of words in primary key) FragmentTypeVal = 13, //Default AllNodesSmallTable - TableStorageVal = 14, //Default StorageType::MainMemory - ScanOptimised = 15, //Default updateOptimised - FragmentKeyTypeVal = 16, //Default PrimaryKey - SecondTableId = 17, //Mandatory between DICT's otherwise not allowed TableTypeVal = 18, //Default TableType::UserTable PrimaryTable = 19, //Mandatory for index otherwise RNIL PrimaryTableId = 20, //ditto @@ -110,10 +106,7 @@ public: AttributeKeyFlag = 1006, //Default noKey AttributeStorage = 1007, //Default MainMemory AttributeNullableFlag = 1008, //Default NotNullable - AttributeDGroup = 1009, //Default NotDGroup AttributeDKey = 1010, //Default NotDKey - AttributeStoredInd = 1011, //Default NotStored - AttributeGroup = 1012, //Default 0 AttributeExtType = 1013, //Default 0 (undefined) AttributeExtPrecision = 1014, //Default 0 AttributeExtScale = 1015, //Default 0 @@ -127,12 +120,7 @@ public: // have a default value. Thus the default values are part of the protocol. // ---------------------------------------------------------------------- - // FragmentKeyType constants - enum FragmentKeyType { - PrimaryKey = 0, - DistributionKey = 1, - DistributionGroup = 2 - }; + // FragmentType constants enum FragmentType { @@ -142,12 +130,6 @@ public: SingleFragment = 3 }; - // TableStorage AND AttributeStorage constants - enum StorageType { - MainMemory = 0, - DiskMemory = 1 - }; - // TableType constants + objects enum TableType { UndefTableType = 0, @@ -219,10 +201,6 @@ public: StorePermanent = 2 }; - // ScanOptimised constants - STATIC_CONST( updateOptimised = 0 ); - STATIC_CONST( scanOptimised = 1 ); - // AttributeType constants STATIC_CONST( SignedType = 0 ); STATIC_CONST( UnSignedType = 1 ); @@ -236,24 +214,11 @@ public: STATIC_CONST( a32Bit = 5 ); STATIC_CONST( a64Bit = 6 ); STATIC_CONST( a128Bit = 7 ); - - // AttributeDGroup constants - STATIC_CONST( NotDGroup = 0 ); - STATIC_CONST( DGroup = 1 ); - - // AttributeDKey constants - STATIC_CONST( NotDKey = 0 ); - STATIC_CONST( DKey = 1 ); - - // AttributeStoredInd constants - STATIC_CONST( NotStored = 0 ); - STATIC_CONST( Stored = 1 ); - + // Table data interpretation struct Table { char TableName[MAX_TAB_NAME_SIZE]; Uint32 TableId; - Uint32 SecondTableId; char PrimaryTable[MAX_TAB_NAME_SIZE]; // Only used when "index" Uint32 PrimaryTableId; Uint32 TableLoggedFlag; @@ -267,8 +232,6 @@ public: Uint32 KeyLength; Uint32 FragmentType; Uint32 TableStorage; - Uint32 ScanOptimised; - Uint32 FragmentKeyType; Uint32 TableType; Uint32 TableVersion; Uint32 IndexState; @@ -323,12 +286,8 @@ public: Uint32 AttributeSize; Uint32 AttributeArraySize; Uint32 AttributeKeyFlag; - Uint32 AttributeStorage; Uint32 AttributeNullableFlag; - Uint32 AttributeDGroup; Uint32 AttributeDKey; - Uint32 AttributeStoredInd; - Uint32 AttributeGroup; Uint32 AttributeExtType; Uint32 AttributeExtPrecision; Uint32 AttributeExtScale; @@ -460,9 +419,7 @@ public: fprintf(out, "AttributeKeyFlag = %d\n", AttributeKeyFlag); fprintf(out, "AttributeStorage = %d\n", AttributeStorage); fprintf(out, "AttributeNullableFlag = %d\n", AttributeNullableFlag); - fprintf(out, "AttributeDGroup = %d\n", AttributeDGroup); fprintf(out, "AttributeDKey = %d\n", AttributeDKey); - fprintf(out, "AttributeStoredInd = %d\n", AttributeStoredInd); fprintf(out, "AttributeGroup = %d\n", AttributeGroup); fprintf(out, "AttributeAutoIncrement = %d\n", AttributeAutoIncrement); fprintf(out, "AttributeExtType = %d\n", AttributeExtType); @@ -496,6 +453,22 @@ private: */ Uint32 tabInfoData[DataLength]; + +public: + enum Depricated + { + AttributeDGroup = 1009, //Default NotDGroup + AttributeStoredInd = 1011, //Default NotStored + SecondTableId = 17, //Mandatory between DICT's otherwise not allowed + FragmentKeyTypeVal = 16 //Default PrimaryKey + }; + + enum Unimplemented + { + TableStorageVal = 14, //Default StorageType::MainMemory + ScanOptimised = 15, //Default updateOptimised + AttributeGroup = 1012 //Default 0 + }; }; #endif diff --git a/ndb/src/common/debugger/signaldata/DictTabInfo.cpp b/ndb/src/common/debugger/signaldata/DictTabInfo.cpp index 7e7bf87e2db..a0a1c4b169d 100644 --- a/ndb/src/common/debugger/signaldata/DictTabInfo.cpp +++ b/ndb/src/common/debugger/signaldata/DictTabInfo.cpp @@ -23,7 +23,6 @@ SimpleProperties::SP2StructMapping DictTabInfo::TableMapping[] = { DTIMAPS(Table, TableName, TableName, 0, MAX_TAB_NAME_SIZE), DTIMAP(Table, TableId, TableId), - DTIMAP(Table, SecondTableId, SecondTableId), DTIMAPS(Table, PrimaryTable, PrimaryTable, 0, MAX_TAB_NAME_SIZE), DTIMAP(Table, PrimaryTableId, PrimaryTableId), DTIMAP2(Table, TableLoggedFlag, TableLoggedFlag, 0, 1), @@ -32,8 +31,6 @@ DictTabInfo::TableMapping[] = { DTIMAP2(Table, MaxLoadFactor, MaxLoadFactor, 25, 110), DTIMAP2(Table, FragmentTypeVal, FragmentType, 0, 3), DTIMAP2(Table, TableStorageVal, TableStorage, 0, 0), - DTIMAP2(Table, ScanOptimised, ScanOptimised, 0, 0), - DTIMAP2(Table, FragmentKeyTypeVal, FragmentKeyType, 0, 2), DTIMAP2(Table, TableTypeVal, TableType, 1, 3), DTIMAP(Table, NoOfKeyAttr, NoOfKeyAttr), DTIMAP2(Table, NoOfAttributes, NoOfAttributes, 1, MAX_ATTRIBUTES_IN_TABLE), @@ -66,12 +63,8 @@ DictTabInfo::AttributeMapping[] = { DTIMAP2(Attribute, AttributeSize, AttributeSize, 3, 7), DTIMAP2(Attribute, AttributeArraySize, AttributeArraySize, 0, 65535), DTIMAP2(Attribute, AttributeKeyFlag, AttributeKeyFlag, 0, 1), - DTIMAP2(Attribute, AttributeStorage, AttributeStorage, 0, 0), DTIMAP2(Attribute, AttributeNullableFlag, AttributeNullableFlag, 0, 1), - DTIMAP2(Attribute, AttributeDGroup, AttributeDGroup, 0, 1), DTIMAP2(Attribute, AttributeDKey, AttributeDKey, 0, 1), - DTIMAP2(Attribute, AttributeStoredInd, AttributeStoredInd, 0, 1), - DTIMAP2(Attribute, AttributeGroup, AttributeGroup, 0, 0), DTIMAP(Attribute, AttributeExtType, AttributeExtType), DTIMAP(Attribute, AttributeExtPrecision, AttributeExtPrecision), DTIMAP(Attribute, AttributeExtScale, AttributeExtScale), @@ -104,7 +97,6 @@ void DictTabInfo::Table::init(){ memset(TableName, 0, sizeof(TableName));//TableName[0] = 0; TableId = ~0; - SecondTableId = ~0; memset(PrimaryTable, 0, sizeof(PrimaryTable));//PrimaryTable[0] = 0; // Only used when "index" PrimaryTableId = RNIL; TableLoggedFlag = 1; @@ -118,8 +110,6 @@ DictTabInfo::Table::init(){ KeyLength = 0; FragmentType = DictTabInfo::AllNodesSmallTable; TableStorage = 0; - ScanOptimised = 0; - FragmentKeyType = DictTabInfo::PrimaryKey; TableType = DictTabInfo::UndefTableType; TableVersion = 0; IndexState = ~0; @@ -140,12 +130,8 @@ DictTabInfo::Attribute::init(){ AttributeSize = DictTabInfo::a32Bit; AttributeArraySize = 1; AttributeKeyFlag = 0; - AttributeStorage = 1; AttributeNullableFlag = 0; - AttributeDGroup = 0; AttributeDKey = 0; - AttributeStoredInd = 1; - AttributeGroup = 0; AttributeExtType = 0, AttributeExtPrecision = 0, AttributeExtScale = 0, diff --git a/ndb/src/kernel/blocks/dbdict/Dbdict.cpp b/ndb/src/kernel/blocks/dbdict/Dbdict.cpp index 17972abc2dd..88920d54351 100644 --- a/ndb/src/kernel/blocks/dbdict/Dbdict.cpp +++ b/ndb/src/kernel/blocks/dbdict/Dbdict.cpp @@ -256,7 +256,6 @@ Dbdict::packTableIntoPagesImpl(SimpleProperties::Writer & w, w.add(DictTabInfo::MaxLoadFactor, tablePtr.p->maxLoadFactor); w.add(DictTabInfo::TableKValue, tablePtr.p->kValue); w.add(DictTabInfo::FragmentTypeVal, tablePtr.p->fragmentType); - w.add(DictTabInfo::FragmentKeyTypeVal, tablePtr.p->fragmentKeyType); w.add(DictTabInfo::TableTypeVal, tablePtr.p->tableType); w.add(DictTabInfo::FragmentCount, tablePtr.p->fragmentCount); @@ -289,17 +288,13 @@ Dbdict::packTableIntoPagesImpl(SimpleProperties::Writer & w, const Uint32 attrSize = AttributeDescriptor::getSize(desc); const Uint32 arraySize = AttributeDescriptor::getArraySize(desc); const Uint32 nullable = AttributeDescriptor::getNullable(desc); - const Uint32 DGroup = AttributeDescriptor::getDGroup(desc); const Uint32 DKey = AttributeDescriptor::getDKey(desc); - const Uint32 attrStoredInd = AttributeDescriptor::getStoredInTup(desc); w.add(DictTabInfo::AttributeType, attrType); w.add(DictTabInfo::AttributeSize, attrSize); w.add(DictTabInfo::AttributeArraySize, arraySize); w.add(DictTabInfo::AttributeNullableFlag, nullable); - w.add(DictTabInfo::AttributeDGroup, DGroup); w.add(DictTabInfo::AttributeDKey, DKey); - w.add(DictTabInfo::AttributeStoredInd, attrStoredInd); w.add(DictTabInfo::AttributeExtType, attrPtr.p->extType); w.add(DictTabInfo::AttributeExtPrecision, attrPtr.p->extPrecision); w.add(DictTabInfo::AttributeExtScale, attrPtr.p->extScale); @@ -1340,10 +1335,8 @@ void Dbdict::initialiseTableRecord(TableRecordPtr tablePtr) tablePtr.p->tableVersion = (Uint32)-1; tablePtr.p->tabState = TableRecord::NOT_DEFINED; tablePtr.p->tabReturnState = TableRecord::TRS_IDLE; - tablePtr.p->storageType = DictTabInfo::MainMemory; tablePtr.p->myConnect = RNIL; tablePtr.p->fragmentType = DictTabInfo::AllNodesSmallTable; - tablePtr.p->fragmentKeyType = DictTabInfo::PrimaryKey; memset(tablePtr.p->tableName, 0, sizeof(tablePtr.p->tableName)); tablePtr.p->gciTableCreated = 0; tablePtr.p->noOfAttributes = ZNIL; @@ -4698,7 +4691,6 @@ void Dbdict::handleTabInfoInit(SimpleProperties::Reader & it, tablePtr.p->minLoadFactor = tableDesc.MinLoadFactor; tablePtr.p->maxLoadFactor = tableDesc.MaxLoadFactor; tablePtr.p->fragmentType = (DictTabInfo::FragmentType)tableDesc.FragmentType; - tablePtr.p->fragmentKeyType = (DictTabInfo::FragmentKeyType)tableDesc.FragmentKeyType; tablePtr.p->tableType = (DictTabInfo::TableType)tableDesc.TableType; tablePtr.p->kValue = tableDesc.TableKValue; tablePtr.p->fragmentCount = tableDesc.FragmentCount; @@ -4854,11 +4846,8 @@ void Dbdict::handleTabInfo(SimpleProperties::Reader & it, AttributeDescriptor::setSize(desc, attrDesc.AttributeSize); AttributeDescriptor::setArray(desc, attrDesc.AttributeArraySize); AttributeDescriptor::setNullable(desc, attrDesc.AttributeNullableFlag); - AttributeDescriptor::setDGroup(desc, attrDesc.AttributeDGroup); AttributeDescriptor::setDKey(desc, attrDesc.AttributeDKey); AttributeDescriptor::setPrimaryKey(desc, attrDesc.AttributeKeyFlag); - - AttributeDescriptor::setStoredInTup(desc, attrDesc.AttributeStoredInd); attrPtr.p->attributeDescriptor = desc; attrPtr.p->autoIncrement = attrDesc.AttributeAutoIncrement; strcpy(attrPtr.p->defaultValue, attrDesc.AttributeDefaultValue); @@ -6416,7 +6405,6 @@ Dbdict::createIndex_toCreateTable(Signal* signal, OpCreateIndexPtr opPtr) w.add(DictTabInfo::AttributeKeyFlag, (Uint32)false); w.add(DictTabInfo::AttributeNullableFlag, (Uint32)isNullable); } - w.add(DictTabInfo::AttributeStoredInd, (Uint32)DictTabInfo::Stored); // ext type overrides w.add(DictTabInfo::AttributeExtType, aRec->extType); w.add(DictTabInfo::AttributeExtPrecision, aRec->extPrecision); @@ -6431,7 +6419,6 @@ Dbdict::createIndex_toCreateTable(Signal* signal, OpCreateIndexPtr opPtr) w.add(DictTabInfo::AttributeName, "NDB$PK"); w.add(DictTabInfo::AttributeId, opPtr.p->m_attrList.sz); w.add(DictTabInfo::AttributeKeyFlag, (Uint32)false); - w.add(DictTabInfo::AttributeStoredInd, (Uint32)DictTabInfo::Stored); w.add(DictTabInfo::AttributeNullableFlag, (Uint32)false); // ext type overrides w.add(DictTabInfo::AttributeExtType, (Uint32)DictTabInfo::ExtUnsigned); @@ -6444,7 +6431,6 @@ Dbdict::createIndex_toCreateTable(Signal* signal, OpCreateIndexPtr opPtr) w.add(DictTabInfo::AttributeName, "NDB$TNODE"); w.add(DictTabInfo::AttributeId, opPtr.p->m_attrList.sz); w.add(DictTabInfo::AttributeKeyFlag, (Uint32)true); - w.add(DictTabInfo::AttributeStoredInd, (Uint32)DictTabInfo::Stored); w.add(DictTabInfo::AttributeNullableFlag, (Uint32)false); // ext type overrides w.add(DictTabInfo::AttributeExtType, (Uint32)DictTabInfo::ExtUnsigned); diff --git a/ndb/src/kernel/vm/MetaData.hpp b/ndb/src/kernel/vm/MetaData.hpp index 11e262664c1..aded6c96573 100644 --- a/ndb/src/kernel/vm/MetaData.hpp +++ b/ndb/src/kernel/vm/MetaData.hpp @@ -86,15 +86,9 @@ public: /* Primary table of index otherwise RNIL */ Uint32 primaryTableId; - /* Type of storage (memory/disk, not used) */ - DictTabInfo::StorageType storageType; - /* Type of fragmentation (small/medium/large) */ DictTabInfo::FragmentType fragmentType; - /* Key type of fragmentation (pk/dist key/dist group) */ - DictTabInfo::FragmentKeyType fragmentKeyType; - /* Global checkpoint identity when table created */ Uint32 gciTableCreated; diff --git a/ndb/src/ndbapi/NdbDictionaryImpl.cpp b/ndb/src/ndbapi/NdbDictionaryImpl.cpp index 3f6ef69ca96..6c052dac9f0 100644 --- a/ndb/src/ndbapi/NdbDictionaryImpl.cpp +++ b/ndb/src/ndbapi/NdbDictionaryImpl.cpp @@ -1525,9 +1525,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb, tmpAttr.AttributeId = i; tmpAttr.AttributeKeyFlag = col->m_pk; tmpAttr.AttributeNullableFlag = col->m_nullable; - tmpAttr.AttributeStoredInd = 1; tmpAttr.AttributeDKey = col->m_distributionKey; - tmpAttr.AttributeDGroup = 0; tmpAttr.AttributeExtType = getKernelConstant(col->m_type, diff --git a/ndb/src/ndbapi/NdbScanOperation.cpp b/ndb/src/ndbapi/NdbScanOperation.cpp index 671996bc534..7766068fc3e 100644 --- a/ndb/src/ndbapi/NdbScanOperation.cpp +++ b/ndb/src/ndbapi/NdbScanOperation.cpp @@ -919,6 +919,8 @@ NdbScanOperation::takeOverScanOp(OperationType opType, NdbConnection* pTrans){ TcKeyReq::setTakeOverScanFragment(scanInfo, tTakeOverFragment); TcKeyReq::setTakeOverScanInfo(scanInfo, tScanInfo); newOp->theScanInfo = scanInfo; + newOp->theDistrKeyIndicator_ = 1; + newOp->theDistributionKey = tTakeOverFragment; } // Copy the first 8 words of key info from KEYINF20 into TCKEYREQ