Commit graph

255 commits

Author SHA1 Message Date
jan@hundin.mysql.fi
384efc4493 Fixed a bug: deadlock without any locking, simple select and update (Bug #7975).
Backported from 5.0.3.
2005-04-18 12:17:32 +03:00
heikki@hundin.mysql.fi
aefe018b67 row0sel.c:
Do not test the value of err if the lock operation was skipped because innodb_logs_unsafe_for_binlog was TRUE; though this did not cause any bugs visible to the user, because err is inited to DB_SUCCESS at the start of the function row_search_for_mysql()
2005-04-13 15:49:28 +03:00
marko@hundin.mysql.fi
d5646eb6c5 InnoDB: Ignore character set mismatch in ALTER TABLE and RENAME TABLE
if foreign_key_checks=0. (Bug #9802)
2005-04-12 16:12:34 +03:00
heikki@hundin.mysql.fi
0c2caeb4d8 row0sel.c, btr0pcur.c, btr0pcur.ic, btr0pcur.h:
Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context
2005-04-06 10:27:40 +03: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
c75036ed70 row0sel.c:
row_sel_store_mysql_rec(): Do not try to space-pad BLOB fields. (Bug #8771)
2005-03-01 20:46:23 +02:00
heikki@hundin.mysql.fi
5f427ec35d row0sel.c:
Fix bug #8677: if one used LOCK TABLES, created an InnoDB temp table, and did a multi-table update where a MyISAM table was the update table and the temp table was a read table, then InnoDB aserted in row0sel.c because n_mysql_tables_in_use was 0. Also, we remove the assertion altogether and just print an error to the .err log if this important consistency check fails. Then it is up to the user to read the .err log and notice the problem if there still are errors in MySQL's table locking.
2005-02-22 21:05:17 +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
jan@hundin.mysql.fi
c0c93929a8 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
marko@hundin.mysql.fi
6289469e97 Merge marko@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/k/mysql-4.1
2005-01-12 14:08:25 +02:00
jan@hundin.mysql.fi
3ba52c1eb8 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).
2005-01-12 10:36:50 +02:00
heikki@hundin.mysql.fi
7c31f2ff43 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
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
10a246e453 ha_innodb.cc, row0ins.c, fil0fil.c:
Correct typo
2004-12-27 04:27:09 +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
marko@hundin.mysql.fi
e2f9201041 InnoDB: Fixed bugs in the padding and trimming of trailing spaces
that affected the UCS2 character set. (Bug #7350)
2004-12-17 18:35:11 +02:00
marko@hundin.mysql.fi
b8028e6a0d Merge marko@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/k/mysql-4.1
2004-11-30 17:50:56 +02:00
heikki@hundin.mysql.fi
c7ed52456d row0sel.c:
Remove compiler warning as I had forgotten an include file
2004-11-30 17:48:30 +02: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
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
jan@hundin.mysql.fi
d12c354053 Fixed BUG #6747: innodb_locks_unsafe_for_binlog still uses next-key locking. 2004-11-22 10:34:29 +02:00
marko@hundin.mysql.fi
766adf172b row0ins.c:
row_ins_scan_sec_index_for_duplicate(),
  row_ins_duplicate_error_in_clust():
  remove unused variables "ptr"
2004-11-18 17:01:33 +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
jan@hundin.mysql.fi
f45aacd9a3 Use already parsed SQL-query in the current thread when determining
was the query REPLACE or LOAD DATA INFILE REPLACE.
2004-10-15 11:28:19 +03:00
jan@hundin.mysql.fi
d07ade5579 This patch removes unnecessary lock from the supremum record, takes
X-locks on duplicates also on LOAD DATA...REPLACE clause and
fixes a bug #6086 adding --disable_warnings and --enable_warnings around
the create table clauses in ctype_utf8 tests for InnoDB.
2004-10-14 15:36:36 +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
67ce68acb9 row0sel.c, row0row.c:
Fix bug #5975 about UTF-8 chars and prefix indexes; do not print warnings if a column prefix is > 255 bytes
2004-10-08 15:25:59 +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
heikki@hundin.mysql.fi
1390ce0f75 Many files:
Fix bug introduced by the prefix key + multibyte charsets patch today
2004-10-01 20:01:25 +03:00
marko@hundin.mysql.fi
76cda983a9 Merge marko@build.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/j/mysql-4.1
2004-10-01 14:17:05 +03:00
marko@hundin.mysql.fi
d7ea8e7c6c InnoDB: quote identifiers according to MySQL settings (Bug #5292) 2004-10-01 11:51:59 +03:00
marko@hundin.mysql.fi
1bd65d7715 InnoDB: implement innodb_max_purge_lag 2004-09-30 15:54:19 +03:00
heikki@hundin.mysql.fi
6083e00d73 dict0dict.h, dict0dict.c, row0row.c, pars0opt.c:
Fix bug #5180: having a column prefix index in the primary key, and the same column fully in a secondary key could cause an assertion failure in row_build_row_ref()
2004-09-16 20:50:24 +03:00