Below is the list of changes that have just been committed into a local
5.1 repository of jonas. When jonas does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2006-10-20 16:54:32+02:00, jonas@stripped +10 -0
Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-ndb-dynattr
MERGE: 1.2273.124.1
storage/ndb/include/ndbapi/NdbDictionary.hpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.83.1.1
storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.18.1.1
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.102.1.1
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.11.1.1
storage/ndb/src/ndbapi/NdbDictionary.cpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.63.1.1
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.150.1.1
storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.67.1.1
storage/ndb/src/ndbapi/NdbTransaction.cpp@stripped, 2006-10-20 16:54:29+02:00, jonas@stripped +0 -2
merge
MERGE: 1.58.1.1
storage/ndb/test/include/NDBT_Table.hpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.12.1.1
storage/ndb/test/src/NDBT_Tables.cpp@stripped, 2006-10-20 16:53:28+02:00, jonas@stripped +0 -0
Auto merged
MERGE: 1.20.1.1
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: jonas
# Host: perch.ndb.mysql.com
# Root: /home/jonas/src/mysql-5.1-ndb-dynattr/RESYNC
--- 1.85/storage/ndb/include/ndbapi/NdbDictionary.hpp 2006-10-20 16:54:37 +02:00
+++ 1.86/storage/ndb/include/ndbapi/NdbDictionary.hpp 2006-10-20 16:54:37 +02:00
@@ -402,6 +402,11 @@
ArrayType getArrayType() const;
StorageType getStorageType() const;
+ /**
+ * Get if the column is dynamic (NULL values not stored)
+ */
+ bool getDynamic() const;
+
/** @} *******************************************************************/
@@ -512,6 +517,11 @@
void setArrayType(ArrayType type);
void setStorageType(StorageType type);
+
+ /**
+ * Set whether column is dynamic.
+ */
+ void setDynamic(bool);
/** @} *******************************************************************/
--- 1.19/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp 2006-10-20 16:54:37 +02:00
+++ 1.20/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp 2006-10-20 16:54:37 +02:00
@@ -88,6 +88,7 @@
DTIMAP2(Attribute, AttributeNullableFlag, AttributeNullableFlag, 0, 1),
DTIMAP2(Attribute, AttributeDKey, AttributeDKey, 0, 1),
DTIMAP2(Attribute, AttributeStorageType, AttributeStorageType, 0, 1),
+ DTIMAP2(Attribute, AttributeDynamic, AttributeDynamic, 0, 1),
DTIMAP(Attribute, AttributeExtType, AttributeExtType),
DTIMAP(Attribute, AttributeExtPrecision, AttributeExtPrecision),
DTIMAP(Attribute, AttributeExtScale, AttributeExtScale),
@@ -184,6 +185,7 @@
AttributeExtLength = 0,
AttributeAutoIncrement = false;
AttributeStorageType = 0;
+ AttributeDynamic = 0; // Default is not dynamic
memset(AttributeDefaultValue, 0, sizeof(AttributeDefaultValue));//AttributeDefaultValue[0] = 0;
}
--- 1.104/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2006-10-20 16:54:37 +02:00
+++ 1.105/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2006-10-20 16:54:37 +02:00
@@ -557,6 +557,7 @@
const Uint32 nullable = AttributeDescriptor::getNullable(desc);
const Uint32 DKey = AttributeDescriptor::getDKey(desc);
const Uint32 disk= AttributeDescriptor::getDiskBased(desc);
+ const Uint32 dynamic= AttributeDescriptor::getDynamic(desc);
// AttributeType deprecated
@@ -564,6 +565,7 @@
w.add(DictTabInfo::AttributeArraySize, arraySize);
w.add(DictTabInfo::AttributeArrayType, arrayType);
w.add(DictTabInfo::AttributeNullableFlag, nullable);
+ w.add(DictTabInfo::AttributeDynamic, dynamic);
w.add(DictTabInfo::AttributeDKey, DKey);
w.add(DictTabInfo::AttributeExtType, attrType);
w.add(DictTabInfo::AttributeExtPrecision, attrPtr.p->extPrecision);
@@ -6332,6 +6334,7 @@
AttributeDescriptor::setDKey(desc, attrDesc.AttributeDKey);
AttributeDescriptor::setPrimaryKey(desc, attrDesc.AttributeKeyFlag);
AttributeDescriptor::setDiskBased(desc, attrDesc.AttributeStorageType == NDB_STORAGETYPE_DISK);
+ AttributeDescriptor::setDynamic(desc, attrDesc.AttributeDynamic);
attrPtr.p->attributeDescriptor = desc;
attrPtr.p->autoIncrement = attrDesc.AttributeAutoIncrement;
{
--- 1.12/storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp 2006-10-20 16:54:37 +02:00
+++ 1.13/storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp 2006-10-20 16:54:37 +02:00
@@ -144,9 +144,9 @@
Uint32 copy_bits= copy->m_header_bits;
if(! (bits & Tuple_header::ALLOC))
{
- if(copy_bits & Tuple_header::MM_GROWN)
+ if(bits & Tuple_header::MM_GROWN)
{
- ndbout_c("abort grow");
+ // ndbout_c("abort grow");
Ptr<Page> vpage;
Uint32 idx= regOperPtr.p->m_tuple_location.m_page_idx;
Uint32 mm_vars= regTabPtr.p->m_attributes[MM].m_no_of_varsize;
@@ -162,14 +162,22 @@
var_part= get_ptr(&vpage, *(Var_part_ref*)&ref);
Var_page* pageP = (Var_page*)vpage.p;
Uint32 len= pageP->get_entry_len(idx) & ~Var_page::CHAIN;
- Uint32 sz = ((((mm_vars + 1) << 1) + (((Uint16*)var_part)[mm_vars]) + 3)>> 2);
- ndbassert(sz <= len);
+
+ /*
+ A MM_GROWN tuple was relocated with a bigger size in preparation for
+ commit, so we need to shrink it back. The original size is stored in
+ the last word of the relocated (oversized) tuple.
+ */
+ ndbassert(len > 0);
+ Uint32 sz= var_part[len-1];
+ ndbassert(sz < len);
pageP->shrink_entry(idx, sz);
update_free_page_list(regFragPtr.p, vpage);
+ tuple_ptr->m_header_bits= bits & ~Tuple_header::MM_GROWN;
}
else if(bits & Tuple_header::MM_SHRINK)
{
- ndbout_c("abort shrink");
+ // ndbout_c("abort shrink");
}
}
else if (regOperPtr.p->is_first_operation() &&
--- 1.64/storage/ndb/src/ndbapi/NdbDictionary.cpp 2006-10-20 16:54:37 +02:00
+++ 1.65/storage/ndb/src/ndbapi/NdbDictionary.cpp 2006-10-20 16:54:37 +02:00
@@ -292,6 +292,16 @@
return (StorageType)m_impl.m_storageType;
}
+void
+NdbDictionary::Column::setDynamic(bool val){
+ m_impl.m_dynamic = val;
+}
+
+bool
+NdbDictionary::Column::getDynamic() const {
+ return m_impl.m_dynamic;
+}
+
/*****************************************************************
* Table facade
*/
--- 1.152/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp 2006-10-20 16:54:37 +02:00
+++ 1.153/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp 2006-10-20 16:54:37 +02:00
@@ -115,6 +115,7 @@
m_arraySize = col.m_arraySize;
m_arrayType = col.m_arrayType;
m_storageType = col.m_storageType;
+ m_dynamic = col.m_dynamic;
m_keyInfoPos = col.m_keyInfoPos;
if (col.m_blobTable == NULL)
m_blobTable = NULL;
@@ -261,6 +262,7 @@
m_autoIncrementInitialValue = 1;
m_blobTable = NULL;
m_storageType = NDB_STORAGETYPE_MEMORY;
+ m_dynamic = false;
#ifdef VM_TRACE
if(NdbEnv_GetEnv("NDB_DEFAULT_DISK", (char *)0, 0))
m_storageType = NDB_STORAGETYPE_DISK;
@@ -315,6 +317,9 @@
if (m_arrayType != col.m_arrayType || m_storageType != col.m_storageType){
DBUG_RETURN(false);
}
+ if(m_dynamic != col.m_dynamic){
+ DBUG_RETURN(false);
+ }
DBUG_RETURN(true);
}
@@ -2168,6 +2173,7 @@
col->m_arraySize = (attrDesc.AttributeArraySize + 31) >> 5;
}
col->m_storageType = attrDesc.AttributeStorageType;
+ col->m_dynamic = (attrDesc.AttributeDynamic != 0);
col->m_pk = attrDesc.AttributeKeyFlag;
col->m_distributionKey = (attrDesc.AttributeDKey != 0);
@@ -2678,6 +2684,7 @@
tmpAttr.AttributeStorageType = NDB_STORAGETYPE_MEMORY;
else
tmpAttr.AttributeStorageType = col->m_storageType;
+ tmpAttr.AttributeDynamic = (col->m_dynamic ? 1 : 0);
if(col->getBlobType())
tmpAttr.AttributeStorageType = NDB_STORAGETYPE_MEMORY;
--- 1.69/storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp 2006-10-20 16:54:37 +02:00
+++ 1.70/storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp 2006-10-20 16:54:37 +02:00
@@ -99,6 +99,7 @@
Uint32 m_arraySize; // length or maxlength+1/2 for Var* types
Uint32 m_arrayType; // NDB_ARRAYTYPE_FIXED or _VAR
Uint32 m_storageType; // NDB_STORAGETYPE_MEMORY or _DISK
+ bool m_dynamic;
/*
* NdbTableImpl: if m_pk, 0-based index of key in m_attrId order
* NdbIndexImpl: m_column_no of primary table column
--- 1.13/storage/ndb/test/include/NDBT_Table.hpp 2006-10-20 16:54:37 +02:00
+++ 1.14/storage/ndb/test/include/NDBT_Table.hpp 2006-10-20 16:54:37 +02:00
@@ -30,7 +30,8 @@
bool _pk = false,
bool _nullable = false,
CHARSET_INFO *cs= 0,
- NdbDictionary::Column::StorageType storage = NdbDictionary::Column::StorageTypeMemory):
+ NdbDictionary::Column::StorageType storage = NdbDictionary::Column::StorageTypeMemory,
+ bool dynamic = false):
NdbDictionary::Column(_name)
{
assert(_name != 0);
@@ -44,6 +45,7 @@
setCharset(cs);
}
setStorageType(storage);
+ setDynamic(dynamic);
}
};
--- 1.22/storage/ndb/test/src/NDBT_Tables.cpp 2006-10-20 16:54:37 +02:00
+++ 1.23/storage/ndb/test/src/NDBT_Tables.cpp 2006-10-20 16:54:37 +02:00
@@ -24,6 +24,11 @@
// USE ONLY UPPERLETTERS IN TAB AND COLUMN NAMES
/* ******************************************************* */
+static const NdbDictionary::Column::StorageType MM=
+ NdbDictionary::Column::StorageTypeMemory;
+static const NdbDictionary::Column::StorageType DD=
+ NdbDictionary::Column::StorageTypeDisk;
+
/*
* These are our "official" test tables
*
@@ -293,6 +298,122 @@
NDBT_Table T14("T14", sizeof(T14Attribs)/sizeof(NDBT_Attribute), T14Attribs);
/*
+ T15 - Dynamic attributes.
+ Test many different combinations of attribute types, sizes, and NULLability.
+ Also exersize >32bit dynattr bitmap.
+*/
+// pk nullable cs mm/dd dyn
+static
+const
+NDBT_Attribute T15Attribs[] = {
+ NDBT_Attribute("KOL1", NdbDictionary::Column::Unsigned, 1, true, false, 0, MM, true),
+ NDBT_Attribute("KOL2", NdbDictionary::Column::Varbinary, 100, false, true, 0, MM, true),
+ NDBT_Attribute("KOL3", NdbDictionary::Column::Unsigned, 1, false, true, 0, MM, true),
+ NDBT_Attribute("KOL4", NdbDictionary::Column::Int, 1, false, false, 0, MM, true),
+ NDBT_Attribute("KOL5", NdbDictionary::Column::Float, 1, false, true, 0, MM, true),
+ NDBT_Attribute("KOL6", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL7", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL8", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL9", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL10", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL11", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL12", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL13", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL14", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL15", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL16", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL17", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL18", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL19", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL20", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL21", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL22", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL23", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL24", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL25", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL26", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL27", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL28", NdbDictionary::Column::Char, 4, false, false),
+ NDBT_Attribute("KOL29", NdbDictionary::Column::Varbinary, 4, false, false),
+ NDBT_Attribute("KOL30", NdbDictionary::Column::Char, 4, false, true, 0, DD),
+ NDBT_Attribute("KOL31", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL32", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL33", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL34", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL35", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL36", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL37", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL38", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL39", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL40", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL41", NdbDictionary::Column::Char, 64, false, true, 0, MM, true),
+ NDBT_Attribute("KOL42", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL43", NdbDictionary::Column::Char, 8, false, true, 0, MM, true),
+ NDBT_Attribute("KOL44", NdbDictionary::Column::Char, 27, false, true, 0, MM, true),
+ NDBT_Attribute("KOL45", NdbDictionary::Column::Char, 64, false, false, 0, MM, true),
+ NDBT_Attribute("KOL46", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL47", NdbDictionary::Column::Char, 8, false, false, 0, MM, true),
+ NDBT_Attribute("KOL48", NdbDictionary::Column::Char, 27, false, false, 0, MM, true),
+ NDBT_Attribute("KOL49", NdbDictionary::Column::Varbinary, 255, false, false, 0, MM, true),
+ /* This one is for update count, needed by hugoScanUpdate. */
+ NDBT_Attribute("KOL99", NdbDictionary::Column::Unsigned, 1, false, false, 0, MM, true),
+};
+
+static
+const
+NDBT_Table T15("T15", sizeof(T15Attribs)/sizeof(NDBT_Attribute), T15Attribs);
+
+static
+const
+NDBT_Attribute T15AAttribs[] = {
+ NDBT_Attribute("KOL1", NdbDictionary::Column::Unsigned, 1, true, false, 0, MM, true),
+ NDBT_Attribute("KOL2", NdbDictionary::Column::Varbinary, 100, false, true, 0, MM, true),
+ NDBT_Attribute("KOL3", NdbDictionary::Column::Unsigned, 1, false, true, 0, MM, true),
+ NDBT_Attribute("KOL4", NdbDictionary::Column::Int, 1, false, false, 0, MM, true),
+ NDBT_Attribute("KOL5", NdbDictionary::Column::Float, 1, false, true, 0, MM, true),
+ NDBT_Attribute("KOL6", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL7", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL8", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL9", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL10", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL11", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL12", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL13", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL14", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL15", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL16", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL17", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL18", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL19", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL20", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL21", NdbDictionary::Column::Varbinary, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL30", NdbDictionary::Column::Char, 4, false, true, 0, DD),
+ NDBT_Attribute("KOL33", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL34", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL35", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL36", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL37", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL38", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL39", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL40", NdbDictionary::Column::Varbinary, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL41", NdbDictionary::Column::Char, 64, false, true, 0, MM, true),
+ NDBT_Attribute("KOL42", NdbDictionary::Column::Char, 4, false, true, 0, MM, true),
+ NDBT_Attribute("KOL43", NdbDictionary::Column::Char, 8, false, true, 0, MM, true),
+ NDBT_Attribute("KOL44", NdbDictionary::Column::Char, 27, false, true, 0, MM, true),
+ NDBT_Attribute("KOL45", NdbDictionary::Column::Char, 64, false, false, 0, MM, true),
+ NDBT_Attribute("KOL46", NdbDictionary::Column::Char, 4, false, false, 0, MM, true),
+ NDBT_Attribute("KOL47", NdbDictionary::Column::Char, 8, false, false, 0, MM, true),
+ NDBT_Attribute("KOL48", NdbDictionary::Column::Char, 27, false, false, 0, MM, true),
+ NDBT_Attribute("KOL49", NdbDictionary::Column::Varbinary, 255, false, false, 0, MM, true),
+ /* This one is for update count, needed by hugoScanUpdate. */
+ NDBT_Attribute("KOL99", NdbDictionary::Column::Unsigned, 1, false, false, 0, MM, true),
+};
+
+static
+const
+NDBT_Table T15A("T15A", sizeof(T15AAttribs)/sizeof(NDBT_Attribute), T15AAttribs);
+
+/*
C2 DHCP TABLES, MAYBE THESE SHOULD BE MOVED TO THE UTIL_TABLES?
*/
static
@@ -431,6 +552,8 @@
&T12,
&T13,
&T14,
+ &T15,
+ &T15A,
&I1,
&I2,
&I3,
| Thread |
|---|
| • bk commit into 5.1 tree (jonas:1.2323) | jonas | 20 Oct |