mariadb/storage/innobase/include
Timothy Smith 220ee82cb7 Apply InnoDB snapshot innodb-5.1-2858, part 7.
A follow-up fix for Bug 38839, which exposed a pre-existing bug in the
autoinc handling.

Detailed revision comments:

r2722 | sunny | 2008-10-04 02:48:04 +0300 (Sat, 04 Oct 2008) | 18 lines
branches/5.1: This bug has always existed but was masked by other errors. The
fix for bug# 38839 triggered this bug. When the offset and increment are > 1
we need to calculate the next value taking into consideration the two
variables. Previously we simply assumed they were 1 particularly offset was
never used. MySQL does its own calculation and that's probably why it seemed
to work in the past. We would return what we thought was the correct next
value and then MySQL would recalculate the actual value from that and return
it to the caller (e.g., handler::write_row()). Several new tests have been
added that try and catch some edge cases. The tests exposed a wrap around
error in MySQL next value calculation which was filed as bug 39828. The tests
will need to be updated once MySQL fix that bug.

One good side effect of this fix is that dict_table_t size has been
reduced by 8 bytes because we have moved the autoinc_increment field to
the row_prebuilt_t structure. See review-board for a detailed discussion.

rb://3
2008-12-14 13:42:37 -07:00
..
btr0btr.h Applied innodb-5.1-ss1004 2006-11-09 05:01:19 +01:00
btr0btr.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
btr0cur.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
btr0cur.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
btr0pcur.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
btr0pcur.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
btr0sea.h Complete application of InnoDB snapshot innodb-5.1-ss2545. 2008-12-14 12:25:33 -07:00
btr0sea.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
btr0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
buf0buf.h Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for 2008-08-19 18:37:41 -06:00
buf0buf.ic Apply snapshot innodb-51-ss1644 2007-07-24 19:34:31 -06:00
buf0flu.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
buf0flu.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
buf0lru.h Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
buf0lru.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
buf0rea.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
buf0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
data0data.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
data0data.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
data0type.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
data0type.ic Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots. 2007-01-04 19:51:34 -07:00
data0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
db0err.h Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07:00
dict0boot.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
dict0boot.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
dict0crea.h Applied innodb-5.1-ss1004 2006-11-09 05:01:19 +01:00
dict0crea.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
dict0dict.h Apply innodb-5.1-ss2360 snapshot 2008-03-27 02:40:45 +01:00
dict0dict.ic Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
dict0load.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
dict0load.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
dict0mem.h Apply InnoDB snapshot innodb-5.1-2858, part 7. 2008-12-14 13:42:37 -07:00
dict0mem.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
dict0types.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
dyn0dyn.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
dyn0dyn.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
eval0eval.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
eval0eval.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
eval0proc.h Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
eval0proc.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
fil0fil.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
fsp0fsp.h Apply snapshot innodb-51-ss1644 2007-07-24 19:34:31 -06:00
fsp0fsp.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
fut0fut.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
fut0fut.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
fut0lst.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
fut0lst.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
ha0ha.h Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots. 2007-01-04 19:51:34 -07:00
ha0ha.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
ha_prototypes.h Apply InnoDB snapshot innodb-5.1-ss2637, part 1. Fixes 2008-12-14 12:28:19 -07:00
hash0hash.h Merge mysql.com:/home/kent/bk/tmp2/mysql-5.0-build 2007-01-15 10:37:27 +01:00
hash0hash.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ibuf0ibuf.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
ibuf0ibuf.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
ibuf0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
lock0iter.h Apply snapshot innodb-51-ss1644: Part #2. 2007-07-25 13:29:57 -06:00
lock0lock.h Apply InnoDB snapshot innodb-5.1-ss2858, part 2. Fixes 2008-12-14 13:00:37 -07:00
lock0lock.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
lock0priv.h Apply snapshot innodb-51-ss1644: Part #2. 2007-07-25 13:29:57 -06:00
lock0priv.ic Apply snapshot innodb-51-ss1644: Part #2. 2007-07-25 13:29:57 -06:00
lock0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
log0log.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
log0log.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
log0recv.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
log0recv.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mach0data.h Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for 2008-08-19 18:37:41 -06:00
mach0data.ic Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for 2008-08-19 18:37:41 -06:00
mem0dbg.h Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07:00
mem0dbg.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
mem0mem.h Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
mem0mem.ic Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07:00
mem0pool.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
mem0pool.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mtr0log.h Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 2005-06-21 08:49:21 +02:00
mtr0log.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
mtr0mtr.h Apply InnoDB snapshot ss923 2006-10-20 12:36:15 -06:00
mtr0mtr.ic Apply InnoDB snapshot ss923 2006-10-20 12:36:15 -06:00
mtr0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
os0file.h Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
os0proc.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
os0proc.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
os0sync.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
os0sync.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
os0thread.h Applied innodb-5.1-ss492 snapshot. 2006-04-26 08:30:37 +04:00
os0thread.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
page0cur.h Applied InnoDB snapshot innodb-5.1-ss2093 2007-11-20 12:23:18 -07:00
page0cur.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
page0page.h Apply snapshot innodb-51-ss1644 2007-07-24 19:34:31 -06:00
page0page.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
page0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
pars0grm.h Applied innodb-5.1-ss660 snapshot. 2006-07-26 13:28:51 +04:00
pars0opt.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
pars0opt.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
pars0pars.h Applied innodb-5.1-ss660 snapshot. 2006-07-26 13:28:51 +04:00
pars0pars.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
pars0sym.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
pars0sym.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
pars0types.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
que0que.h Applied innodb-5.1-ss660 snapshot. 2006-07-26 13:28:51 +04:00
que0que.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
que0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
read0read.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
read0read.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
read0types.h Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.0 2005-08-05 18:01:34 -04:00
rem0cmp.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
rem0cmp.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
rem0rec.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
rem0rec.ic Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07:00
rem0types.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
row0ins.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0ins.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0mysql.h Apply InnoDB snapshot innodb-5.1-2858, part 7. 2008-12-14 13:42:37 -07:00
row0mysql.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0purge.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0purge.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0row.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0row.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0sel.h Apply innodb-5.1-ss2360 snapshot 2008-03-27 02:40:45 +01:00
row0sel.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0uins.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0uins.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0umod.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0umod.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0undo.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0undo.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0upd.h Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
row0upd.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
row0vers.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0vers.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
srv0que.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
srv0srv.h Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for 2008-08-19 18:37:41 -06:00
srv0srv.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
srv0start.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
sync0arr.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
sync0arr.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
sync0rw.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
sync0rw.ic Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
sync0sync.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
sync0sync.ic Apply InnoDB snapshot innodb-5.1-ss2858, part 3. 2008-12-14 13:27:13 -07:00
sync0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
thr0loc.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
thr0loc.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
trx0purge.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0purge.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0rec.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0rec.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
trx0roll.h Applied innodb-5.1-ss492 snapshot. 2006-04-26 08:30:37 +04:00
trx0roll.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
trx0rseg.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0rseg.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
trx0sys.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0sys.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
trx0trx.h Apply InnoDB snapshot innodb-5.1-ss1751. 2007-08-25 03:55:38 -06:00
trx0trx.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
trx0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0undo.h apply snapshot innodb-5.1-ss2387 2008-03-27 15:13:10 +01:00
trx0undo.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
trx0xa.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
univ.i Apply innodb-5.1-ss2360 snapshot 2008-03-27 02:40:45 +01:00
usr0sess.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
usr0sess.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
usr0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0byte.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0byte.ic Fixed compiler warnings 2007-02-23 13:13:55 +02:00
ut0dbg.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
ut0list.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
ut0list.ic Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
ut0lst.h Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
ut0mem.h Apply InnoDB snapshot innodb-5.1-ss1726. 2007-08-24 19:14:52 -06:00
ut0mem.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0rnd.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0rnd.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
ut0sort.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0ut.h Complete application of InnoDB snapshot innodb-5.1-ss2485, part 1. Fixes 2008-12-14 12:18:59 -07:00
ut0ut.ic Fixed compiler warnings 2007-02-23 13:13:55 +02:00
ut0vec.h Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
ut0vec.ic Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
ut0wqueue.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00