Commit graph

171 commits

Author SHA1 Message Date
marko@hundin.mysql.fi
c4ace2a471 InnoDB: Introduce the symbols REC_OFFS_NORMAL_SIZE and
REC_OFFS_SMALL_SIZE for the initial allocation sizes of
arrays passed to rec_get_offsets().
2005-03-10 15:16:16 +02:00
marko@hundin.mysql.fi
6920a6d546 InnoDB: Improve performance by about 10% by removing implicit
memcpy() calls, by not initializing the offsets_[] arrays.
InnoDB: Remove a Microsoft compiler warning in page0page.c.
2005-03-09 22:04:55 +02:00
serg@serg.mylan
956682de1a merged 2005-03-09 14:09:06 +01:00
marko@hundin.mysql.fi
38adb1ba79 InnoDB: Portability fixes for warnings reported on IA-64 Windows 2005-03-07 12:03:33 +02:00
marko@hundin.mysql.fi
7252e44bf5 After review fixes. Fix bugs in TRUNCATE. 2005-03-01 19:42:59 +02:00
marko@hundin.mysql.fi
612e06617c InnoDB: Make CREATE TABLE return error when the minimum row length
exceeds the maximum record size.  (Bug #5682)
2005-02-17 17:15:29 +02:00
heikki@hundin.mysql.fi
961d8b0ebf Merge hundin.mysql.fi:/home/heikki/mysql-4.0
into hundin.mysql.fi:/home/heikki/mysql-4.1
2005-02-13 21:05:18 +02:00
heikki@hundin.mysql.fi
548f7dbada row0mysql.c:
Backport the column prefix memory corruption fix from 5.0
2005-02-13 21:00:07 +02:00
heikki@hundin.mysql.fi
71174327df 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
marko@hundin.mysql.fi
6c43fb504b InnoDB: Exclude code from InnoDB Hot Backup builds
by adding #ifndef UNIV_HOTBACKUP and adjusting some function
declarations.
2005-02-04 16:25:13 +02:00
marko@hundin.mysql.fi
2693b5ffa3 InnoDB: Cleanups of TRUNCATE TABLE code 2005-01-31 10:35:56 +02:00
marko@hundin.mysql.fi
8342958665 InnoDB: Allow concurrent TRUNCATE and INSERT on a table. (Bug #8144) 2005-01-28 12:18:33 +02:00
marko@hundin.mysql.fi
045aea9d92 InnoDB: Remove redundant page_no field from dict_index_t.
This completes the patch for fast TRUNCATE TABLE.
2005-01-14 13:54:23 +02:00
marko@hundin.mysql.fi
c414f138c7 row0mysql.c:
row_truncate_table_for_mysql(): Reset the auto_increment counter.
2005-01-13 15:14:11 +02:00
marko@hundin.mysql.fi
1fdff1f344 InnoDB: Implement fast TRUNCATE TABLE (Bug #7150) 2005-01-11 16:28:07 +02:00
serg@sergbook.mysql.com
a04fc26c54 manually merged 2004-12-31 15:26:24 +01:00
heikki@hundin.mysql.fi
2f9c038ecf row0mysql.c:
Manually merge the latest FOREIGN KEY lock wait + DROP TABLE fix from 4.0
2004-12-27 21:22:06 +02:00
heikki@hundin.mysql.fi
72d446ace5 row0mysql.c:
Fix the previous bug fix: dropping a table with FOREIGN KEY checks running on it caused a cascade of failed drops while the foreign key check was waiting for a lock
2004-12-27 20:06:40 +02:00
heikki@hundin.mysql.fi
2ca0c44fe3 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
heikki@hundin.mysql.fi
3595bcd72e Merge hundin.mysql.fi:/home/heikki/mysql-4.0
into hundin.mysql.fi:/home/heikki/mysql-4.1
2004-12-27 17:19:27 +02:00
heikki@hundin.mysql.fi
b8d576d087 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
2004-12-27 17:15:38 +02:00
heikki@hundin.mysql.fi
0aa1815bd1 row0mysql.c:
Fix typo
2004-12-27 04:32:37 +02:00
heikki@hundin.mysql.fi
7ad5e20461 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
2004-12-27 04:10:25 +02:00
vtkachenko@intelp4d.mysql.com
78846b2923 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.
2004-12-24 12:13:32 +01:00
jan@hundin.mysql.fi
9f5b8f9b4a Merge jlindstrom@bk-internal.mysql.com:/home/bk/mysql-5.0
into hundin.mysql.fi:/home/jan/mysql-5.0
2004-12-10 08:49:31 +02:00
marko@hundin.mysql.fi
7506ca1be1 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.
2004-12-09 15:29:55 +02:00
jan@hundin.mysql.fi
49c0044a2f Content merge. 2004-12-09 11:20:50 +02:00
jan@hundin.mysql.fi
d6effde5d0 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.
2004-12-09 11:10:45 +02:00
marko@hundin.mysql.fi
5e5a3f3f4f 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.
2004-12-08 14:33:09 +02:00
marko@hundin.mysql.fi
dd48953956 Many files:
Implement more compact InnoDB record format.
  Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
2004-12-02 19:45:07 +02:00
brian@avenger.(none)
b85f4677d5 Merge for Matt for Innodb bug. 2004-11-30 10:10:40 -08:00
marko@hundin.mysql.fi
2e7cb4d011 InnoDB: Make intermediate COMMITs in ALTER TABLE more robust (Bug #6633) 2004-11-27 00:45:01 +02:00
tomas@poseidon.ndb.mysql.com
97c8234b46 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
2004-11-26 13:44:49 +00:00
heikki@hundin.mysql.fi
ccec75f9af Many files:
Fix bug #6817 and bug #6827 : do not crash the server if the buffer pool becomes filled by the locks of ONE huge transaction, return error 1206 instead; do not crash the server, but return error if we cannot allocate memory for the buffer pool at a mysqld startup
2004-11-26 00:12:50 +02:00
monty@mysql.com
87af3d9113 merge on pull 2004-11-09 04:06:44 +02:00
jan@hundin.mysql.fi
a3f4bd28ac Fixed a bug in UPDATE statement with no index column in where condition
locks all rows (BUG #3300). When using innobase_locks_unsafe_for_binlog
option InnoDB does not take locks for those rows which do not
belong to the result set or werent changed by the query. This fix removes
unnecessary locks also from SELECT and DELETE queries.
2004-11-08 14:52:15 +02:00
marko@hundin.mysql.fi
21b9be3a19 Merge marko@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/j/mysql-4.1
2004-11-04 18:25:48 +02:00
marko@hundin.mysql.fi
fd069e2bb3 InnoDB: commit after every 10000 rows in ALTER TABLE 2004-11-03 21:32:48 +02:00
monty@mysql.com
9972d68078 merge with 4.0 2004-11-02 08:58:45 +02:00
heikki@hundin.mysql.fi
d22a24d871 row0mysql.c, pars0pars.c, eval0eval.c, dict0load.c, dict0dict.c, dict0crea.c:
Fix bug #3478: InnoDB's FOREIGN KEY tables treated table and database names as case-insensitive; RENAME TABLE t to T would hang in an endless loop if t had a foreign key constraint defined on it
dict0dict.c:
  Fix bug #3478: InnoDB's FOREIGN KEY tables treated table and database names as case-insensitive; RENAME TABLE t to T would hang in an endless loop if t had a foreign key constraint defined on it; fix also a hang that would occur if one tried in ALTER TABLE or RENAME TABLE to create a foreign key constraint name that collided with another existing name
2004-10-31 15:43:29 +02:00
marko@hundin.mysql.fi
b5f49a3abd Backport innodb_max_purge_lag from 4.1 2004-10-27 13:33:11 +03:00
heikki@hundin.mysql.fi
3729ba7706 row0mysql.c:
Print more warnings to the .err log if ALTER TABLE ... IMPORT TABLESPACE fails for some reason
os0file.c:
  Do not call exit(1) if os_file_delete() fails; remove unused parameter from
handle_error_no_exit()

fil0fil.c:
  Allow DROP TABLE even if the .ibd file for the table does not exist
2004-10-26 20:29:11 +03:00
monty@mysql.com
97b4a3415d Merge mysql.com:/home/my/mysql-4.0 into mysql.com:/home/my/mysql-4.1 2004-10-22 14:59:59 +03:00
heikki@hundin.mysql.fi
215cd1e4a3 row0mysql.c, row0ins.c:
Fix bug #5961: release the dictionary latch during a long cascaded FOREIGN KEY operation, so that we do not starve other users
2004-10-22 00:25:57 +03:00
heikki@hundin.mysql.fi
0543320240 row0mysql.c:
If one tries to drop an InnoDB table without an .ibd file, print to .err log that we DID remove the table from the internal data dictionary of InnoDB, and return DB_SUCCESS so that MySQL will delete the .frm file; the drawback in this is that then DROP TABLE returns success, and the user is not alerted; maybe it could return a warning
2004-10-08 23:52:25 +03:00
heikki@hundin.mysql.fi
89ecfd7fa6 Many files:
Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
2004-10-07 20:53:20 +03:00
monty@mysql.com
62f3cd6a31 Merge with 4.0 for 4.1 release
Noteworthy:
- New HANDLER code
- New multi-update-grant-check code
- Table lock code in ha_innodb.cc was not applied
2004-10-06 19:14:33 +03:00
heikki@hundin.mysql.fi
3985d58ad2 ha_innodb.cc:
Raise maximum column prefix len to 767 bytes, so that MySQL can create a column prefix index of 255 UTF-8 characters (each takes 3 bytes at the maximum); add comments about why innobase_get_at_most_n_mbchars() works ok
dict0mem.h:
  Raise maximum column prefix len to 767 bytes, so that MySQL can create a column prefix index of 255 UTF-8 characters (each takes 3 bytes at the maximum)
row0mysql.c:
  If MySQL tries to create a column prefix index longer that 255 UTF-8 characters, give an error, and drop the table from the InnoDB internal data dictionary. MySQL did not drop the table there in its own error handling.
2004-10-05 17:08:22 +03:00
marko@hundin.mysql.fi
d4b3df6d31 InnoDB: Fix ALTER TABLE t DISCARD TABLESPACE (Bug #5851) 2004-10-04 20:38:23 +03:00
marko@hundin.mysql.fi
d5728b91bb InnoDB: make ALTER TABLE to work on table names containing '#' (Bug #5856) 2004-10-04 16:24:37 +03:00