[+/-]
Table
ConstructorTable:getName()
Table::getTableId()
Table::getColumn()
Table::getLogging()
Table::getFragmentType()
Table::getKValue()
Table::getMinLoadFactor()
Table::getMaxLoadFactor()
Table::getNoOfCOlumns()
Table::getNoOfPrimaryKeys()
Table::getPrimaryKey()
Table::equal()
Table::getFrmData()
Table::getFrmLength()
Table::getFragmentData()
Table::getFragmentDataLen()
Table::getRangeListData()
Table::getRangeListDataLen()
Table::getTablespaceData()
Table::getTablespaceDataLen()
Table::getLinearFlag()
Table::getFragmentCount()
Table::getFragmentNodes()
Table::getTablespace()
Table::getObjectType()
Table::getObjectStatus()
Table::getObjectVersion()
Table::getMaxRows()
Table::getDefaultNoPartitionsFlag()
Table::getObjectId()
Table::getTablespaceNames()
Table::getTablespaceNamesLen()
Table::getRowGCIIndicator()
Table::getRowChecksumIndicator()
Table::setName()
Table::addColumn()
Table::setLogging()
Table::setLinearFlag()
Table::setFragmentCount()
Table::setFragmentType()
Table::setKValue()
Table::setMinLoadFactor()
Table::setMaxLoadFactor()
Table::setTablespace()
Table::setMaxRows()
Table::setDefaultNoPartitionsFlag()
Table::setFrm()
Table::setFragmentData()
Table::setTablespaceNames()
Table::setTablespaceData()
Table::setRangeListData()
Table::setObjectType()
Table::setRowGCIIndicator()
Table::setRowChecksumIndicator()
Table::setStatusInvalid()
Table::aggregate()
Table::validate()
Table::hasDefaultValues()
Abstract
This section discusses the public methods of the
Table
class.
The assignment (=
) operator is overloaded for
this class, so that it always performs a deep copy.
As with other database objects, Table
object
creation and attribute changes to existing tables done using the
NDB API are not visible from MySQL. For example, if you add a
new column to a table using
Table::addColumn()
, MySQL will not see the
new column. The only exception to this rule with regard to
tables is that you can change the name of an existing table
using Table::setName()
.
Description.
Creates a Table
instance. There are two
version of the Table
constructor, one for
creating a new instance, and a copy constructor.
Tables created in the NDB API using this method are not accessible from MySQL.
Signature. New instance:
Table
(
const char* name
= ""
)
Copy constructor:
Table
(
const Table& table
)
Parameters. For a new instance, the name of the table to be created. For a copy, a reference to the table to be copied.
Return value.
A Table
object.
Destructor.
virtual ~Table()
Description. Gets the name of a table.
Signature.
const char* getName ( void ) const
Parameters. None.
Return value. The name of the table (a string).
Description. This method gets a table's ID.
Signature.
int getTableId ( void ) const
Parameters. None.
Return value. An integer.
Description. This method is used to obtain a column definition, given either the index or the name of the column.
Signature. Using the column ID:
Column* getColumn
(
const int AttributeId
)
Using the column name:
Column* getColumn
(
const char* name
)
Parameters.
Either of: the column's index in the table (as would be
returned by the column's getColumnNo()
method), or the name of the column.
Return value.
A pointer to the column with the specified index or name. If
there is no such column, then this method returns
NULL
.
Description. This class is used to check whether a table is logged to disk — that is, whether it is permanent or temporary.
Signature.
bool getLogging ( void ) const
Parameters. None.
Return value.
Returns a Boolean value. If this method returns
true
, then full checkpointing and logging
are done on the table. If false
, then the
table is a temporary table and is not logged to disk; in the
event of a system restart the table still exists and retains
its definition, but it will be empty. The default logging
value is true
.
Description. This method gets the table's fragmentation type.
Signature.
FragmentType getFragmentType ( void ) const
Parameters. None.
Return value.
A FragmentType
value, as defined in
Section 2.3.20.1.1, “The Object::FragmentType
Type”.
Description.
This method gets the KValue, a hashing parameter which is
currently restricted to the value 6
. In a
future release, it may become feasible to set this parameter
to other values.
Signature.
int getKValue ( void ) const
Parameters. None.
Return value.
An integer (currently always 6
).
Description.
This method gets the value of the load factor when reduction
of the hash table begins. This should always be less than the
value returned by getMaxLoadFactor()
.
Signature.
int getMinLoadFactor ( void ) const
Parameters. None.
Return value.
An integer (actually, a percentage expressed as an integer
— see Section 2.3.21.2.9, “Table::getMaxLoadFactor()
”).
Description. This method returns the load factor (a hashing parameter) when splitting of the containers in the local hash tables begins.
Signature.
int getMaxLoadFactor ( void ) const
Parameters. None.
Return value. An integer whose maximum value is 100. When the maximum value is returned, this means that memory usage is optimised. Smaller values indicate that less data is stored in each container, which means that keys are found more quickly; however, this also consumes more memory.
Description. This method is used to obtain the number of columns in a table.
Signature.
int getNoOfColumns ( void ) const
Parameters. None.
Return value. An integer — the number of columns in the table.
Description. This method finds the number of primary key columns in the table.
Signature.
int getNoOfPrimaryKeys ( void ) const
Parameters. None.
Return value. An integer.
Description. This method is used to obtain the name of the table's primary key.
Signature.
const char* getPrimaryKey
(
int no
) const
Parameters. None.
Return value. The name of the primary key, a string (character pointer).
Description.
This method is used to compare one instance of
Table
with another.
Signature.
bool equal
(
const Table& table
) const
Parameters.
A reference to the Table
object with which
the current instance is to be compared.
Return value.
true
if the two tables are the same,
otherwise false
.
Description.
The the data from the .FRM
file
associated with the table.
Signature.
const void* getFrmData ( void ) const
Parameters. None.
Return value.
A pointer to the .FRM
data.
Description.
Gets the length of the table's .FRM
file
data, in bytes.
Signature.
Uint32 getFrmLength ( void ) const
Parameters. None.
Return value.
The length of the .FRM
file data
(unsigned 32-bit integer).
Description. This method gets the table's fragment data (ID, state, and node group).
Signature.
const void* getFragmentData ( void ) const
Parameters. None.
Return value. A pointer to the data to be read.
Description. Gets the length of the table fragment data to be read, in bytes.
Signature.
Uint32 getFragmentDataLen ( void ) const
Parameters. None.
Return value. The number of bytes to be read, as an unsigned 32-bit integer.
Description. This method gets the range or list data associated with the table.
Signature.
const void* getRangeListData ( void ) const
Parameters. None.
Return value. A pointer to the data.
Description. This method gets the size of the table's range or list array.
Signature.
Uint32 getRangeListDataLen ( void ) const
Parameters. None.
Return value. The length of the list or range array, as an integer.
Description. This method gets the table's tablespace data (ID and version).
Signature.
const void* getTablespaceData ( void ) const
Parameters. None.
Return value. A pointer to the data.
Description. This method is used to get the length of the table's tablespace data.
Signature.
Uint32 getTablespaceDataLen ( void ) const
Parameters. None.
Return value. The length of the data, as a 32-bit unsigned integer.
Description. This method retrieves the value of the table's linear hashing flag.
Signature.
bool getLinearFlag ( void ) const
Parameters. None.
Return value.
true
if the flag is set, and
false
if it is not.
Description. This method gets the number of fragments in the table.
Signature.
Uint32 getFragmentCount ( void ) const
Parameters. None.
Return value. The number of table fragments, as a 32-bit unsigned integer.
Description. This method retrieves a list of nodes storing a given fragment.
Signature.
Uint32 getFragmentNodes ( Uint32fragmentId
, Uint32*nodeIdArrayPtr
, Uint32arraySize
) const
Parameters. This method takes the following parameters:
fragmentId
: The ID of the desired
fragment.
nodeIdArrayPtr
: Pointer to an
array of node IDs of the nodes containing this fragment.
Normally, the primary fragment is entry 0 in this array.
arraySize
: The size of the array
containing the node IDs. If this is less than the number of
fragments, then only the first
arraySize
entries are written to
this array.
Return value.
A return value of 0
indicates an error;
otherwise, this is the number of table fragments, as a 32-bit
unsigned integer.
This method was added in MySQL Cluster NDB 6.2.19, MySQL Cluster NDB 6.3.33, MySQL Cluster NDB 7.0.14, and MySQL Cluster NDB 7.1.2.
Description. This method is used in two ways: to obtain the name of the tablespace to which this table is assigned; to verify that a given tablespace is the one being used by this table.
Signatures. To obtain the name of the tablespace:
const char* getTablespace ( void ) const
To determine whether the tablespace is the one indicated by the given ID and version:
bool getTablespace ( Uint32*id
= 0, Uint32*version
= 0 ) const
Parameters. The number and types of parameters depend on how this method is being used:
When used to obtain the name of the tablespace in use by the table, it is called without any arguments.
When used to determine whether the given tablespace is the one being used by this table, then getTablespace() takes two parameters:
The tablespace id
,
given as a pointer to a 32-bit unsigned integer
The tablespace version
,
also given as a pointer to a 32-bit unsigned
integer
The default value for both id
and version
is
0
.
Return value. The return type depends on how the method is called.
When getTablespace()
is called
without any arguments, it returns a
Tablespace
object instance. See
Section 2.3.22, “The Tablespace
Class”, for more information.
When called with two arguments, it returns
true
if the tablespace is the same as
the one having the ID and version indicated; otherwise,
it returns false
.
Description.
This method is used to obtain the table's type — that
is, its Object::Type
value
Signature.
Object::Type getObjectType ( void ) const
Parameters. None.
Return value.
Returns a Type
value. For possible values,
see Section 2.3.20.1.5, “The Object::Type
Type”.
Description.
This method gets the table's status — that is, its
Object::Status
.
Signature.
virtual Object::Status getObjectStatus ( void ) const
Parameters. None.
Return value.
A Status
value. For possible values, see
Section 2.3.20.1.3, “The Object::Status
Type”.
Description. This method gets the table's object version.
Signature.
virtual int getObjectVersion ( void ) const
Parameters. None.
Return value. The table's object version, as an integer.
Description. This method gets the maximum number of rows that the table can hold. This is used for calculating the number of partitions.
Signature.
Uint64 getMaxRows ( void ) const
Parameters. None.
Return value. The maximum number of table rows, as a 64-bit unsigned integer.
Description. This method is used to find out whether the default number of partitions is used for the table.
Signature.
Uint32 getDefaultNoPartitionsFlag ( void ) const
Parameters. None.
Return value. A 32-bit unsigned integer.
Description. This method gets the table's object ID.
Signature.
virtual int getObjectId ( void ) const
Parameters. None.
Return value. The object ID is returned as an integer.
Description. This method gets a pointer to the names of the tablespaces used in the table fragments.
Signature.
const void* getTablespaceNames ( void )
Parameters. None.
Return value. A pointer to the tablespace name data.
Description.
This method gets the length of the tablespace name data
returned by getTablespaceNames()
. (See
Section 2.3.21.2.32, “Table::getTablespaceNames()
”.)
Signature.
Uint32 getTablespaceNamesLen ( void ) const
Parameters. None.
Return value. The length of the names data, in bytes, as a 32-but unsigned integer.
Description.
Signature.
bool getRowGCIIndicator ( void ) const
Parameters. None.
Return value.
A true
/false
value.
Description.
Signature.
bool getRowChecksumIndicator ( void ) const
Parameters. None.
Return value.
A true
/false
value.
Description. This method sets the name of the table.
This is the only
set
method of
*
()Table
whose effects are visible to MySQL.
Signature.
void setName
(
const char* name
)
Parameters.
name
is the (new) name of the
table.
Return value. None.
Description. Adds a column to a table.
Signature.
void addColumn
(
const Column& column
)
Parameters. A reference to the column which is to be added to the table.
Return value.
None; however, it does create a copy of
the original Column
object.
Description.
Toggles the table's logging state. See
Section 2.3.21.2.5, “Table::getLogging()
”.
Signature.
void setLogging
(
bool enable
)
Parameters.
If enable
is
true
, then logging for this table is
enabled; if it is false
, then logging is
disabled.
Return value. None.
Description.
Signature.
void setLinearFlag
(
Uint32 flag
)
Parameters.
The flag
is a 32-bit unsigned
integer.
Return value. None.
Description. Sets the number of table fragments.
Signature.
void setFragmentCount
(
Uint32 count
)
Parameters.
count
is the number of fragments to
be used for the table.
Return value. None.
Description. This method sets the table's fragmentation type.
Signature.
void setFragmentType
(
FragmentType fragmentType
)
Parameters.
This method takes one argument, a
FragmentType
value. See
Section 2.3.20.1.1, “The Object::FragmentType
Type”, for more
information.
Return value. None.
Description.
This sets the KValue
, a hashing parameter.
Signature.
void setKValue
(
int kValue
)
Parameters.
kValue
is an integer. Currently the
only permitted value is 6
. In a future
version this may become a variable parameter.
Return value. None.
Description. This method sets the minimum load factor when reduction of the hash table begins.
Signature.
void setMinLoadFactor
(
int min
)
Parameters.
This method takes a single parameter
min
, an integer representation of a
percentage (for example, 45
represents 45
percent). For more information, see
Section 2.3.21.2.8, “Table::getMinLoadFactor()
”.
Return value. None.
Description. This method sets the maximum load factor when splitting the containers in the local hash tables.
Signature.
void setMaxLoadFactor
(
int max
)
Parameters.
This method takes a single parameter
max
, an integer representation of a
percentage (for example, 45
represents 45
percent). For more information, see
Section 2.3.21.2.9, “Table::getMaxLoadFactor()
”.
This should never be greater than the minimum load factor.
Return value. None.
Description. This method sets the tablespace for the table.
Signatures. Using the name of the tablespace:
void setTablespace
(
const char* name
)
Using a Tablespace
object:
void setTablespace
(
const class Tablespace& tablespace
)
Parameters. This method can be called with a single argument of either of two types:
The name
of the tablespace (a
string).
A reference to an existing Tablespace
instance.
See Section 2.3.22, “The Tablespace
Class”.
Return value. None.
Description. This method sets the maximum number of rows that can be held by the table.
Signature.
void setMaxRows
(
Uint64 maxRows
)
Parameters.
maxRows
is a 64-bit unsigned
integer that represents the maximum number of rows to be held
in the table.
Return value. None.
Description. This method sets an indicator that determines whether the default number of partitions is used for the table.
Signature.
void setDefaultNoPartitionsFlag
(
Uint32 indicator
) const
Parameters.
This method takes a single argument
indicator
, a 32-bit unsigned
integer.
Return value. None.
Description.
This method is used to write data to this table's
.FRM
file.
Signature.
void setFrm ( const void*data
, Uint32len
)
Parameters. This method takes two arguments:
A pointer to the data
to be
written.
The length (len
) of the data.
Return value. None.
Description. This method writes an array of fragment information containing the following information:
Fragment ID
Node group ID
Fragment State
Signature.
void setFragmentData ( const void*data
, Uint32len
)
Parameters. This method takes two parameters:
A pointer to the fragment
data
to be written
The length (len
) of this
data, in bytes, as a 32-bit unsigned integer
Return value. None.
Description. Sets the names of the tablespaces used by the table fragments.
Signature.
void setTablespaceNames ( const void*data
Uint32len
)
Parameters. This method takes two parameters:
A pointer to the tablespace names
data
The length (len
) of the names
data, as a 32-bit unsigned integer.
Return value. None.
Description. This method sets the tablespace information for each fragment, and includes a tablespace ID and a tablespace version.
Signature.
void setTablespaceData ( const void*data
, Uint32len
)
Parameters. This method requires two parameters:
A pointer to the data
containing the tablespace ID and version
The length (len
) of this
data, as a 32-bit unsigned integer.
Return value. None.
Description. This method sets an array containing information that maps range values and list values to fragments. This is essentially a sorted map consisting of fragment ID/value pairs. For range partitions there is one pair per fragment. For list partitions it could be any number of pairs, but at least as many pairs as there are fragments.
Signature.
void setRangeListData ( const void*data
, Uint32len
)
Parameters. This method requires two parameters:
A pointer to the range or list
data
containing the ID/value
pairs
The length (len
) of this
data, as a 32-bit unsigned integer.
Return value. None.
Description. This method sets the table's object type.
Signature.
void setObjectType
(
Object::Type type
)
Parameters.
The desired object type
. This must
be one of the Type
values listed in
Section 2.3.20.1.5, “The Object::Type
Type”.
Return value. None.
Description. Documentation not yet available
Signature.
void setRowGCIIndicator
(
bool value
) const
Parameters.
A true
/false
value
.
Return value. None.
Description. Documentation not yet available
Signature.
void setRowChecksumIndicator
(
bool value
) const
Parameters.
A true
/false
value
.
Return value. None.
Description. Forces the table's status to be invalidated.
Signature.
void setStatusInvalid ( void ) const
Parameters. None.
Return value. None.
Description.
This method computes aggregate data for the table. It is
required in order for aggregate methods such as
getNoOfPrimaryKeys()
to work properly
before the table has been created and retrieved via
getTable()
.
This method was added in MySQL 5.1.12. (See Bug#21690.)
Signature.
int aggregate
(
struct NdbError& error
)
Parameters.
A reference to an NdbError
object.
Return value.
An integer, whose value is 0
on success,
and -1
if the table is in an inconsistent
state. In the latter case, the
error
is also set.
Description.
This method validates the definition for a new table prior to
its being created, and executes the
Table::aggregate()
method, as well as
performing additional checks. validate()
is
called automatically when a table is created or retrieved. For
this reason, it is usually not necessary to call
aggregate()
or
validate()
directly.
Even after the validate()
method is called,
there may still exist errors which can be detected only by the
NDB
kernel when the table is actually
created.
This method was added in MySQL 5.1.12. (See Bug#21690.)
Signature.
int validate
(
struct NdbError& error
)
Parameters.
A reference to an NdbError
object.
Return value.
An integer, whose value is 0
on success,
and -1
if the table is in an inconsistent
state. In the latter case, the
error
is also set.
Description.
Used to determine whether the table has any columns that are
defined with non-NULL
default values.
This method was added in MySQL Cluster NDB 7.1.0.
To read and write default column values, use
Column::getDefaultValue()
and
Column::setDefaultValue()
.
Signature.
bool hasDefaultValues ( void ) const
Parameters. None.
Return value.
TRUE
if the table has any
non-NULL
columns with default values;
otherwise, FALSE
.