Commit graph

300 commits

Author SHA1 Message Date
unknown
d0dbd41a3b After review fixes (Bug #5682)
innobase/include/data0type.ic:
  dtype_get_fixed_size(), dtype_get_min_size(): Do not check
  prtype, mbminlen and mbmaxlen for types other than DATA_MYSQL,
  as that is the only type that can hold fixed-length strings of
  variable-length objects (UTF-8 encoded characters).
innobase/row/row0sel.c:
  row_sel_field_store_in_mysql_format(): Document which fields of
  templ will be used.  Add 0x20 padding only to DATA_MYSQL fields.
  Change related debug assertions to real assertions for now, until
  5.0 becomes generally available.  Check with assertion that all
  data types handled in the catch-all branch are appropriate.
2005-02-17 18:40:45 +02:00
unknown
6075463f03 InnoDB: Make CREATE TABLE return error when the minimum row length
exceeds the maximum record size.  (Bug #5682)


innobase/data/data0type.c:
  Remove function dtype_str_needs_mysql_cmp().
  Document dtype_get_at_most_n_mbchars().
  dtype_get_at_most_n_mbchars(): Use mbminlen and mbmaxlen.
innobase/dict/dict0crea.c:
  dict_build_table_def_step(): Reject if minimum row size is too big.
innobase/include/data0type.h:
  Remove dtype_str_needs_mysql_cmp().
  Document dtype_get_at_most_n_mbchars().
  Add dtype_get_min_size().
innobase/include/data0type.ic:
  Add dtype_get_min_size().
innobase/include/row0mysql.h:
  row_mysql_store_col_in_innobase_format(): Add parameter comp,
  as we will only truncate UTF-8 CHAR(n) columns in row_format=compact.
innobase/include/row0mysql.ic:
  row_mysql_store_col_in_innobase_format(): Add parameter comp,
  as we will only truncate UTF-8 CHAR(n) columns in row_format=compact.
innobase/row/row0mysql.c:
  Pass parameter comp to row_mysql_store_col_in_innobase_format().
innobase/row/row0sel.c:
  Pass parameter comp to row_mysql_store_col_in_innobase_format().
  row_sel_field_store_in_mysql_format(): Undo the stripping of
  UTF-8 CHAR(n) columns by padding with spaces.
2005-02-17 17:15:29 +02:00
unknown
cc2843e2fa Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0
into hundin.mysql.fi:/home/marko/k/mysql-5.0


sql/ha_innodb.cc:
  Auto merged
2005-02-14 17:23:12 +02:00
unknown
602d9a0329 row0mysql.c:
Fix memory corruption bug reported by Georg Richter: if one created a table whose primary key contained at least 2 column prefixes, that could corrupt the memory heap of prebuilt_t


innobase/row/row0mysql.c:
  Fix memory corruption bug reported by Georg Richter: if one created a table whose primary key contained at least 2 column prefixes, that could corrupt the memory heap of prebuilt_t
2005-02-13 20:48:02 +02:00
unknown
f9a394dbdd InnoDB: Fix Bug #7350 without hard-coding charset-collation numbers.
innobase/data/data0type.c:
  Add mbminlen and mbmaxlen to dtype_t
innobase/include/data0type.h:
  Add mbminlen and mbmaxlen to dtype_t
  Add dtype_get_mbminlen() and dtype_get_mbmaxlen()
innobase/include/data0type.ic:
  Add dtype_set_mblen()
  Add dtype_get_mbminlen() and dtype_get_mbmaxlen()
  Replace innobase_is_mb_cset() with innobase_get_mb_cset()
innobase/include/row0mysql.h:
  Add mbminlen and mbmaxlen
innobase/include/row0mysql.ic:
  Detect UCS2 collations based on mbminlen
innobase/row/row0sel.c:
  Detect UCS2 collations based on mbminlen
sql/ha_innodb.cc:
  Replace innobase_is_mb_cset() with innobase_get_mb_cset()
  build_template(): Initialize templ->mbminlen and templ->mbmaxlen
2005-02-08 16:41:34 +02:00
unknown
ed4dbd12d9 InnoDB: Exclude code from InnoDB Hot Backup builds
by adding #ifndef UNIV_HOTBACKUP and adjusting some function
declarations.


innobase/data/data0type.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/dict/dict0dict.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/dict/dict0load.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/include/data0type.ic:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/include/srv0srv.h:
  Introduce srv_init(), so that it can be called in InnoDB Hot Backup
innobase/include/srv0start.h:
  Introduce srv_add_path_separator_if_needed(), so that it can be
  invoked in InnoDB Hot Backup
innobase/include/sync0sync.h:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/include/sync0sync.ic:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/include/trx0trx.h:
  trx_recover_for_mysql(): replace uint with ulint, as uint is not
  declared in InnoDB Hot Backup
innobase/lock/lock0lock.c:
  Replace bool with ibool
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/row/row0ins.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/row/row0mysql.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/srv/srv0srv.c:
  Make srv_init() global, so that InnoDB Hot Backup can call it.
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/srv/srv0start.c:
  Make srv_add_path_separator_if_needed() global for InnoDB Hot Backup.
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/sync/sync0rw.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/sync/sync0sync.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/trx/trx0roll.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
innobase/trx/trx0trx.c:
  Replace uint with ulint, as uint is undeclared in InnoDB Hot Backup
innobase/ut/ut0ut.c:
  Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
2005-02-04 16:25:13 +02:00
unknown
bb0507fa5d Fixed a bug: deadlock without any locking, simple select and update (Bug #7975).
innobase/row/row0ins.c:
  If the SQL-query will update or replace duplicate key row we take X-lcok
  for duplicate row.
sql/ha_innodb.cc:
  INSERT ON DUPLICATE KEY UPDATE will also update duplicate key and we can
  take X-lock in this case for duplicate key records.
BitKeeper/etc/ignore:
  Added innobase/row/row0index.c to the ignore list
2005-02-03 10:54:38 +02:00
unknown
113ff8c9d9 InnoDB: Cleanups of TRUNCATE TABLE code
innobase/row/row0mysql.c:
  row_truncate_for_mysql(): Always lock the data dictionary.
  row_truncate_for_mysql(): Improve comments and diagnostic messages.
sql/ha_innodb.cc:
  delete_all_rows(): Replace innobase_commit_low()
  with innobase_commit(). (partial fix to Bug #8151)
2005-01-31 10:35:56 +02:00
unknown
264f83f076 InnoDB: Allow concurrent TRUNCATE and INSERT on a table. (Bug #8144)
innobase/include/rem0rec.ic:
  Improve formatting of comments
innobase/include/trx0trx.h:
  dict_operation: document the effect of setting the flag
innobase/row/row0mysql.c:
  Do not set the dict_operation flag. (Bug #8144)
  Allow MySQL to have open handles to the table being truncated.
sql/ha_innodb.cc:
  store_lock(): Do not weaken TL_WRITE locks taken by TRUNCATE TABLE.
2005-01-28 12:18:33 +02:00
unknown
892adb947e One more after merge fix of Jan Lindström's changeset in 4.1
innobase/row/row0ins.c:
  One more after merge fix
2005-01-25 14:49:30 +02:00
unknown
2ecd83a37b After merge fixes
innobase/include/univ.i:
  Auto merged
innobase/row/row0ins.c:
  After merge fixes of Jan Lindström's patch to 4.1
2005-01-25 14:44:34 +02:00
unknown
5a37fffdac Merge jlindstrom@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/jan/mysql-4.1
2005-01-17 09:17:48 +02:00
unknown
2f246d2ff6 Merge with global tree
BitKeeper/etc/ignore:
  auto-union
Build-tools/Do-compile:
  Auto merged
configure.in:
  Auto merged
innobase/include/row0mysql.h:
  Auto merged
innobase/os/os0file.c:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/ctype_latin1_de.result:
  Auto merged
mysql-test/r/ctype_tis620.result:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/r/ctype_ujis.result:
  Auto merged
mysql-test/r/ctype_utf8.result:
  Auto merged
mysql-test/r/ps_1general.result:
  Auto merged
mysql-test/r/show_check.result:
  Auto merged
mysql-test/r/type_float.result.es:
  Auto merged
mysql-test/r/type_float.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/ps_1general.test:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
ndb/src/kernel/vm/Configuration.cpp:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/field.cc:
  Auto merged
sql/filesort.cc:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
strings/ctype-big5.c:
  Auto merged
strings/ctype-bin.c:
  Auto merged
strings/ctype-czech.c:
  Auto merged
strings/ctype-gbk.c:
  Auto merged
strings/ctype-latin1.c:
  Auto merged
strings/ctype-mb.c:
  Auto merged
strings/ctype-simple.c:
  Auto merged
strings/ctype-sjis.c:
  Auto merged
strings/ctype-tis620.c:
  Auto merged
strings/ctype-uca.c:
  Auto merged
strings/ctype-ucs2.c:
  Auto merged
strings/ctype-utf8.c:
  Auto merged
strings/ctype-win1250ch.c:
  Auto merged
sql/sql_show.cc:
  No changes
strings/ctype-cp932.c:
  No changes
support-files/mysql.spec.sh:
  No changes
2005-01-15 14:39:16 +02:00
unknown
0cbd58c52b Merge with 4.1
BitKeeper/etc/ignore:
  auto-union
Build-tools/Do-compile:
  Auto merged
client/mysqladmin.cc:
  Auto merged
heap/hp_create.c:
  Auto merged
heap/hp_write.c:
  Auto merged
include/my_sys.h:
  Auto merged
innobase/data/data0type.c:
  Auto merged
innobase/include/row0mysql.h:
  Auto merged
innobase/os/os0file.c:
  Auto merged
innobase/rem/rem0cmp.c:
  Auto merged
innobase/row/row0sel.c:
  Auto merged
innobase/srv/srv0start.c:
  Auto merged
mysql-test/r/ctype_latin1_de.result:
  Auto merged
mysql-test/r/ctype_tis620.result:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/r/ctype_ujis.result:
  Auto merged
mysql-test/r/ctype_utf8.result:
  Auto merged
mysql-test/r/func_gconcat.result:
  Auto merged
mysql-test/r/func_sapdb.result:
  Auto merged
mysql-test/r/show_check.result:
  Auto merged
mysql-test/r/type_float.result.es:
  Auto merged
mysql-test/r/type_float.result:
  Auto merged
mysql-test/r/type_timestamp.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/func_sapdb.test:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
mysql-test/t/type_float.test:
  Auto merged
mysql-test/t/type_timestamp.test:
  Auto merged
mysys/mf_iocache.c:
  Auto merged
ndb/src/kernel/vm/Configuration.cpp:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/field.cc:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/item_sum.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
strings/ctype-big5.c:
  Auto merged
strings/ctype-bin.c:
  Auto merged
strings/ctype-czech.c:
  Auto merged
strings/ctype-gbk.c:
  Auto merged
strings/ctype-latin1.c:
  Auto merged
strings/ctype-mb.c:
  Auto merged
strings/ctype-simple.c:
  Auto merged
strings/ctype-sjis.c:
  Auto merged
strings/ctype-tis620.c:
  Auto merged
strings/ctype-uca.c:
  Auto merged
strings/ctype-ucs2.c:
  Auto merged
strings/ctype-utf8.c:
  Auto merged
strings/ctype-win1250ch.c:
  Auto merged
configure.in:
  Use local values
mysql-test/r/ps_1general.result:
  Update results
mysql-test/t/func_gconcat.test:
  no changes
mysql-test/t/ps_1general.test:
  Use local code
ndb/src/common/util/version.c:
  Use local code
sql/filesort.cc:
  Empty line changes
sql/ha_heap.cc:
  Merge
sql/item_timefunc.cc:
  Keep local code
sql/mysql_priv.h:
  Update to 5.0
sql/sql_show.cc:
  Hand merge
support-files/mysql.spec.sh:
  No changes
2005-01-15 14:09:45 +02:00
unknown
4db9aaeea7 InnoDB: Remove redundant page_no field from dict_index_t.
This completes the patch for fast TRUNCATE TABLE.


innobase/dict/dict0boot.c:
  dict_boot(): Add page_no parameter to dict_index_add_to_cache()
innobase/dict/dict0crea.c:
  Remove dict_index_t:page_no; add ind_node_t:page_no
innobase/dict/dict0dict.c:
  dict_index_add_to_cache(): Add parameter page_no
  dict_tree_create(): Add parameter page_no
innobase/dict/dict0load.c:
  dict_load_indexes(): Add page_no to dict_index_add_to_cache() call
innobase/ibuf/ibuf0ibuf.c:
  ibuf_data_init_for_space(): Move page_no to dict_index_add_to_cache()
innobase/include/dict0crea.h:
  ind_node_t: Add page_no field
innobase/include/dict0dict.h:
  dict_index_add_to_cache(): Add page_no
  dict_tree_create(): Add page_no
innobase/include/dict0mem.h:
  dict_index_t: Remove page_no, as dict_tree_t has "page" field
innobase/row/row0mysql.c:
  row_truncate_table_for_mysql(): Improve the comments
2005-01-14 13:54:23 +02:00
unknown
c277421d06 Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0
into hundin.mysql.fi:/home/marko/j/mysql-5.0


innobase/include/row0mysql.h:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_innodb.h:
  Auto merged
2005-01-14 13:06:46 +02:00
unknown
4017b57bbb row0mysql.c:
row_truncate_table_for_mysql(): Reset the auto_increment counter.


innobase/row/row0mysql.c:
  row_truncate_table_for_mysql(): Reset the auto_increment counter.
2005-01-13 15:14:11 +02:00
unknown
4596579c99 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/dbdata/psergey/mysql-5.0-bug5401-2


sql/opt_range.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
2005-01-12 23:22:12 +03:00
unknown
871fdda191 ha_innodb.cc:
Add comments about why the InnoDB latching order is obeyed also for the MySQL query cache mutex; add an error printf if that is not the case
sync0sync.h:
  Assign sync0sync.h ranks also for the MySQL query cache mutex and the MySQL binlog mutex; the latching order must be obeyed also for these
row0ins.c:
  Add a comment why the query cache invalidate operation cannot deadlock in a cascaded FOREIGN KEY operation


innobase/row/row0ins.c:
  Add a comment why the query cache invalidate operation cannot deadlock in a cascaded FOREIGN KEY operation
innobase/include/sync0sync.h:
  Assign sync0sync.h ranks also for the MySQL query cache mutex and the MySQL binlog mutex; the latching order must be obeyed also for these
sql/ha_innodb.cc:
  Add comments about why the InnoDB latching order is obeyed also for the MySQL query cache mutex; add an error printf if that is not the case
2005-01-12 18:25:39 +02:00
unknown
b895e87772 Merge marko@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/k/mysql-4.1


innobase/include/row0mysql.h:
  Auto merged
innobase/row/row0sel.c:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
2005-01-12 14:08:25 +02:00
unknown
ca8fcc0026 Take a shared record lock (LOCK_REC_NOT_GAP) for a matching record in the foreign
key check because we can allow inserts into gaps (Support Issue #4317).


innobase/row/row0ins.c:
  Take a shared record lock (LOCK_REC_NOT_GAP) for a matching record in the foreign
  key check because we can allow inserts into gaps.
2005-01-12 10:36:50 +02:00
unknown
5861c6dc17 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/dbdata/psergey/mysql-5.0-bug5401-2


innobase/include/row0mysql.h:
  Auto merged
innobase/row/row0sel.c:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
2005-01-12 09:05:11 +03:00
unknown
c8807157ff BUG#5401: post-review fixes 2005-01-12 08:39:15 +03:00
unknown
ff4507a9de InnoDB: Implement fast TRUNCATE TABLE (Bug #7150)
innobase/dict/dict0boot.c:
  Added DICT_SYS_INDEXES_TYPE_FIELD
innobase/dict/dict0crea.c:
  Added dict_truncate_index_tree()
innobase/include/dict0boot.h:
  Added DICT_SYS_INDEXES_TYPE_FIELD
innobase/include/dict0crea.h:
  Added dict_truncate_index_tree()
innobase/include/row0mysql.h:
  Added row_truncate_table_for_mysql()
innobase/row/row0mysql.c:
  Added row_truncate_table_for_mysql()
sql/ha_innodb.cc:
  Added ha_innobase::delete_all_rows() in order to
  implement fast TRUNCATE TABLE
sql/ha_innodb.h:
  Added ha_innobase::delete_all_rows() in order to
  implement fast TRUNCATE TABLE
2005-01-11 16:28:07 +02:00
unknown
9c92a25524 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0


mysql-test/r/user_limits.result:
  Auto merged
mysql-test/t/user_limits.test:
  Auto merged
2004-12-31 18:01:00 +01:00
unknown
b99bea6704 manually merged
configure.in:
  Auto merged
client/mysqldump.c:
  Auto merged
innobase/buf/buf0rea.c:
  Auto merged
innobase/dict/dict0load.c:
  Auto merged
innobase/fil/fil0fil.c:
  Auto merged
innobase/include/fil0fil.h:
  Auto merged
innobase/include/row0mysql.h:
  Auto merged
innobase/include/trx0trx.h:
  Auto merged
innobase/os/os0file.c:
  Auto merged
innobase/row/row0ins.c:
  Auto merged
innobase/row/row0mysql.c:
  Auto merged
innobase/row/row0sel.c:
  Auto merged
innobase/srv/srv0start.c:
  Auto merged
innobase/trx/trx0trx.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/alter_table.result:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/r/func_str.result:
  Auto merged
mysql-test/r/grant.result:
  Auto merged
mysql-test/r/grant_cache.result:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/r/ndb_blob.result:
  Auto merged
mysql-test/r/ps_1general.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/timezone2.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/t/multi_update.test:
  Auto merged
mysql-test/t/mysqldump.test:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
ndb/src/ndbapi/NdbBlob.cpp:
  Auto merged
ndb/src/ndbapi/NdbConnection.cpp:
  Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Auto merged
ndb/src/ndbapi/NdbOperationDefine.cpp:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/ha_myisammrg.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/strfunc.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
vio/vio.c:
  Auto merged
vio/viosocket.c:
  Auto merged
2004-12-31 15:26:24 +01:00
unknown
6b39339874 row0upd.c:
Manually merge the little InnoDB bug fix from 4.1 to 5.0; Marko can then run tests on the fixed version


innobase/row/row0upd.c:
  Manually merge the little InnoDB bug fix from 4.1 to 5.0; Marko can then run tests on the fixed version
2004-12-31 15:14:17 +02:00
unknown
cd47cb56fd row0upd.c:
Fix a little bug in InnoDB: we looked at the physical size of a stored SQL NULL value from a wrong field in the index; this has probably caused no bugs visible to the user, only caused some extra space usage in some rare cases; we may later backport the fix to 4.0


innobase/row/row0upd.c:
  Fix a little bug in InnoDB: we looked at the physical size of a stored SQL NULL value from a wrong field in the index; this has probably caused no bugs visible to the user, only caused some extra space usage in some rare cases; we may later backport the fix to 4.0
2004-12-31 15:05:41 +02:00
unknown
c4c2c7bceb Merge bk-internal:/home/bk/mysql-5.0
into intelp4d.mysql.com:/users/vtkachenko/bk/mysql-5.0


BitKeeper/etc/logging_ok:
  auto-union
innobase/srv/srv0srv.c:
  Auto merged
mysql-test/r/variables.result:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/lex.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2004-12-31 09:00:34 +01:00
unknown
9e8f628d3d row0upd.c:
row_upd_clust_rec(): Call btr_cur_get_rec() after
  btr_pcur_restore_position(), not before.  (Bug #7598)


innobase/row/row0upd.c:
  row_upd_clust_rec(): Call btr_cur_get_rec() after
  btr_pcur_restore_position(), not before.
2004-12-31 00:46:33 +02:00
unknown
05fb4757f9 row0mysql.c:
Manually merge the latest FOREIGN KEY lock wait + DROP TABLE fix from 4.0


innobase/row/row0mysql.c:
  Manually merge the latest FOREIGN KEY lock wait + DROP TABLE fix from 4.0
2004-12-27 21:22:06 +02:00
unknown
030842edaa row0mysql.c:
Merge the two FOREIGN KEY bug fixes from 4.0, and add a TODO comment


innobase/row/row0mysql.c:
  Merge the two FOREIGN KEY bug fixes from 4.0, and add a TODO comment
2004-12-27 17:28:17 +02:00
unknown
5f6d8e6526 Merge hundin.mysql.fi:/home/heikki/mysql-4.0
into hundin.mysql.fi:/home/heikki/mysql-4.1


innobase/row/row0ins.c:
  Auto merged
innobase/row/row0mysql.c:
  Auto merged
2004-12-27 17:19:27 +02:00
unknown
a7b984d233 row0ins.c:
Fix bug: if we dropped a table where an INSERT was waiting for a lock to check a FOREIGN KEY constraint, then an assertion would fail in lock_reset_all_on_table(), since that operation assumes no waiting locks on the table or its records
row0mysql.c:
  Fix bug: InnoDB failed to drop a table in the background drop queue if the table was referenced by a foreign key constraint


innobase/row/row0mysql.c:
  Fix bug: InnoDB failed to drop a table in the background drop queue if the table was referenced by a foreign key constraint
innobase/row/row0ins.c:
  Fix bug: if we dropped a table where an INSERT was waiting for a lock to check a FOREIGN KEY constraint, then an assertion would fail in lock_reset_all_on_table(), since that operation assumes no waiting locks on the table or its records
2004-12-27 17:15:38 +02:00
unknown
92655f14d2 row0mysql.c:
Fix typo


innobase/row/row0mysql.c:
  Fix typo
2004-12-27 04:32:37 +02:00
unknown
1b7282e3e1 ha_innodb.cc, row0ins.c, fil0fil.c:
Correct typo


innobase/fil/fil0fil.c:
  Correct typo
innobase/row/row0ins.c:
  Correct typo
sql/ha_innodb.cc:
  Correct typo
2004-12-27 04:27:09 +02:00
unknown
708eebea8a Many files:
Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1


innobase/buf/buf0rea.c:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/include/dict0load.h:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/include/fil0fil.h:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/include/row0mysql.h:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/include/trx0trx.h:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/dict/dict0load.c:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/fil/fil0fil.c:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/row/row0ins.c:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/row/row0mysql.c:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/row/row0sel.c:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/srv/srv0start.c:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
innobase/trx/trx0trx.c:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
sql/ha_innodb.cc:
  Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
2004-12-27 04:10:25 +02:00
unknown
af22d870fa Many files:
tabs replaced
ha_innodb.cc:
  Comments removed


innobase/include/que0que.h:
  tabs replaced
innobase/include/sync0rw.h:
  tabs replaced
innobase/include/sync0sync.h:
  tabs replaced
innobase/include/sync0sync.ic:
  tabs replaced
innobase/row/row0sel.c:
  tabs replaced
innobase/srv/srv0srv.c:
  tabs replaced
innobase/sync/sync0rw.c:
  tabs replaced
innobase/sync/sync0sync.c:
  tabs replaced
sql/ha_innodb.cc:
  Comments removed
sql/lex.h:
  tabs replaced
sql/set_var.cc:
  tabs replaced
sql/sql_parse.cc:
  tabs replaced
sql/sql_yacc.yy:
  tabs replaced
2004-12-24 13:31:21 +01:00
unknown
40d7e74efd logging_ok:
Logging to logging@openlogging.org accepted
sql_yacc.yy, sql_parse.cc, sql_lex.h, lex.h:
  Implements the SHOW MUTEX STATUS command
set_var.cc, mysqld.cc, mysql_priv.h:
  Added new GLOBAL variable timed_mutexes
ha_innodb.h:
  New function innodb_mutex_show_status
ha_innodb.cc:
  Added new innodb variables in SHOW STATUS
  Implements the SHOW MUTEX STATUS command
innodb.test, innodb.result:
  Added new row_lock_waits status variables tests.
variables.test, variables.result:
  test new variable timed_mutexes
ut0ut.c:
  New function ut_usectime.
sync0sync.c:
  Mutex counting.
sync0rw.c:
  New mutex parameters initialization.
srv0srv.c:
  Counting row lock waits
row0sel.c, row0mysql.c:
  Setting row_lock or table_lock state to thd.
que0que.c:
  Added default no_lock_state to thd.
univ.i:
  Added UNIV_SRV_PRINT_LATCH_WAITS debug define
sync0sync.ic:
  Count mutex using.
sync0sync.h:
  Added new parameters to mutex structure for counting.
sync0rw.h:
  Added new parameters to rw_create_func.
srv0srv.h:
  Added new innodb varuables to SHOW STATUS.
que0que.h:
  Added thread lock states.


innobase/include/que0que.h:
  Added thread lock states.
innobase/include/srv0srv.h:
  Added new innodb varuables to SHOW STATUS.
innobase/include/sync0rw.h:
  Added new parameters to rw_create_func.
innobase/include/sync0sync.h:
  Added new parameters to mutex structure for counting.
innobase/include/sync0sync.ic:
  Count mutex using.
innobase/include/univ.i:
  Added UNIV_SRV_PRINT_LATCH_WAITS debug define
innobase/que/que0que.c:
  Added default no_lock_state to thd.
innobase/row/row0mysql.c:
  Setting row_lock or table_lock state to thd.
innobase/row/row0sel.c:
  Setting row_lock or table_lock state to thd.
innobase/srv/srv0srv.c:
  Counting row lock waits
innobase/sync/sync0rw.c:
  New mutex parameters initialization.
innobase/sync/sync0sync.c:
  Mutex counting.
innobase/ut/ut0ut.c:
  New function ut_usectime.
mysql-test/r/variables.result:
  test new variable timed_mutexes
mysql-test/r/innodb.result:
  Added new row_lock_waits status variables tests.
mysql-test/t/variables.test:
  test new variable timed_mutexes
mysql-test/t/innodb.test:
  Added new row_lock_waits status variables tests.
sql/ha_innodb.cc:
  Added new innodb variables in SHOW STATUS
  Implements the SHOW MUTEX STATUS command
sql/ha_innodb.h:
  New function innodb_mutex_show_status
sql/lex.h:
  Implements the SHOW MUTEX STATUS command
sql/mysql_priv.h:
  Added new GLOBAL variable timed_mutexes
sql/mysqld.cc:
  Added new GLOBAL variable timed_mutexes
sql/set_var.cc:
  Added new GLOBAL variable timed_mutexes
sql/sql_lex.h:
  Implements the SHOW MUTEX STATUS command
sql/sql_parse.cc:
  Implements the SHOW MUTEX STATUS command
sql/sql_yacc.yy:
  Implements the SHOW MUTEX STATUS command
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-12-24 12:13:32 +01:00
unknown
640287b3bf Fix for BUG#5401 (attempt 2)
innobase/row/row0sel.c:
  Fix for BUG#5401: Don't reset the entire NULL mask, only set/clear bits for particular fields.
    This is necessary because index_merge ROR-intersection uses simulatenous scans on several keys
    with the same row buffer.
mysql-test/r/index_merge_innodb.result:
  Test for BUG#5401
mysql-test/t/index_merge_innodb.test:
  Test for BUG#5401
2004-12-23 02:26:22 +03:00
unknown
7b06313785 InnoDB: Fixed bugs in the padding and trimming of trailing spaces
that affected the UCS2 character set. (Bug #7350)


innobase/data/data0type.c:
  Added dtype_get_charset_coll_noninline()
innobase/include/data0type.h:
  Added dtype_get_charset_coll_noninline()
innobase/include/row0mysql.h:
  Added charset field to mysql_row_templ_struct.
innobase/include/row0mysql.ic:
  row_mysql_store_col_in_innobase_format():
  When removing trailing spaces, treat the UCS2 character set properly.
innobase/rem/rem0cmp.c:
  cmp_whole_field(): Do not remove trailing 0x20 bytes, as
  innobase_mysql_cmp() implicitly pads the strings with trailing
  spaces as necessary.
innobase/row/row0sel.c:
  row_sel_field_store_in_mysql_format(): Do not pad with 0x20 bytes.
  row_sel_store_mysql_rec(): Pad VARCHARs with trailing spaces
  (0x20, or 0x0020 in UCS2).
sql/ha_innodb.cc:
  build_template(): Initialize templ->charset
2004-12-17 18:35:11 +02:00
unknown
d2dc0a1086 Merge jlindstrom@bk-internal.mysql.com:/home/bk/mysql-5.0
into hundin.mysql.fi:/home/jan/mysql-5.0


innobase/include/lock0lock.h:
  Auto merged
innobase/lock/lock0lock.c:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2004-12-13 08:59:52 +02:00
unknown
0404a607a5 InnoDB: Reduce the stack space consumption of ON UPDATE CASCADE
operations.


innobase/include/lock0lock.h:
  Added lock_clust_rec_read_check_and_lock_alt(),
  a variant of lock_clust_rec_read_check_and_lock()
  without the parameter "offsets".
innobase/lock/lock0lock.c:
  Added lock_clust_rec_read_check_and_lock_alt(),
  a variant of lock_clust_rec_read_check_and_lock()
  without the parameter "offsets".
innobase/row/row0ins.c:
  row_ins_foreign_check_on_constraint(): Do not allocate offsets
  from stack. This reduces the stack space consumption of
  ON UPDATE CASCADE operations by 400 bytes per cascaded UPDATE
  operation.
2004-12-10 12:55:56 +02:00
unknown
c418ae98ef Merge jlindstrom@bk-internal.mysql.com:/home/bk/mysql-5.0
into hundin.mysql.fi:/home/jan/mysql-5.0


innobase/lock/lock0lock.c:
  Auto merged
innobase/row/row0mysql.c:
  Auto merged
2004-12-10 08:49:31 +02:00
unknown
7945222c28 InnoDB: Changed interface to rec_get_offsets(), to reduce the use of
memory heaps.  This changeset plugs also a few memory leaks that
were introduced with the compact InnoDB table format.


innobase/btr/btr0btr.c:
  Changed interface to rec_get_offsets()
innobase/btr/btr0cur.c:
  Changed interface to rec_get_offsets()
innobase/btr/btr0pcur.c:
  Changed interface to rec_get_offsets()
innobase/btr/btr0sea.c:
  Changed interface to rec_get_offsets()
innobase/include/rem0rec.h:
  Changed interface to rec_get_offsets()
innobase/include/rem0rec.ic:
  Changed interface to rec_get_offsets()
innobase/lock/lock0lock.c:
  Changed interface to rec_get_offsets()
innobase/page/page0cur.c:
  Changed interface to rec_get_offsets()
innobase/page/page0page.c:
  Changed interface to rec_get_offsets()
innobase/rem/rem0rec.c:
  Changed interface to rec_get_offsets()
innobase/row/row0ins.c:
  Changed interface to rec_get_offsets()
innobase/row/row0mysql.c:
  Changed interface to rec_get_offsets()
innobase/row/row0purge.c:
  Changed interface to rec_get_offsets()
innobase/row/row0row.c:
  Changed interface to rec_get_offsets()
innobase/row/row0sel.c:
  Changed interface to rec_get_offsets()
innobase/row/row0umod.c:
  Changed interface to rec_print()
innobase/row/row0undo.c:
  Changed interface to rec_get_offsets()
innobase/row/row0upd.c:
  Changed interface to rec_get_offsets()
innobase/row/row0vers.c:
  Changed interface to rec_get_offsets()
innobase/trx/trx0rec.c:
  Changed interface to rec_get_offsets()
2004-12-09 15:29:55 +02:00
unknown
101fdd4eda Content merge.
innobase/include/lock0lock.h:
  Auto merged
innobase/row/row0mysql.c:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_innodb.h:
  Auto merged
sql/lock.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/handler.h:
  content merge.
2004-12-09 11:20:50 +02:00
unknown
0f99fe728e 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;
2004-12-09 11:10:45 +02:00
unknown
f9bd116c29 InnoDB: Make btr_search_drop_page_hash_index() work with the compact
record format without requiring the doubly linked list added by
Heikki in ChangeSet@1.1627.16.2


innobase/btr/btr0sea.c:
  btr_search_drop_page_hash_index(): support the compact record format
innobase/ibuf/ibuf0ibuf.c:
  ibuf_insert_to_index_page(): Remove unnecessary computation of
  field offsets.
innobase/row/row0ins.c:
  row_ins_index_entry_low(): Remove unnecessary computation of
  field offsets.
2004-12-08 15:20:58 +02:00
unknown
ff2c115ba8 row0mysql.c:
Remove parameter from call to btr_search_validate().
buf0buf.c:
  Initialize member "index" of buf_block_t.
buf0buf.h:
  Add member "index" to buf_block_t.
btr0sea.h:
  Remove parameter of btr_search_validate()
btr0sea.c:
  Make use of the added member "index" of buf_block_t.


innobase/btr/btr0sea.c:
  Make use of the added member "index" of buf_block_t.
innobase/include/btr0sea.h:
  Remove parameter of btr_search_validate()
innobase/include/buf0buf.h:
  Add member "index" to buf_block_t.
innobase/buf/buf0buf.c:
  Initialize member "index" of buf_block_t.
innobase/row/row0mysql.c:
  Remove parameter from call to btr_search_validate().
2004-12-08 14:33:09 +02:00
unknown
f09c8b35f4 InnoDB: Fix ctype_utf8 test failure caused by the new record format.
innobase/btr/btr0btr.c:
  Cache the value of dtype_get_fixed_size(type) in order to avoid
  repeated calls to an external function innobase_is_mb_cset()
innobase/include/data0type.ic:
  Declare innobase_is_mb_cset().
  dtype_get_fixed_size(): Invoke innobase_is_mb_cset() for DATA_MYSQL.
innobase/row/row0ins.c:
  Cache the value of dtype_get_fixed_size(type) in order to avoid
  repeated calls to an external function innobase_is_mb_cset()
innobase/row/row0sel.c:
  row_search_for_mysql(): Added a missing rec_reget_offsets() call
  that caused an InnoDB debug assertion failure in ctype_utf8 test.
sql/ha_innodb.cc:
  Define innobase_is_mb_cset().
2004-12-03 17:57:44 +02:00