Commit a0be2700 authored by unknown's avatar unknown

merge ndb api blobs

parent 00c8931d
......@@ -321,6 +321,11 @@ public:
void setStripeSize(int size) { setLength(size); }
int getStripeSize() const { return getLength(); }
/**
* Get size of element
*/
int Column::getSize() const;
/**
* Set distribution key
*
......@@ -372,6 +377,7 @@ public:
#endif
private:
friend class NdbRecAttr;
friend class NdbColumnImpl;
class NdbColumnImpl & m_impl;
Column(NdbColumnImpl&);
......@@ -1054,4 +1060,6 @@ public:
};
};
class NdbOut& operator <<(class NdbOut& ndbout, const NdbDictionary::Column::Type type);
#endif
......@@ -32,7 +32,7 @@
#include "NdbRecAttr.hpp"
#include "NdbUtil.hpp"
#include "NdbBlob.hpp"
#include "ndbapi_limits.h"
#include <signaldata/TcKeyReq.hpp>
#include "NdbDictionaryImpl.hpp"
......@@ -165,7 +165,7 @@ NdbOperation::init(NdbTableImpl* tab, NdbConnection* myConnection){
m_currentTable = m_accessTable = tab;
theNdbCon = myConnection;
for (Uint32 i=0; i<MAXNROFTUPLEKEY; i++)
for (Uint32 i=0; i<NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY; i++)
for (int j=0; j<3; j++)
theTupleKeyDefined[i][j] = false;
......
......@@ -18,7 +18,6 @@
#include <NdbError.hpp>
#include "NdbImpl.hpp"
#include "NdbDictionaryImpl.hpp"
#include <NdbSchemaCon.hpp>
#include <NdbOperation.hpp>
#include <NdbConnection.hpp>
#include <NdbBlob.hpp>
......@@ -68,13 +67,6 @@ NdbOperation::getNdbError() const {
return theError;
}
const
NdbError &
NdbSchemaCon::getNdbError() const {
update(theError);
return theError;
}
const
NdbError &
NdbBlob::getNdbError() const {
......
......@@ -14,112 +14,35 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "NDBT_Table.hpp"
#include <NDBT_Table.hpp>
#include <NdbTimer.hpp>
#include <NDBT.hpp>
class NdbOut&
operator <<(class NdbOut& ndbout, const NDBT_Attribute & attr){
NdbDictionary::Column::Type type = attr.getType();
bool key = attr.getPrimaryKey();
bool null = attr.getNullable();
ndbout << attr.getName() << "\t";
char tmp[100];
if(attr.getLength() != 1)
snprintf(tmp, 100," [%d]", attr.getLength());
else
tmp[0] = 0;
ndbout << attr.getName() << " " << type;
switch(type){
case NdbDictionary::Column::Tinyint:
ndbout << "Tinyint" << tmp;
break;
case NdbDictionary::Column::Tinyunsigned:
ndbout << "Tinyunsigned" << tmp;
break;
case NdbDictionary::Column::Smallint:
ndbout << "Smallint" << tmp;
break;
case NdbDictionary::Column::Smallunsigned:
ndbout << "Smallunsigned" << tmp;
break;
case NdbDictionary::Column::Mediumint:
ndbout << "Mediumint" << tmp;
break;
case NdbDictionary::Column::Mediumunsigned:
ndbout << "Mediumunsigned" << tmp;
break;
case NdbDictionary::Column::Int:
ndbout << "Int" << tmp;
break;
case NdbDictionary::Column::Unsigned:
ndbout << "Unsigned" << tmp;
break;
case NdbDictionary::Column::Bigint:
ndbout << "Bigint" << tmp;
break;
case NdbDictionary::Column::Bigunsigned:
ndbout << "Bigunsigned" << tmp;
break;
case NdbDictionary::Column::Float:
ndbout << "Float" << tmp;
break;
case NdbDictionary::Column::Double:
ndbout << "Double" << tmp;
break;
case NdbDictionary::Column::Decimal:
ndbout << "Decimal("
<< attr.getScale() << ", " << attr.getPrecision() << ")"
<< tmp;
break;
case NdbDictionary::Column::Char:
ndbout << "Char(" << attr.getLength() << ")";
break;
case NdbDictionary::Column::Varchar:
ndbout << "Varchar(" << attr.getLength() << ")";
break;
case NdbDictionary::Column::Binary:
ndbout << "Binary(" << attr.getLength() << ")";
break;
case NdbDictionary::Column::Varbinary:
ndbout << "Varbinary(" << attr.getLength() << ")";
break;
case NdbDictionary::Column::Datetime:
ndbout << "Datetime" << tmp;
break;
case NdbDictionary::Column::Timespec:
ndbout << "Timespec" << tmp;
break;
case NdbDictionary::Column::Blob:
ndbout << "Blob(" << attr.getInlineSize()
<< "," << attr.getPartSize()
<< "," << attr.getStripeSize() << ")";
break;
case NdbDictionary::Column::Clob:
ndbout << "Clob(" << attr.getInlineSize()
<< "," << attr.getPartSize()
<< "," << attr.getStripeSize() << ")";
break;
case NdbDictionary::Column::Undefined:
ndbout << "Undefined" << tmp;
ndbout << "(" << attr.getScale() << ", " << attr.getPrecision() << ")";
break;
default:
ndbout << "Unknown(" << type << ")";
break;
}
ndbout << "\t";
if(null){
ndbout << "NULL";
} else {
ndbout << "NOT NULL";
}
ndbout << "\t";
if(attr.getLength() != 1)
ndbout << "[" << attr.getLength() << "]";
if(attr.getNullable())
ndbout << " NULL";
else
ndbout << " NOT NULL";
if(key)
ndbout << "\tprimary key";
if(attr.getPrimaryKey())
ndbout << " PRIMARY KEY";
return ndbout;
}
......@@ -137,6 +60,9 @@ operator <<(class NdbOut& ndbout, const NDBT_Table & tab)
ndbout << "Temporary table: " << (tab.getStoredTable() ? "no" : "yes") << endl;
ndbout << "Number of attributes: " << tab.getNoOfColumns() << endl;
ndbout << "Number of primary keys: " << tab.getNoOfPrimaryKeys() << endl;
ndbout << "Length of frm data: " << tab.getFrmLength() << endl;
//<< ((tab.getTupleKey() == TupleId) ? " tupleid" : "") <<endl;
ndbout << "TableStatus: ";
switch(tab.getObjectStatus()){
......@@ -161,3 +87,32 @@ operator <<(class NdbOut& ndbout, const NDBT_Table & tab)
return ndbout;
}
class NdbOut& operator <<(class NdbOut&, const NdbDictionary::Index & idx)
{
ndbout << idx.getName();
ndbout << "(";
for (unsigned i=0; i < idx.getNoOfColumns(); i++)
{
const NdbDictionary::Column *col = idx.getColumn(i);
ndbout << col->getName();
if (i < idx.getNoOfColumns()-1)
ndbout << ", ";
}
ndbout << ")";
ndbout << " - ";
switch (idx.getType()) {
case NdbDictionary::Object::UniqueHashIndex:
ndbout << "UniqueHashIndex";
break;
case NdbDictionary::Object::OrderedIndex:
ndbout << "OrderedIndex";
break;
default:
ndbout << "Type " << idx.getType();
break;
}
return ndbout;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment