NDBT_Table.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #include <NDBT_Table.hpp>
  14. #include <NdbTimer.hpp>
  15. #include <NDBT.hpp>
  16. class NdbOut& 
  17. operator <<(class NdbOut& ndbout, const NDBT_Table & tab)
  18. {
  19.   ndbout << "-- " << tab.getName() << " --" << endl;
  20.   
  21.   ndbout << "Version: " <<  tab.getObjectVersion() << endl; 
  22.   ndbout << "Fragment type: " <<  (unsigned) tab.getFragmentType() << endl; 
  23.   ndbout << "K Value: " <<  tab.getKValue()<< endl; 
  24.   ndbout << "Min load factor: " <<  tab.getMinLoadFactor()<< endl;
  25.   ndbout << "Max load factor: " <<  tab.getMaxLoadFactor()<< endl; 
  26.   ndbout << "Temporary table: " <<  (tab.getStoredTable() ? "no" : "yes") << endl;
  27.   ndbout << "Number of attributes: " <<  tab.getNoOfColumns() << endl;
  28.   ndbout << "Number of primary keys: " <<  tab.getNoOfPrimaryKeys() << endl;
  29.   ndbout << "Length of frm data: " << tab.getFrmLength() << endl;
  30.   //<< ((tab.getTupleKey() == TupleId) ? " tupleid" : "") <<endl;
  31.   ndbout << "TableStatus: ";
  32.   switch(tab.getObjectStatus()){
  33.   case NdbDictionary::Object::New:
  34.     ndbout << "New" << endl;
  35.     break;
  36.   case NdbDictionary::Object::Changed:
  37.     ndbout << "Changed" << endl;
  38.     break;
  39.   case NdbDictionary::Object::Retrieved:
  40.     ndbout << "Retrieved" << endl;
  41.     break;
  42.   default:
  43.     ndbout << "Unknown(" << (unsigned) tab.getObjectStatus() << ")" << endl;
  44.   }
  45.   
  46.   ndbout << "-- Attributes -- " << endl;
  47.   int noOfAttributes = tab.getNoOfColumns();
  48.   for(int i = 0; i<noOfAttributes; i++){
  49.     ndbout << (* (const NDBT_Attribute*)tab.getColumn(i)) << endl;
  50.   }
  51.   
  52.   return ndbout;
  53. }
  54. class NdbOut& operator <<(class NdbOut&, const NdbDictionary::Index & idx)
  55. {
  56.   ndbout << idx.getName();
  57.   ndbout << "(";
  58.   for (unsigned i=0; i < idx.getNoOfColumns(); i++)
  59.   {
  60.     const NdbDictionary::Column *col = idx.getColumn(i);
  61.     ndbout << col->getName();
  62.     if (i < idx.getNoOfColumns()-1)
  63.       ndbout << ", ";
  64.   }
  65.   ndbout << ")";
  66.   
  67.   ndbout << " - ";
  68.   switch (idx.getType()) {
  69.   case NdbDictionary::Object::UniqueHashIndex:
  70.     ndbout << "UniqueHashIndex";
  71.     break;
  72.   case NdbDictionary::Object::OrderedIndex:
  73.     ndbout << "OrderedIndex";
  74.     break;
  75.   default:
  76.     ndbout << "Type " << (unsigned) idx.getType();
  77.     break;
  78.   }
  79.   return ndbout;
  80. }