Commit 8ba4ab19 authored by mskold@mysql.com's avatar mskold@mysql.com

Merge mskold@build.mysql.com:/home/bk/mysql-4.1

into mysql.com:/usr/local/home/marty/MySQL/test/mysql-4.1
parents e14aef78 29746be6
......@@ -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;
......
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