summaryrefslogtreecommitdiff
path: root/sql/ha_innobase.cc
diff options
context:
space:
mode:
authorunknown <heikki@donna.mysql.fi>2001-03-06 19:45:10 +0200
committerunknown <heikki@donna.mysql.fi>2001-03-06 19:45:10 +0200
commite58c19253841961fa558625746a8a0e780427f0d (patch)
tree8379d144f3d45e35f34cbed179ce3e5d5c26c30a /sql/ha_innobase.cc
parent277d59b86e14fc5443bc5a87fc399ee2d5491069 (diff)
downloadmariadb-git-e58c19253841961fa558625746a8a0e780427f0d.tar.gz
trx0trx.h Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs
row0ins.c Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs row0mysql.c Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs row0mysql.h Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs ha_innobase.cc Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs sql/ha_innobase.cc: Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs innobase/include/row0mysql.h: Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs innobase/include/trx0trx.h: Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs innobase/row/row0ins.c: Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs innobase/row/row0mysql.c: Innobase now returns the key number in a duplicate key error, removed innobase/include from make dirs
Diffstat (limited to 'sql/ha_innobase.cc')
-rw-r--r--sql/ha_innobase.cc32
1 files changed, 15 insertions, 17 deletions
diff --git a/sql/ha_innobase.cc b/sql/ha_innobase.cc
index e3f3d19f865..338ea8987c0 100644
--- a/sql/ha_innobase.cc
+++ b/sql/ha_innobase.cc
@@ -18,12 +18,6 @@
Innobase */
/* TODO list for the Innobase handler:
- - How to check for deadlocks if Innobase tables are used alongside
- other MySQL table types? Solution: we will use a timeout.
- - Innobase currently includes the path to a table name: the path should
- actually be dropped off, because we may move a whole database to a new
- directory.
- - Add a deadlock error message to MySQL.
- Ask Monty if strings of different languages can exist in the same
database. Answer: in near future yes, but not yet.
*/
@@ -415,10 +409,10 @@ innobase_init(void)
/*===============*/
/* out: TRUE if error */
{
- int err;
- bool ret;
- ibool test_bool;
- static char current_dir[3];
+ static char current_dir[3];
+ int err;
+ bool ret;
+
DBUG_ENTER("innobase_init");
/* Use current_dir if no paths are set */
@@ -1659,7 +1653,7 @@ ha_innobase::change_active_index(
statistic_increment(ha_read_key_count, &LOCK_status);
- DBUG_ENTER("ha_innobase::change_active_index");
+ DBUG_ENTER("index_read_idx");
active_index = keynr;
@@ -1685,7 +1679,7 @@ ha_innobase::change_active_index(
build_template(prebuilt, user_thd, table, ROW_MYSQL_WHOLE_ROW);
- DBUG_RETURN(0);
+ return(0);
}
/**************************************************************************
@@ -2219,7 +2213,6 @@ ha_innobase::create(
{
int error;
dict_table_t* innobase_table;
- uint name_len;
trx_t* trx;
int primary_key_no = -1;
KEY* key;
@@ -2237,7 +2230,7 @@ ha_innobase::create(
/* Create the table definition in Innobase */
- if ((error = create_table_def(trx, form, norm_name))) {
+ if (error = create_table_def(trx, form, norm_name)) {
trx_commit_for_mysql(trx);
@@ -2256,6 +2249,11 @@ ha_innobase::create(
}
}
+ /* Our function row_get_mysql_key_number_for_index assumes
+ the primary key is always number 0, if it exists */
+
+ assert(primary_key_no == -1 || primary_key_no == 0);
+
/* Create the keys */
if (form->keys == 0 || primary_key_no == -1) {
@@ -2569,9 +2567,9 @@ ha_innobase::info(
}
if (flag & HA_STATUS_ERRKEY) {
-
- errkey = (unsigned int)-1; /* TODO: get the key number from
- Innobase */
+ errkey = (unsigned int) row_get_mysql_key_number_for_index(
+ (dict_index_t*)
+ prebuilt->trx->error_info);
}
DBUG_VOID_RETURN;