mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Merge mskold@build.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/test/mysql-4.1
This commit is contained in:
@@ -474,33 +474,28 @@ static const ulong index_type_flags[]=
|
||||
0,
|
||||
|
||||
/* PRIMARY_KEY_INDEX */
|
||||
HA_NOT_READ_PREFIX_LAST |
|
||||
HA_ONLY_WHOLE_INDEX |
|
||||
HA_WRONG_ASCII_ORDER,
|
||||
HA_ONLY_WHOLE_INDEX,
|
||||
|
||||
/* PRIMARY_KEY_ORDERED_INDEX */
|
||||
/*
|
||||
Enable HA_KEY_READ_ONLY when "sorted" indexes are supported,
|
||||
Enable HA_KEYREAD_ONLY when "sorted" indexes are supported,
|
||||
thus ORDERD BY clauses can be optimized by reading directly
|
||||
through the index.
|
||||
*/
|
||||
HA_NOT_READ_PREFIX_LAST |
|
||||
HA_WRONG_ASCII_ORDER,
|
||||
// HA_KEYREAD_ONLY |
|
||||
HA_READ_NEXT |
|
||||
HA_READ_RANGE,
|
||||
|
||||
/* UNIQUE_INDEX */
|
||||
HA_NOT_READ_PREFIX_LAST |
|
||||
HA_ONLY_WHOLE_INDEX |
|
||||
HA_WRONG_ASCII_ORDER,
|
||||
HA_ONLY_WHOLE_INDEX,
|
||||
|
||||
/* UNIQUE_ORDERED_INDEX */
|
||||
HA_NOT_READ_PREFIX_LAST |
|
||||
HA_WRONG_ASCII_ORDER,
|
||||
HA_READ_NEXT |
|
||||
HA_READ_RANGE,
|
||||
|
||||
/* ORDERED_INDEX */
|
||||
HA_READ_NEXT |
|
||||
HA_READ_PREV |
|
||||
HA_NOT_READ_PREFIX_LAST |
|
||||
HA_WRONG_ASCII_ORDER
|
||||
HA_READ_RANGE,
|
||||
};
|
||||
|
||||
static const int index_flags_size= sizeof(index_type_flags)/sizeof(ulong);
|
||||
@@ -529,7 +524,7 @@ inline NDB_INDEX_TYPE ha_ndbcluster::get_index_type(uint idx_no) const
|
||||
flags depending on the type of the index.
|
||||
*/
|
||||
|
||||
inline ulong ha_ndbcluster::index_flags(uint idx_no) const
|
||||
inline ulong ha_ndbcluster::index_flags(uint idx_no, uint part) const
|
||||
{
|
||||
DBUG_ENTER("index_flags");
|
||||
DBUG_PRINT("info", ("idx_no: %d", idx_no));
|
||||
@@ -1390,6 +1385,7 @@ void ha_ndbcluster::print_results()
|
||||
|
||||
switch (col->getType()) {
|
||||
case NdbDictionary::Column::Blob:
|
||||
case NdbDictionary::Column::Clob:
|
||||
case NdbDictionary::Column::Undefined:
|
||||
fprintf(DBUG_FILE, "Unknown type: %d", col->getType());
|
||||
break;
|
||||
@@ -2622,13 +2618,9 @@ ha_ndbcluster::ha_ndbcluster(TABLE *table_arg):
|
||||
m_ndb(NULL),
|
||||
m_table(NULL),
|
||||
m_table_flags(HA_REC_NOT_IN_SEQ |
|
||||
HA_KEYPOS_TO_RNDPOS |
|
||||
HA_NOT_EXACT_COUNT |
|
||||
HA_NO_WRITE_DELAYED |
|
||||
HA_NO_PREFIX_CHAR_KEYS |
|
||||
HA_NO_BLOBS |
|
||||
HA_DROP_BEFORE_CREATE |
|
||||
HA_NOT_READ_AFTER_KEY),
|
||||
HA_NO_BLOBS),
|
||||
m_use_write(false),
|
||||
retrieve_all_fields(FALSE),
|
||||
rows_to_insert(0),
|
||||
@@ -2941,6 +2933,14 @@ bool ndbcluster_end()
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
void ndbcluster_print_error(int error)
|
||||
{
|
||||
DBUG_ENTER("ndbcluster_print_error");
|
||||
TABLE tab;
|
||||
tab.table_name = NULL;
|
||||
ha_ndbcluster error_handler(&tab);
|
||||
error_handler.print_error(error, MYF(0));
|
||||
}
|
||||
|
||||
/*
|
||||
Set m_tabname from full pathname to table file
|
||||
|
||||
@@ -93,11 +93,12 @@ class ha_ndbcluster: public handler
|
||||
const char * table_type() const { return("ndbcluster");}
|
||||
const char ** bas_ext() const;
|
||||
ulong table_flags(void) const { return m_table_flags; }
|
||||
ulong index_flags(uint idx) const;
|
||||
uint max_record_length() const { return NDB_MAX_TUPLE_SIZE; };
|
||||
uint max_keys() const { return MAX_KEY; }
|
||||
uint max_key_parts() const { return NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY; };
|
||||
uint max_key_length() const { return NDB_MAX_KEY_SIZE;};
|
||||
ulong index_flags(uint idx, uint part) const;
|
||||
uint max_supported_record_length() const { return NDB_MAX_TUPLE_SIZE; };
|
||||
uint max_supported_keys() const { return MAX_KEY; }
|
||||
uint max_supported_key_parts() const
|
||||
{ return NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY; };
|
||||
uint max_supported_key_length() const { return NDB_MAX_KEY_SIZE;};
|
||||
|
||||
int rename_table(const char *from, const char *to);
|
||||
int delete_table(const char *name);
|
||||
@@ -227,6 +228,7 @@ int ndbcluster_discover(const char* dbname, const char* name,
|
||||
const void** frmblob, uint* frmlen);
|
||||
int ndbcluster_drop_database(const char* path);
|
||||
|
||||
void ndbcluster_print_error(int error);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -496,7 +496,10 @@ int ha_commit_trans(THD *thd, THD_TRANS* trans)
|
||||
{
|
||||
if ((error=ndbcluster_commit(thd,trans->ndb_tid)))
|
||||
{
|
||||
my_error(ER_ERROR_DURING_COMMIT, MYF(0), error);
|
||||
if (error == -1)
|
||||
my_error(ER_ERROR_DURING_COMMIT, MYF(0), error);
|
||||
else
|
||||
ndbcluster_print_error(error);
|
||||
error=1;
|
||||
}
|
||||
if (trans == &thd->transaction.all)
|
||||
@@ -562,7 +565,10 @@ int ha_rollback_trans(THD *thd, THD_TRANS *trans)
|
||||
{
|
||||
if ((error=ndbcluster_rollback(thd, trans->ndb_tid)))
|
||||
{
|
||||
my_error(ER_ERROR_DURING_ROLLBACK, MYF(0), error);
|
||||
if (error == -1)
|
||||
my_error(ER_ERROR_DURING_ROLLBACK, MYF(0), error);
|
||||
else
|
||||
ndbcluster_print_error(error);
|
||||
error=1;
|
||||
}
|
||||
trans->ndb_tid = 0;
|
||||
|
||||
Reference in New Issue
Block a user