18 #ifndef NdbDictionary_H
19 #define NdbDictionary_H
21 #include <ndb_types.h>
104 virtual int getObjectId()
const = 0;
194 virtual int getObjectId()
const;
246 Olddecimalunsigned = NDB_TYPE_OLDDECIMALUNSIGNED,
248 Decimalunsigned = NDB_TYPE_DECIMALUNSIGNED,
278 ArrayTypeFixed = NDB_ARRAYTYPE_FIXED,
279 ArrayTypeShortVar = NDB_ARRAYTYPE_SHORT_VAR,
280 ArrayTypeMediumVar = NDB_ARRAYTYPE_MEDIUM_VAR
289 StorageTypeMemory = NDB_STORAGETYPE_MEMORY,
290 StorageTypeDisk = NDB_STORAGETYPE_DISK,
291 StorageTypeDefault = NDB_STORAGETYPE_DEFAULT
320 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
321 int getAttrId()
const;
416 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
420 ArrayType getArrayType()
const;
421 StorageType getStorageType()
const;
553 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
554 inline void setDistributionKey(
bool enable)
558 void setArrayType(ArrayType
type);
559 void setStorageType(StorageType
type);
568 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
586 const void* getDefaultValue(
unsigned int* len = 0)
const;
588 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
589 const Table * getBlobTable()
const;
591 void setAutoIncrement(
bool);
592 bool getAutoIncrement()
const;
593 void setAutoIncrementInitialValue(Uint64 val);
595 static const Column * FRAGMENT;
596 static const Column * FRAGMENT_FIXED_MEMORY;
597 static const Column * FRAGMENT_VARSIZED_MEMORY;
598 static const Column * ROW_COUNT;
599 static const Column * COMMIT_COUNT;
600 static const Column * ROW_SIZE;
601 static const Column * RANGE_NO;
602 static const Column * DISK_REF;
603 static const Column * RECORDS_IN_RANGE;
604 static const Column * ROWID;
605 static const Column * ROW_GCI;
606 static const Column * ROW_GCI64;
607 static const Column * ROW_AUTHOR;
608 static const Column * ANY_VALUE;
609 static const Column * COPY_ROWID;
610 static const Column * LOCK_REF;
611 static const Column * OP_ID;
612 static const Column * OPTIMIZE;
613 static const Column * FRAGMENT_EXTENT_SPACE;
614 static const Column * FRAGMENT_FREE_EXTENT_SPACE;
616 int getSizeInBytes()
const;
618 int getBlobVersion()
const;
619 void setBlobVersion(
int blobVersion);
629 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
638 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
669 enum SingleUserMode {
670 SingleUserModeLocked = NDB_SUM_LOCKED,
671 SingleUserModeReadOnly = NDB_SUM_READONLY,
672 SingleUserModeReadWrite = NDB_SUM_READ_WRITE
799 Uint32 getFrmLength()
const;
823 Table(
const char * name =
"");
842 int setName(
const char * name);
859 bool getLinearFlag()
const;
902 int setTablespaceName(
const char * name);
903 const char * getTablespaceName()
const;
905 bool getTablespace(Uint32 *
id= 0, Uint32 *version= 0)
const;
907 bool getHashMap(Uint32*
id = 0, Uint32* version = 0)
const;
908 int setHashMap(
const class HashMap &);
919 void setStatusInvalid()
const;
930 Uint32 getDefaultNoPartitionsFlag()
const;
940 int setFrm(
const void* data, Uint32 len);
956 Uint32 getFragmentDataLen()
const;
971 Uint32 getRangeListDataLen()
const;
981 Uint32* nodeIdArrayPtr,
982 Uint32 arraySize)
const;
994 Uint64 getMaxRows()
const;
1001 Uint64 getMinRows()
const;
1007 enum SingleUserMode getSingleUserMode()
const;
1015 void setRowGCIIndicator(
bool value);
1016 bool getRowGCIIndicator()
const;
1018 void setRowChecksumIndicator(
bool value);
1019 bool getRowChecksumIndicator()
const;
1021 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1022 const char *getMysqlName()
const;
1024 void setStoredTable(
bool x) {
setLogging(x); }
1025 bool getStoredTable()
const {
return getLogging(); }
1027 int getRowSizeInBytes()
const ;
1028 int createTableInDb(
Ndb*,
bool existingEqualIsOk =
true)
const ;
1030 int getReplicaCount()
const ;
1032 bool getTemporary()
const;
1033 void setTemporary(
bool);
1041 void setForceVarPart(
bool);
1051 int checkColumns(
const Uint32* bitmap,
unsigned len_in_bytes)
const;
1065 Column::StorageType getStorageType()
const;
1071 Uint32 getExtraRowGciBits()
const;
1077 Uint32 getExtraRowAuthorBits()
const;
1122 bool hasDefaultValues()
const;
1125 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1162 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
1175 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
1273 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
1290 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
1314 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
1315 void setStoredIndex(
bool x) {
setLogging(x); }
1316 bool getStoredIndex()
const {
return getLogging(); }
1318 bool getTemporary()
const;
1319 void setTemporary(
bool);
1325 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1358 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1361 friend class NdbDicitionaryImpl;
1392 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1394 friend class NdbDicitionaryImpl;
1409 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1416 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1418 TE_FIRST_NON_DATA_EVENT =1<<4,
1432 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1438 _TE_FIRST_NON_DATA_EVENT=4,
1443 _TE_CLUSTER_FAILURE=8,
1445 _TE_NODE_FAILURE=10,
1458 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1461 #if 0 // not supported
1472 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1529 int setTable(
const char *tableName);
1560 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1561 void addColumn(
const Column &c);
1635 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1640 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
1649 enum NdbRecordFlags {
1654 RecMysqldShrinkVarchar= 0x1,
1656 RecMysqldBitfield= 0x2
1685 Uint32 nullbit_byte_offset;
1687 Uint32 nullbit_bit_in_byte;
1721 static bool getFirstAttrId(
const NdbRecord*
record, Uint32& firstAttrId);
1742 Uint32& nullbit_byte_offset,
1743 Uint32& nullbit_bit_in_byte);
1816 static const unsigned char* getEmptyBitmask();
1822 const char * filename_pattern;
1834 void setName(
const char *
name);
1835 const char* getName()
const;
1837 void setUndoBufferSize(Uint32 sz);
1838 Uint32 getUndoBufferSize()
const;
1843 Uint64 getUndoFreeWords()
const;
1876 void setName(
const char *
name);
1877 const char* getName()
const;
1879 void setExtentSize(Uint32 sz);
1880 Uint32 getExtentSize()
const;
1885 void setDefaultLogfileGroup(
const char * name);
1886 void setDefaultLogfileGroup(
const class LogfileGroup&);
1888 const char * getDefaultLogfileGroup()
const;
1889 Uint32 getDefaultLogfileGroupId()
const;
1918 void setPath(
const char *
name);
1919 const char* getPath()
const;
1921 void setSize(Uint64);
1922 Uint64 getSize()
const;
1923 Uint64 getFree()
const;
1925 int setTablespace(
const char * name);
1927 const char * getTablespace()
const;
1928 void getTablespaceId(
ObjectId * dst)
const;
1930 void setNode(Uint32 nodeId);
1931 Uint32 getNode()
const;
1933 Uint32 getFileNo()
const;
1962 void setPath(
const char * path);
1963 const char* getPath()
const;
1965 void setSize(Uint64);
1966 Uint64 getSize()
const;
1968 void setLogfileGroup(
const char *
name);
1970 const char * getLogfileGroup()
const;
1971 void getLogfileGroupId(
ObjectId * dst)
const;
1973 void setNode(Uint32 nodeId);
1974 Uint32 getNode()
const;
1976 Uint32 getFileNo()
const;
2010 void setName(
const char *);
2011 const char * getName()
const;
2013 void setMap(
const Uint32* values, Uint32 len);
2014 Uint32 getMapLen()
const;
2015 int getMapValues(Uint32* dst, Uint32 len)
const;
2073 temp(NDB_TEMP_TAB_PERMANENT),
2084 for (
unsigned i = 0;
i <
count;
i++) {
2112 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
2119 bool fullyQualified)
const;
2149 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
2153 const Table *
getBlobTable(
const Table *,
const char * col_name);
2154 const Table *
getBlobTable(
const Table *, Uint32 col_no);
2160 void putTable(
const Table *
table);
2169 const Index *
getIndex(
const char * indexName,
2170 const char * tableName)
const;
2178 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
2183 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
2211 int dropEvent(
const char * eventName,
int force= 0);
2218 const Event *
getEvent(
const char * eventName);
2225 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
2297 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
2306 int alterTable(
const Table & f,
const Table & t);
2350 const char * tableName);
2358 int updateIndexStat(
const Index&,
const Table&);
2363 int updateIndexStat(Uint32 indexId, Uint32 indexVersion, Uint32 tableId);
2369 int deleteIndexStat(
const Index&,
const Table&);
2374 int deleteIndexStat(Uint32 indexId, Uint32 indexVersion, Uint32 tableId);
2376 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
2384 const char * tableName);
2411 WarnUndobufferRoundUp = 0x1,
2412 WarnUndofileRoundDown = 0x2,
2413 WarnExtentRoundUp = 0x4,
2414 WarnDatafileRoundDown = 0x8,
2415 WarnDatafileRoundUp = 0x10
2418 int createLogfileGroup(
const LogfileGroup &, ObjectId* = 0);
2419 int dropLogfileGroup(
const LogfileGroup&);
2420 LogfileGroup getLogfileGroup(
const char *
name);
2422 int createTablespace(
const Tablespace &, ObjectId* = 0);
2423 int dropTablespace(
const Tablespace&);
2424 Tablespace getTablespace(
const char *
name);
2425 Tablespace getTablespace(Uint32 tablespaceId);
2427 int createDatafile(
const Datafile &,
bool overwrite_existing =
false, ObjectId* = 0);
2428 int dropDatafile(
const Datafile&);
2429 Datafile getDatafile(Uint32 node,
const char * path);
2431 int createUndofile(
const Undofile &,
bool overwrite_existing =
false, ObjectId * = 0);
2432 int dropUndofile(
const Undofile&);
2433 Undofile getUndofile(Uint32 node,
const char * path);
2542 SchemaTransAbort = 1,
2544 SchemaTransBackground = 2
2558 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
2565 const Table * getIndexTable(
const char * indexName,
2566 const char * tableName)
const;
2568 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
2570 void set_local_table_data_size(
unsigned sz);
2572 const Index * getIndexGlobal(
const char * indexName,
2573 const Table &ndbtab)
const;
2574 const Index * getIndexGlobal(
const char * indexName,
2575 const char * tableName)
const;
2576 const Table * getTableGlobal(
const char * tableName)
const;
2577 int alterTableGlobal(
const Table &f,
const Table &t);
2578 int dropTableGlobal(
const Table &ndbtab);
2580 int removeIndexGlobal(
const Index &ndbidx,
int invalidate)
const;
2581 int removeTableGlobal(
const Table &ndbtab,
int invalidate)
const;
2582 void invalidateDbGlobal(
const char * dbname);
2626 const char *lines_terminated_by;
2627 const char *fields_terminated_by;
2628 const char *start_array_enclosure;
2629 const char *end_array_enclosure;
2630 const char *fields_enclosed_by;
2631 const char *fields_optionally_enclosed_by;
2632 const char *hex_prefix;
2633 const char *null_string;
2638 class NdbOut& printFormattedValue(
class NdbOut& out,