Commit 68ab6069 authored by unknown's avatar unknown

merge ndb api blobs

parent 2aacdd94
...@@ -321,6 +321,11 @@ public: ...@@ -321,6 +321,11 @@ public:
void setStripeSize(int size) { setLength(size); } void setStripeSize(int size) { setLength(size); }
int getStripeSize() const { return getLength(); } int getStripeSize() const { return getLength(); }
/**
* Get size of element
*/
int Column::getSize() const;
/** /**
* Set distribution key * Set distribution key
* *
...@@ -372,6 +377,7 @@ public: ...@@ -372,6 +377,7 @@ public:
#endif #endif
private: private:
friend class NdbRecAttr;
friend class NdbColumnImpl; friend class NdbColumnImpl;
class NdbColumnImpl & m_impl; class NdbColumnImpl & m_impl;
Column(NdbColumnImpl&); Column(NdbColumnImpl&);
...@@ -1054,4 +1060,6 @@ public: ...@@ -1054,4 +1060,6 @@ public:
}; };
}; };
class NdbOut& operator <<(class NdbOut& ndbout, const NdbDictionary::Column::Type type);
#endif #endif
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#include "NdbRecAttr.hpp" #include "NdbRecAttr.hpp"
#include "NdbUtil.hpp" #include "NdbUtil.hpp"
#include "NdbBlob.hpp" #include "NdbBlob.hpp"
#include "ndbapi_limits.h"
#include <signaldata/TcKeyReq.hpp> #include <signaldata/TcKeyReq.hpp>
#include "NdbDictionaryImpl.hpp" #include "NdbDictionaryImpl.hpp"
...@@ -165,7 +165,7 @@ NdbOperation::init(NdbTableImpl* tab, NdbConnection* myConnection){ ...@@ -165,7 +165,7 @@ NdbOperation::init(NdbTableImpl* tab, NdbConnection* myConnection){
m_currentTable = m_accessTable = tab; m_currentTable = m_accessTable = tab;
theNdbCon = myConnection; 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++) for (int j=0; j<3; j++)
theTupleKeyDefined[i][j] = false; theTupleKeyDefined[i][j] = false;
......
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
#include <NdbError.hpp> #include <NdbError.hpp>
#include "NdbImpl.hpp" #include "NdbImpl.hpp"
#include "NdbDictionaryImpl.hpp" #include "NdbDictionaryImpl.hpp"
#include <NdbSchemaCon.hpp>
#include <NdbOperation.hpp> #include <NdbOperation.hpp>
#include <NdbConnection.hpp> #include <NdbConnection.hpp>
#include <NdbBlob.hpp> #include <NdbBlob.hpp>
...@@ -68,13 +67,6 @@ NdbOperation::getNdbError() const { ...@@ -68,13 +67,6 @@ NdbOperation::getNdbError() const {
return theError; return theError;
} }
const
NdbError &
NdbSchemaCon::getNdbError() const {
update(theError);
return theError;
}
const const
NdbError & NdbError &
NdbBlob::getNdbError() const { NdbBlob::getNdbError() const {
......
...@@ -14,112 +14,35 @@ ...@@ -14,112 +14,35 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "NDBT_Table.hpp" #include <NDBT_Table.hpp>
#include <NdbTimer.hpp> #include <NdbTimer.hpp>
#include <NDBT.hpp> #include <NDBT.hpp>
class NdbOut& class NdbOut&
operator <<(class NdbOut& ndbout, const NDBT_Attribute & attr){ operator <<(class NdbOut& ndbout, const NDBT_Attribute & attr){
NdbDictionary::Column::Type type = attr.getType(); NdbDictionary::Column::Type type = attr.getType();
bool key = attr.getPrimaryKey();
bool null = attr.getNullable();
ndbout << attr.getName() << "\t"; ndbout << attr.getName() << " " << type;
char tmp[100];
if(attr.getLength() != 1)
snprintf(tmp, 100," [%d]", attr.getLength());
else
tmp[0] = 0;
switch(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: case NdbDictionary::Column::Decimal:
ndbout << "Decimal(" ndbout << "(" << attr.getScale() << ", " << attr.getPrecision() << ")";
<< 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;
break; break;
default: default:
ndbout << "Unknown(" << type << ")"; break;
} }
ndbout << "\t"; if(attr.getLength() != 1)
if(null){ ndbout << "[" << attr.getLength() << "]";
ndbout << "NULL";
} else { if(attr.getNullable())
ndbout << "NOT NULL"; ndbout << " NULL";
} else
ndbout << "\t"; ndbout << " NOT NULL";
if(key) if(attr.getPrimaryKey())
ndbout << "\tprimary key"; ndbout << " PRIMARY KEY";
return ndbout; return ndbout;
} }
...@@ -137,6 +60,9 @@ operator <<(class NdbOut& ndbout, const NDBT_Table & tab) ...@@ -137,6 +60,9 @@ operator <<(class NdbOut& ndbout, const NDBT_Table & tab)
ndbout << "Temporary table: " << (tab.getStoredTable() ? "no" : "yes") << endl; ndbout << "Temporary table: " << (tab.getStoredTable() ? "no" : "yes") << endl;
ndbout << "Number of attributes: " << tab.getNoOfColumns() << endl; ndbout << "Number of attributes: " << tab.getNoOfColumns() << endl;
ndbout << "Number of primary keys: " << tab.getNoOfPrimaryKeys() << endl; ndbout << "Number of primary keys: " << tab.getNoOfPrimaryKeys() << endl;
ndbout << "Length of frm data: " << tab.getFrmLength() << endl;
//<< ((tab.getTupleKey() == TupleId) ? " tupleid" : "") <<endl; //<< ((tab.getTupleKey() == TupleId) ? " tupleid" : "") <<endl;
ndbout << "TableStatus: "; ndbout << "TableStatus: ";
switch(tab.getObjectStatus()){ switch(tab.getObjectStatus()){
...@@ -161,3 +87,32 @@ operator <<(class NdbOut& ndbout, const NDBT_Table & tab) ...@@ -161,3 +87,32 @@ operator <<(class NdbOut& ndbout, const NDBT_Table & tab)
return ndbout; 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