mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
0da158aa2f
Bugs fixed: - Bug #20791 valgrind errors in InnoDB Remove Valgrind warning of Bug #20791 : in new database creation, we read the doublewrite buffer magic number from uninitialized memory; the code worked because it was extremely unlikely that the memory would contain the magic number - Bug #21784 DROP TABLE crashes 5.1.12-pre if concurrent queries on the table remove update_thd() in ::store_lock() Also includes numerous coding style fixes, etc. See file-level comments for details. sql/ha_innodb.cc: Applied InnoDB 5.1 snapshot ss787. r755: Merge a patch from MySQL AB (Mats Kindal): Lock and unlock prepare_commit_mutex under the same conditions. r782: Fix bug #21784 of a crash in DROP TABLE with concurrent queries on the table storage/innobase/Makefile.am: Applied InnoDB 5.1 snapshot ss787. r772: Merge changes from MySQL AB: ChangeSet 2006/08/23 13:59:16-07:00 brian@zim.(none) This patch removes need for a innodb to have its own configure. storage/innobase/btr/btr0btr.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/btr/btr0cur.c: Applied InnoDB 5.1 snapshot ss787. r761: btr_cur_search_to_nth_level(): Document where cursor is left at in PAGE_CUR_LE searches. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/btr/btr0pcur.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/btr/btr0sea.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/buf/buf0buf.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/buf/buf0flu.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/buf/buf0lru.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). storage/innobase/buf/buf0rea.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/data/data0data.c: Applied InnoDB 5.1 snapshot ss787. r743: dfield_print_raw(): Make static. Print at most 1000 bytes to avoid excessive space usage of the error log. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/data/data0type.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/dict/dict0boot.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/dict/dict0crea.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/dict/dict0dict.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. r767: Remove dict_col_t::aux, which was only used when copying an index definition to the data dictionary cache. storage/innobase/dict/dict0load.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/dict/dict0mem.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/eval/eval0eval.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/eval/eval0proc.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/fil/fil0fil.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/fsp/fsp0fsp.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/fut/fut0lst.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/ha/ha0ha.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/ibuf/ibuf0ibuf.c: Applied InnoDB 5.1 snapshot ss787. r735: Remove all traces of the obsolete concept of replicate spaces. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/include/btr0btr.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/btr0cur.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/btr0cur.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/btr0pcur.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/buf0buf.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/buf0buf.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/buf0flu.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/buf0rea.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/data0data.h: Applied InnoDB 5.1 snapshot ss787. r743: dfield_print_raw(): Make static. Print at most 1000 bytes to avoid excessive space usage of the error log. storage/innobase/include/data0data.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/data0type.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/dict0boot.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/dict0dict.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/dict0mem.h: Applied InnoDB 5.1 snapshot ss787. r767: Remove dict_col_t::aux, which was only used when copying an index definition to the data dictionary cache. storage/innobase/include/eval0eval.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/fut0lst.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/ibuf0ibuf.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/lock0lock.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/log0log.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/log0recv.h: Applied InnoDB 5.1 snapshot ss787. r735: Remove all traces of the obsolete concept of replicate spaces. storage/innobase/include/mach0data.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/mem0mem.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/include/mtr0log.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/mtr0mtr.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/os0file.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/page0cur.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/page0page.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). storage/innobase/include/que0que.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/read0read.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/rem0cmp.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/rem0rec.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/include/row0mysql.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/row0purge.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/row0row.h: Applied InnoDB 5.1 snapshot ss787. r777: Remove unused code. row_build(): Remove type==ROW_COPY_ALSO_EXTERNALS, because it is never passed. storage/innobase/include/row0row.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/row0sel.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/row0sel.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/row0undo.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/row0upd.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/sync0rw.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/sync0rw.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/sync0sync.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/sync0sync.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/trx0rec.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/trx0rseg.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/include/trx0sys.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/include/trx0trx.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/trx0trx.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/trx0undo.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/trx0undo.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/trx0xa.h: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/univ.i: Applied InnoDB 5.1 snapshot ss787. r772: Merge changes from MySQL AB: ChangeSet 2006/08/23 13:59:16-07:00 brian@zim.(none)· This patch removes need for a innodb to have its own configure.· univ.i: Replace ../ib_config.h with config.h. r777: Remove unused code. univ.i: Do not #define YYDEBUG, because it is only useful for debugging the grammar of the Bison-generated InnoDB SQL parser. storage/innobase/include/ut0byte.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/include/ut0rnd.ic: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/lock/lock0lock.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/log/log0log.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/log/log0recv.c: Applied InnoDB 5.1 snapshot ss787. r735: Remove all traces of the obsolete concept of replicate spaces. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/mem/mem0dbg.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/mem/mem0mem.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/mem/mem0pool.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/mtr/mtr0log.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/mtr/mtr0mtr.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/os/os0file.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/os/os0proc.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/os/os0sync.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/os/os0thread.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/page/page0cur.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/page/page0page.c: Applied InnoDB 5.1 snapshot ss787. r761: btr_cur_search_to_nth_level(): Document where cursor is left at in PAGE_CUR_LE searches. r762: page_validate(): Add missing space to error print, for real this time, following an error in r761. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/pars/pars0opt.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/pars/pars0pars.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/que/que0que.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/read/read0read.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/rem/rem0cmp.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/rem/rem0rec.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/row/row0ins.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/row/row0mysql.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/row/row0purge.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/row/row0row.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. r777: Remove unused code. row_build(): Remove type==ROW_COPY_ALSO_EXTERNALS, because it is never passed. storage/innobase/row/row0sel.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/row/row0uins.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/row/row0umod.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/row/row0undo.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/row/row0upd.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/row/row0vers.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/srv/srv0srv.c: Applied InnoDB 5.1 snapshot ss787. r741: srv_master_thread(): Add OS_THREAD_DUMMY_RETURN to get rid of a compiler warning "no return value from a function returning non-void". r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. r780: Add a warning comment above the place where we set srv_main_thread_op_info to "waiting for server activity" that mentions that this string should not be changed. storage/innobase/srv/srv0start.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/sync/sync0arr.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/sync/sync0rw.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/sync/sync0sync.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/thr/thr0loc.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/trx/trx0purge.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/trx/trx0rec.c: Applied InnoDB 5.1 snapshot ss787. r735: Remove all traces of the obsolete concept of replicate spaces. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/trx/trx0roll.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/trx/trx0rseg.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/trx/trx0sys.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/trx/trx0trx.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). r765: Split lines before binary operators, not after them. storage/innobase/trx/trx0undo.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/ut/ut0byte.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/ut/ut0dbg.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r764: Split lines before an opening parenthesis, not after one. Replace some printf(...) in debug builds with fprintf(stderr, ...). storage/innobase/ut/ut0mem.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/ut/ut0ut.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). r765: Split lines before binary operators, not after them. storage/innobase/ut/ut0vec.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files). storage/innobase/ut/ut0wqueue.c: Applied InnoDB 5.1 snapshot ss787. r763: Reindent the code base (except for ha_innodb.{cc,h} and generated parser and lexer files).
182 lines
4.9 KiB
Text
182 lines
4.9 KiB
Text
/******************************************************
|
|
General row routines
|
|
|
|
(c) 1996 Innobase Oy
|
|
|
|
Created 4/20/1996 Heikki Tuuri
|
|
*******************************************************/
|
|
|
|
#include "dict0dict.h"
|
|
#include "rem0rec.h"
|
|
#include "trx0undo.h"
|
|
|
|
/*************************************************************************
|
|
Reads the trx id or roll ptr field from a clustered index record: this function
|
|
is slower than the specialized inline functions. */
|
|
|
|
dulint
|
|
row_get_rec_sys_field(
|
|
/*==================*/
|
|
/* out: value of the field */
|
|
ulint type, /* in: DATA_TRX_ID or DATA_ROLL_PTR */
|
|
rec_t* rec, /* in: record */
|
|
dict_index_t* index, /* in: clustered index */
|
|
const ulint* offsets);/* in: rec_get_offsets(rec, index) */
|
|
/*************************************************************************
|
|
Sets the trx id or roll ptr field in a clustered index record: this function
|
|
is slower than the specialized inline functions. */
|
|
|
|
void
|
|
row_set_rec_sys_field(
|
|
/*==================*/
|
|
/* out: value of the field */
|
|
ulint type, /* in: DATA_TRX_ID or DATA_ROLL_PTR */
|
|
rec_t* rec, /* in: record */
|
|
dict_index_t* index, /* in: clustered index */
|
|
const ulint* offsets,/* in: rec_get_offsets(rec, index) */
|
|
dulint val); /* in: value to set */
|
|
|
|
/*************************************************************************
|
|
Reads the trx id field from a clustered index record. */
|
|
UNIV_INLINE
|
|
dulint
|
|
row_get_rec_trx_id(
|
|
/*===============*/
|
|
/* out: value of the field */
|
|
rec_t* rec, /* in: record */
|
|
dict_index_t* index, /* in: clustered index */
|
|
const ulint* offsets)/* in: rec_get_offsets(rec, index) */
|
|
{
|
|
ulint offset;
|
|
|
|
ut_ad(index->type & DICT_CLUSTERED);
|
|
ut_ad(rec_offs_validate(rec, index, offsets));
|
|
|
|
offset = index->trx_id_offset;
|
|
|
|
if (offset) {
|
|
return(trx_read_trx_id(rec + offset));
|
|
} else {
|
|
return(row_get_rec_sys_field(DATA_TRX_ID,
|
|
rec, index, offsets));
|
|
}
|
|
}
|
|
|
|
/*************************************************************************
|
|
Reads the roll pointer field from a clustered index record. */
|
|
UNIV_INLINE
|
|
dulint
|
|
row_get_rec_roll_ptr(
|
|
/*=================*/
|
|
/* out: value of the field */
|
|
rec_t* rec, /* in: record */
|
|
dict_index_t* index, /* in: clustered index */
|
|
const ulint* offsets)/* in: rec_get_offsets(rec, index) */
|
|
{
|
|
ulint offset;
|
|
|
|
ut_ad(index->type & DICT_CLUSTERED);
|
|
ut_ad(rec_offs_validate(rec, index, offsets));
|
|
|
|
offset = index->trx_id_offset;
|
|
|
|
if (offset) {
|
|
return(trx_read_roll_ptr(rec + offset + DATA_TRX_ID_LEN));
|
|
} else {
|
|
return(row_get_rec_sys_field(DATA_ROLL_PTR,
|
|
rec, index, offsets));
|
|
}
|
|
}
|
|
|
|
/*************************************************************************
|
|
Writes the trx id field to a clustered index record. */
|
|
UNIV_INLINE
|
|
void
|
|
row_set_rec_trx_id(
|
|
/*===============*/
|
|
rec_t* rec, /* in: record */
|
|
dict_index_t* index, /* in: clustered index */
|
|
const ulint* offsets,/* in: rec_get_offsets(rec, index) */
|
|
dulint trx_id) /* in: value of the field */
|
|
{
|
|
ulint offset;
|
|
|
|
ut_ad(index->type & DICT_CLUSTERED);
|
|
ut_ad(rec_offs_validate(rec, index, offsets));
|
|
|
|
offset = index->trx_id_offset;
|
|
|
|
if (offset) {
|
|
trx_write_trx_id(rec + offset, trx_id);
|
|
} else {
|
|
row_set_rec_sys_field(DATA_TRX_ID,
|
|
rec, index, offsets, trx_id);
|
|
}
|
|
}
|
|
|
|
/*************************************************************************
|
|
Sets the roll pointer field in a clustered index record. */
|
|
UNIV_INLINE
|
|
void
|
|
row_set_rec_roll_ptr(
|
|
/*=================*/
|
|
rec_t* rec, /* in: record */
|
|
dict_index_t* index, /* in: clustered index */
|
|
const ulint* offsets,/* in: rec_get_offsets(rec, index) */
|
|
dulint roll_ptr)/* in: value of the field */
|
|
{
|
|
ulint offset;
|
|
|
|
ut_ad(index->type & DICT_CLUSTERED);
|
|
ut_ad(rec_offs_validate(rec, index, offsets));
|
|
|
|
offset = index->trx_id_offset;
|
|
|
|
if (offset) {
|
|
trx_write_roll_ptr(rec + offset + DATA_TRX_ID_LEN, roll_ptr);
|
|
} else {
|
|
row_set_rec_sys_field(DATA_ROLL_PTR,
|
|
rec, index, offsets, roll_ptr);
|
|
}
|
|
}
|
|
|
|
/***********************************************************************
|
|
Builds from a secondary index record a row reference with which we can
|
|
search the clustered index record. */
|
|
UNIV_INLINE
|
|
void
|
|
row_build_row_ref_fast(
|
|
/*===================*/
|
|
dtuple_t* ref, /* in: typed data tuple where the
|
|
reference is built */
|
|
const ulint* map, /* in: array of field numbers in rec
|
|
telling how ref should be built from
|
|
the fields of rec */
|
|
rec_t* rec, /* in: record in the index; must be
|
|
preserved while ref is used, as we do
|
|
not copy field values to heap */
|
|
const ulint* offsets)/* in: array returned by rec_get_offsets() */
|
|
{
|
|
dfield_t* dfield;
|
|
byte* field;
|
|
ulint len;
|
|
ulint ref_len;
|
|
ulint field_no;
|
|
ulint i;
|
|
|
|
ut_ad(rec_offs_validate(rec, NULL, offsets));
|
|
ref_len = dtuple_get_n_fields(ref);
|
|
|
|
for (i = 0; i < ref_len; i++) {
|
|
dfield = dtuple_get_nth_field(ref, i);
|
|
|
|
field_no = *(map + i);
|
|
|
|
if (field_no != ULINT_UNDEFINED) {
|
|
|
|
field = rec_get_nth_field(rec, offsets,
|
|
field_no, &len);
|
|
dfield_set_data(dfield, field, len);
|
|
}
|
|
}
|
|
}
|