diff options
author | unknown <jan@hundin.mysql.fi> | 2004-12-09 11:10:45 +0200 |
---|---|---|
committer | unknown <jan@hundin.mysql.fi> | 2004-12-09 11:10:45 +0200 |
commit | 0f99fe728e9d32d8b6bf098775d1ef86235f8a47 (patch) | |
tree | 113b7055d0917544b26a20941cdfeccff09142ba /innobase/include/trx0trx.h | |
parent | f88e0d9c073e03e35766d56f39d227aff4e3fbbc (diff) | |
download | mariadb-git-0f99fe728e9d32d8b6bf098775d1ef86235f8a47.tar.gz |
Added support for a LOCK TABLES...WHERE ENGINE = InnoDB query which sets
transactional table locks to tables mentioned in the query. These locks
are released at the end of the transaction automatically.
This is fix for bugs #5655, #5998 and issue #3762.
innobase/include/lock0lock.h:
Added a new lock type LOCK_TABLE_TRANSACTIONAL.
innobase/include/trx0trx.h:
Added a varible to store the number of transactional table locks
reserved by the transaction and stored in the trx_locks list.
innobase/lock/lock0lock.c:
Added a lock type LOCK_TABLE_TRANSACTIONAL.
innobase/row/row0mysql.c:
Added support for a transactional table lock.
innobase/trx/trx0roll.c:
Make compiler happy and format function.
innobase/trx/trx0trx.c:
Added information about number of explicit and transactional table locks in
the innodb monitor.
sql/ha_innodb.cc:
Added support for a LOCK_TABLE_TRANSACTIONAL table lock (SQLCOM_LOCK_TABLES_TRANSACTIONAL).
Transactional table locks are taken in the function ::transactional_table_lock().
sql/ha_innodb.h:
Added prototype for a function trandactional_table_lock().
sql/handler.h:
Added prototype for a virtual function transactional_table_lock().
Handler does not need to implement this function.
sql/lock.cc:
Added a function transactional_lock_tables() to lock all tables in the list
with transactional table lock. These locks can cause a deadlock and
this error should be reported back to user.
sql/mysql_priv.h:
Added prototype for a function transactional_lock_tables().
sql/sql_lex.h:
Added SQLCOM_LOCK_TABLES_TRANSACTIONAL command.
sql/sql_parse.cc:
Added SQLCOM_LOCK_TABLES_TRANSACTIONAL command.
sql/sql_yacc.yy:
Added parsing rules for a LOCK TABLES...WHERE ENGINE = x;
Diffstat (limited to 'innobase/include/trx0trx.h')
-rw-r--r-- | innobase/include/trx0trx.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/innobase/include/trx0trx.h b/innobase/include/trx0trx.h index 8eb71dac763..e305226f9e3 100644 --- a/innobase/include/trx0trx.h +++ b/innobase/include/trx0trx.h @@ -464,6 +464,10 @@ struct trx_struct{ ulint n_lock_table_exp;/* number of explicit table locks (LOCK TABLES) reserved by the transaction, stored in trx_locks */ + ulint n_lock_table_transactional; + /* number of transactional table locks + (LOCK TABLES..WHERE ENGINE) reserved by + the transaction, stored in trx_locks */ UT_LIST_NODE_T(trx_t) trx_list; /* list of transactions */ UT_LIST_NODE_T(trx_t) |