mariadb/innobase/include
unknown 6861b1bf9b A fix and a test case for Bug#12243 "MySQL Server crashes with 2
cursors (+ commit)" and Bug#11832 "Server crash with InnoDB + Cursors"
See comments to the changed files.


innobase/include/read0read.h:
  - add cursor_view_t::n_mysql_tables_in_use
innobase/read/read0read.c:
  - maintain cursor_view_t::n_mysql_tables_in_use. InnoDB
  maintains trx->n_mysql_tables_in_use to know when it can auto-commit
  a read-only statement. When this count drops to zero,
  MySQL has ended processing of such statement and InnoDB can commit.
  Cursors should not break this invariant, and should exclude the tables
  used in a cursor from the count of active tables.
  When a cursor is closed, the number of its tables is added back, 
  to ensure that close_thread_tables->unlock_external->
  ha_innobase::external_lock(F_UNLCK) won't drop the count in trx 
  below zero.
innobase/row/row0sel.c:
  - remove the restoration of the global read view from 
  row_search_for_mysql: MySQL may call row_search_for_mysql
  more than once when fetching a row for a cursor (e.g. if there
  is a WHERE clause that filters out some rows).
sql/ha_innodb.cc:
  - add more verbose printout for the case when we close an InnoDB
  connection without priorlly issuing a commit or rollback. The problem
  should be investigated.
tests/mysql_client_test.c:
  - add a test case for Bug#12243 "MySQL Server crashes with 2 cursors 
  (+ commit)"
2005-08-10 18:36:13 +04:00
..
btr0btr.h InnoDB: Performance optimizations based on OProfile analysis 2005-04-25 10:14:35 +03:00
btr0btr.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
btr0cur.h InnoDB: Replace the redo log entry type 2005-04-18 15:12:30 +03:00
btr0cur.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
btr0pcur.h manually merged 2005-04-06 21:19:20 +02:00
btr0pcur.ic row0sel.c, btr0pcur.c, btr0pcur.ic, btr0pcur.h: 2005-04-06 10:27:40 +03:00
btr0sea.h row0mysql.c: 2004-12-08 14:33:09 +02:00
btr0sea.ic Allow UNIV_SYNC_DEBUG to be disabled while UNIV_DEBUG is enabled 2004-03-12 17:14:51 +02:00
btr0types.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
buf0buf.h InnoDB: Remove unreachable debug code from non-debug builds. 2005-06-15 12:50:27 +03:00
buf0buf.ic InnoDB: Remove unreachable debug code from non-debug builds. 2005-06-15 12:50:27 +03:00
buf0flu.h InnoDB: Revert most of ChangeSet@1.1772, as the debug functions may 2004-06-16 13:41:14 +03:00
buf0flu.ic WL 2059 Engine-specific status variables framework and WL 1922 2004-11-18 13:00:42 +03:00
buf0lru.h InnoDB: Remove unreferenced debug functions from non-debug builds. 2005-06-13 11:39:31 +03:00
buf0lru.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
buf0rea.h Many files: 2003-10-07 17:28:59 +03:00
buf0types.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
data0data.h Merge with 4.0.21 2004-06-18 04:38:58 +03:00
data0data.ic After merge fixes 2004-05-24 14:42:34 +03:00
data0type.h InnoDB: Speed up comparison functions by making 2005-04-21 15:09:10 +03:00
data0type.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
data0types.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
db0err.h Many files: 2004-11-26 00:12:50 +02:00
dict0boot.h InnoDB: Implement fast TRUNCATE TABLE (Bug #7150) 2005-01-11 16:28:07 +02:00
dict0boot.ic Merge 2001-10-30 17:38:44 +02:00
dict0crea.h After review fixes. Fix bugs in TRUNCATE. 2005-03-01 19:42:59 +02:00
dict0crea.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
dict0dict.h Merge hundin.mysql.fi:/home/heikki/mysql-4.1 2005-04-27 03:02:25 +03:00
dict0dict.ic InnoDB: Remove dependency on rem0rec.ic from dict0dict.ic (Bug #7464) 2004-12-29 12:09:23 +02:00
dict0load.h InnoDB: Ignore character set mismatch in ALTER TABLE and RENAME TABLE 2005-04-12 16:12:34 +03:00
dict0load.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
dict0mem.h InnoDB: Remove redundant page_no field from dict_index_t. 2005-01-14 13:54:23 +02:00
dict0mem.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
dict0types.h InnoDB: Remove unnecessary code, mostly related to stored procedures 2004-03-31 10:30:14 +03:00
dyn0dyn.h InnoDB: Remove warnings detected by GCC 4.0.0 2005-06-20 11:06:20 +03:00
dyn0dyn.ic InnoDB: Remove warnings detected by GCC 4.0.0 2005-06-20 11:06:20 +03:00
eval0eval.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
eval0eval.ic eval0eval.ic: 2005-02-02 01:43:25 +02:00
eval0proc.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
eval0proc.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
fil0fil.h manually merged 2004-12-31 15:26:24 +01:00
fsp0fsp.h fsp0fsp.h: 2004-10-01 20:05:30 +03:00
fsp0fsp.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
fut0fut.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
fut0fut.ic Allow UNIV_SYNC_DEBUG to be disabled while UNIV_DEBUG is enabled 2004-03-12 17:14:51 +02:00
fut0lst.h InnoDB: Revert most of ChangeSet@1.1772, as the debug functions may 2004-06-16 13:41:14 +03:00
fut0lst.ic Many files: 2003-10-07 17:28:59 +03:00
ha0ha.h Cset exclude: heikki@hundin.mysql.fi|ChangeSet|20041027124510|04970 2004-12-08 14:34:58 +02:00
ha0ha.ic Merge with 4.0 2004-04-26 15:53:31 +03:00
hash0hash.h Cset exclude: heikki@hundin.mysql.fi|ChangeSet|20041027124510|04970 2004-12-08 14:34:58 +02:00
hash0hash.ic Cset exclude: marko@hundin.mysql.fi|ChangeSet|20040311211202|05613 2004-06-17 13:25:06 +03:00
ibuf0ibuf.h Merge with 4.0 2004-04-26 15:53:31 +03:00
ibuf0ibuf.ic Many files: 2003-10-13 11:20:19 +03:00
ibuf0types.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
lock0lock.h Merge hundin.mysql.fi:/home/marko/mysql-5.0 2005-06-21 07:36:18 +03:00
lock0lock.ic Many files: 2004-12-02 19:45:07 +02:00
lock0types.h Added max_user_connections 2001-02-20 22:34:47 +02:00
log0log.h InnoDB: Remove unreachable debug code from non-debug builds. 2005-06-15 12:50:27 +03:00
log0log.ic Merge with 4.0.21 2004-06-18 04:38:58 +03:00
log0recv.h InnoDB cleanup: 2004-05-27 15:27:43 +03:00
log0recv.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
mach0data.h InnoDB: Performance optimizations based on OProfile analysis 2005-04-25 10:14:35 +03:00
mach0data.ic InnoDB: Performance optimizations based on OProfile analysis 2005-04-25 10:14:35 +03:00
Makefile.am - added file innobase/include/trx0xa.h which was missing from the source 2004-12-17 14:06:12 +01:00
Makefile.i - Fixed bug in "make DESTDIR=<dir> install" - the InnoDB static 2003-04-10 20:03:52 +02:00
makefilewin.i Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
mem0dbg.h mem0dbg.h, mem0dbg.c: 2004-06-17 17:30:33 +03:00
mem0dbg.ic Merge with 4.0.21 2004-06-18 04:38:58 +03:00
mem0mem.h Fix compiler warnings (detected by Intel's C++ compiler) 2004-10-22 18:44:51 +03:00
mem0mem.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
mem0pool.h InnoDB: Revert most of ChangeSet@1.1772, as the debug functions may 2004-06-16 13:41:14 +03:00
mem0pool.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
mtr0log.h InnoDB: Remove warnings detected by GCC 4.0.0 2005-06-20 11:06:20 +03:00
mtr0log.ic manually merged 2004-08-18 19:57:55 +02:00
mtr0mtr.h InnoDB: Replace the redo log entry type 2005-04-18 15:12:30 +03:00
mtr0mtr.ic InnoDB cleanup: eliminate IB__FILE__ 2004-05-14 16:06:21 +03:00
mtr0types.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
os0file.h Merge hundin.mysql.fi:/home/marko/mysql-4.1 2005-07-26 14:43:48 +03:00
os0proc.h Forward port of HugeTLB, InnoDB doublewrite and checksums patches to 5.0 2004-12-14 22:26:31 +03:00
os0proc.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
os0sync.h InnoDB cleanup: Add const qualifiers to many char* arguments 2004-05-17 14:40:31 +03:00
os0sync.ic os0thread.h, os0sync.ic, os0sync.h, os0thread.c, os0sync.c, os0file.c: 2003-06-02 13:11:20 +03:00
os0thread.h Changed prototype of killed_ptr() to make it more portable 2004-05-26 19:12:49 +03:00
os0thread.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
page0cur.h InnoDB: Optimize page_cur_search_with_match(). 2005-06-30 11:15:06 +03:00
page0cur.ic InnoDB: Performance optimizations based on OProfile analysis 2005-04-25 10:14:35 +03:00
page0page.h InnoDB: Performance optimizations based on OProfile analysis 2005-04-25 10:14:35 +03:00
page0page.ic InnoDB: After review fixes 2005-06-16 16:59:49 +03:00
page0types.h page0types.h Eliminate a name collision on page_t on HP-UX 2001-03-14 21:13:15 +02:00
pars0grm.h pars0grm.h, pars0grm.c, lexyy.c: 2002-08-22 13:33:45 +03:00
pars0opt.h InnoDB: Revert most of ChangeSet@1.1772, as the debug functions may 2004-06-16 13:41:14 +03:00
pars0opt.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
pars0pars.h InnoDB: Portability fixes for warnings reported on IA-64 Windows 2005-03-07 12:03:33 +02:00
pars0pars.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
pars0sym.h InnoDB: Portability fixes for warnings reported on IA-64 Windows 2005-03-07 12:03:33 +02:00
pars0sym.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
pars0types.h InnoDB: Remove unnecessary code, mostly related to stored procedures 2004-03-31 10:30:14 +03:00
que0que.h Many files: 2005-03-16 00:34:15 +02:00
que0que.ic Cset exclude: marko@hundin.mysql.fi|ChangeSet|20040316101802|63386 2004-06-17 14:01:56 +03:00
que0types.h Many files: 2003-10-07 17:28:59 +03:00
read0read.h A fix and a test case for Bug#12243 "MySQL Server crashes with 2 2005-08-10 18:36:13 +04:00
read0read.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
read0types.h Implement MySQL framework to support consistent read views in 2005-07-22 14:10:03 +03:00
rem0cmp.h InnoDB: Fix some bugs in the new record format. (Bug #7493) 2004-12-28 01:34:52 +02:00
rem0cmp.ic InnoDB: Fix some bugs in the new record format. (Bug #7493) 2004-12-28 01:34:52 +02:00
rem0rec.h InnoDB: Correct a function comment. 2005-06-22 12:02:31 +03:00
rem0rec.ic InnoDB: Correct a function comment. 2005-06-22 12:02:31 +03:00
rem0types.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0ins.h Cset exclude: marko@hundin.mysql.fi|ChangeSet|20040311211202|05613 2004-06-17 13:25:06 +03:00
row0ins.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0mysql.h Many files: 2005-07-01 20:44:35 +03:00
row0mysql.ic Many files: 2005-03-16 00:34:15 +02:00
row0purge.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0purge.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0row.h Many files: 2004-12-02 19:45:07 +02:00
row0row.ic Many files: 2004-12-02 19:45:07 +02:00
row0sel.h Many files: 2004-11-26 00:12:50 +02:00
row0sel.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
row0types.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0uins.h InnoDB cleanup: fixing buffer overflows and quoting of quotes 2004-04-01 16:51:34 +03:00
row0uins.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0umod.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0umod.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0undo.h InnoDB cleanup: fixing buffer overflows and quoting of quotes 2004-04-01 16:51:34 +03:00
row0undo.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
row0upd.h Many files: 2004-12-02 19:45:07 +02:00
row0upd.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
row0vers.h InnoDB: optimize SELECT performance 2005-03-07 15:23:06 +02:00
row0vers.ic Many files: 2004-12-02 19:45:07 +02:00
srv0que.h srv0que.c: 2004-06-17 12:35:04 +03:00
srv0srv.h InnoDB: Make the srv_thread_concurrency checks more consistent. 2005-07-06 09:38:31 +03:00
srv0srv.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
srv0start.h InnoDB: Exclude code from InnoDB Hot Backup builds 2005-02-04 16:25:13 +02:00
sync0arr.h Merge 2004-10-08 15:43:27 +03:00
sync0arr.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
sync0rw.h sync0sync.h, sync0rw.h: 2005-01-03 21:27:17 +01:00
sync0rw.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
sync0sync.h sync0sync.c, sync0sync.h: 2005-07-21 18:05:10 +02:00
sync0sync.ic InnoDB: Exclude code from InnoDB Hot Backup builds 2005-02-04 16:25:13 +02:00
sync0types.h Added max_user_connections 2001-02-20 22:34:47 +02:00
thr0loc.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
thr0loc.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
trx0purge.h Many files: 2002-10-29 23:16:46 +02:00
trx0purge.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
trx0rec.h Many files: 2004-12-02 19:45:07 +02:00
trx0rec.ic srv0srv.h Support raw disk partitions as data files 2001-08-04 19:36:14 +03:00
trx0roll.h WL#1967 2005-02-01 19:48:05 +00:00
trx0roll.ic Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
trx0rseg.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
trx0rseg.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
trx0sys.h Backport innodb_max_purge_lag from 4.1 2004-10-27 13:33:11 +03:00
trx0sys.ic XA (not completely polished out yet) 2005-01-16 13:16:23 +01:00
trx0trx.h Many files: 2005-08-03 17:09:21 +03:00
trx0trx.ic trx0trx.h, trx0trx.ic, row0mysql.c: 2005-07-01 22:53:08 +03:00
trx0types.h Many files: 2003-06-15 01:04:28 +03:00
trx0undo.h trx0undo.h, trx0undo.c, trx0trx.c, trx0roll.c: 2005-02-25 22:35:33 +02:00
trx0undo.ic Allow UNIV_SYNC_DEBUG to be disabled while UNIV_DEBUG is enabled 2004-03-12 17:14:51 +02:00
trx0xa.h trx0xa.h: 2004-12-02 17:40:50 +02:00
univ.i innobase/include/univ.i: Added some comments. 2005-06-10 12:29:35 +03:00
usr0sess.h Cset exclude: marko@hundin.mysql.fi|ChangeSet|20040525171209|56870 2004-06-17 11:57:45 +03:00
usr0sess.ic Remove unneeded module "com" 2004-03-11 12:55:28 +02:00
usr0types.h Remove unneeded module "com" 2004-03-11 12:55:28 +02:00
ut0byte.h Many files: 2004-12-02 19:45:07 +02:00
ut0byte.ic Many files: 2004-12-02 19:45:07 +02:00
ut0dbg.h InnoDB: Fix ut0dbg compilation errors on NetWare 2005-06-16 15:00:25 +03:00
ut0lst.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
ut0mem.h Many files: 2004-11-26 00:12:50 +02:00
ut0mem.ic InnoDB: Fix ALTER TABLE t DISCARD TABLESPACE (Bug #5851) 2004-10-04 20:38:23 +03:00
ut0rnd.h InnoDB cleanup: Add const qualifiers to many char* arguments 2004-05-17 14:40:31 +03:00
ut0rnd.ic InnoDB: Some low-level optimizations made based on OProfile results. 2005-04-22 14:04:18 +03:00
ut0sort.h Added Innobase to source distribution 2001-02-17 14:19:19 +02:00
ut0ut.h InnoDB: Fix compiler warnings and some bad formatting introduced 2005-01-05 12:22:04 +02:00
ut0ut.ic Many files: 2003-10-07 17:28:59 +03:00