Commit graph

160 commits

Author SHA1 Message Date
heikki@hundin.mysql.fi
917e8b4da3 ha_innodb.cc:
If AUTOCOMMIT=1, do not acquire an InnoDB table lock in LOCK TABLES; this makes porting of old MyISAM applications to InnoDB easier, since in that mode InnoDB table locks caused deadlocks very easily
2004-12-22 11:01:25 +02:00
heikki@hundin.mysql.fi
ea6b5e117a dict0dict.h, dict0dict.c, ha_innodb.cc:
Fix for the 0xA0 character problem in the InnoDB FOREIGN KEY parser: if my_isspace() treats 0xA0 as space, then let InnoDB do the same; this might break some multi-byte charset id's, though for big5, ujis, sjis this seems not to change the current behavior (I checked the tables in /share/charsets); this fix must NOT be merged to 4.1 because in 4.1 everything is in UTF-8
2004-12-10 17:12:47 +02:00
heikki@hundin.mysql.fi
dd64377dc2 ha_innodb.cc:
Fix InnoDB bug #6287: if one uses INSERT IGNORE to insert several rows at a time, and the first inserts are ignored because of a duplicate key collision, then InnoDB in a replication slave assigns AUTO_INCREMENT values 1 bigger than in the master
2004-11-16 20:37:42 +02:00
heikki@hundin.mysql.fi
22269d451a ha_innodb.cc:
Backport Jan's fix of the LOAD DATA INFILE REPLACE duplicate key error bug (Bug #5835) to 4.0
2004-11-02 13:21:11 +02:00
monty@mysql.com
1f8b3d0f22 Code cleanups (done during review of new code)
Rename innodb_table_locks_old_behavior -> innodb_table_locks
Set innodb_table_locks to off by default to get same behaviour as in MySQL 4.0.20
(This means that Innodb ignore table locks by default, which makes it easier to combine MyISAM and InnoDB to simulate a transaction)
2004-10-20 11:24:08 +03:00
marko@hundin.mysql.fi
edb93ca441 Added startup option and settable session variable
innodb_table_locks_old_behavior: do not acquire an
InnoDB table lock for LOCK TABLES, as in mysql-4.0.18
and earlier.
2004-10-13 22:54:21 +03:00
heikki@hundin.mysql.fi
41ab008a36 ha_innodb.cc:
Change error code to HA_ERR_ROW_IS_REFERENCED if we cannot DROP a parent table referenced by a FOREIGN KEY constraint; this error number is less misleading than the previous value HA_ERR_CANNOT_ADD_FOREIGN, but misleading still; we should introduce to 5.0 a proper MySQL error code
2004-10-12 18:12:00 +03:00
marko@hundin.mysql.fi
c03049dfd9 InnoDB: Corrected typos in DBUG_ statements 2004-09-17 17:16:02 +03:00
heikki@hundin.mysql.fi
d6b4c4f90e row0mysql.h:
Improve the comment on stored_select_lock_type
ha_innodb.cc:
  Let InnoDB remember select_lock_type inside LOCK TABLES, also over plain consistent read SELECTs; fix Bug #5538 : assertion failure when using mysqldump with the -l option; in MERGING this patch to 4.1, there may be PROBLEMS; that is because previous patch was never merged to 4.1; Heikki Tuuri has to polish the code in 4.1 after this patch has been merged.
2004-09-13 19:05:39 +03:00
heikki@hundin.mysql.fi
40c0fde904 ha_innodb.cc:
If ALTER TABLE ... DROP FOREIGN KEY ... fails because of a wrong constraint name, return a table handler error number 150 instead of 152; the value 152 was misleading, as it referred to '152 = Cannot delete a parent row', whereas '150 = Foreign key constraint is incorrectly formed' is less misleading
2004-09-01 16:41:09 +03:00
marko@hundin.mysql.fi
1773e759e4 ha_innodb.cc:
innobase_mysql_tmpfile(): call dup() and my_close() on the file
  returned by create_temp_file()
  in order to avoid memory leak caused by my_open() being paired with close()
2004-08-19 23:22:16 +03:00
heikki@hundin.mysql.fi
6feb6ea545 srv0start.c, ut0mem.c, ut0dbg.c, ut0dbg.h, srv0start.h:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
mysqld.cc, ha_innodb.cc:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
2004-08-18 01:48:01 +03:00
marko@hundin.mysql.fi
cd6292d219 InnoDB: Use create_temp_file() when available 2004-08-10 14:17:32 +03:00
marko@hundin.mysql.fi
3cb09c9817 InnoDB: Add option for disabling innodb_status.<pid> files.
InnoDB: Implement tmpfile() differently on Windows (Bug #3998)
2004-08-06 15:55:50 +03:00
marko@hundin.mysql.fi
a323342728 InnoDB: LOCK TABLE clean-up 2004-07-12 16:47:22 +03:00
heikki@hundin.mysql.fi
aac5c88bcd row0mysql.c, row0mysql.h, ha_innodb.cc:
Inside LOCK TABLES, use either LOCK_S or LOCK_X in locking reads; an improvent over the previous patch
2004-06-01 19:19:48 +03:00
marko@hundin.mysql.fi
df8f605609 InnoDB: Do not get a lock for consistent reads (Bug #3894) 2004-05-31 16:33:45 +03:00
monty@mysql.com
86a966256b Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
Ensured that all projects compile
Removed compiler warnings
Better setting of server_version variable.
Fix that make_win_src_distribution creates the privilege tables.
2004-05-19 16:38:12 +03:00
monty@mysql.com
1e860400f3 Extra safety fixes (probably not needed, but can't hurt) 2004-05-15 09:08:03 +03:00
heikki@hundin.mysql.fi
02f51ccf2d Many files:
Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
2004-05-14 16:48:56 +03:00
heikki@hundin.mysql.fi
d2649c110a ha_innodb.cc, trx0trx.h, lock0lock.c, trx0trx.c:
Reserve the MySQL LOCK_thread_count mutex when printing thd->query of
an arbitrary transaction; if we are printing thd->query of a transaction that
we know is currently executing inside InnoDB, then we know that MySQL cannot
meanwhile change thd->query, and no need to reserve the MySQL mutex; note
that this patch still leaves open the possibility of races in MySQL's
thd->query_len
2004-05-13 22:07:51 +03:00
heikki@hundin.mysql.fi
cafad010a6 ha_innodb.cc:
A flawed fix of the thd->query race in SHOW INNODB STATUS; see the comments in code about how to fix this properly; we cannot use LOCK_thread_count to protect thd->query, because that will cause a deadlock of threads
2004-05-13 20:02:05 +03:00
marko@hundin.mysql.fi
077f0812fc ha_innodb.cc:
innobase_mysql_print_thd(): protect thd with LOCK_thread_count (Bug #3596)
2004-05-13 16:18:39 +03:00
marko@hundin.mysql.fi
17d5da7e33 InnoDB: avoid some data races in innobase_mysql_print_thd() (Bug #3596) 2004-05-12 16:44:53 +03:00
marko@hundin.mysql.fi
d15b0b577d InnoDB portability fix: new function os_file_set_eof() 2004-05-05 15:54:28 +03:00
monty@mysql.com
e51887b050 Portability fix 2004-05-05 14:40:44 +03:00
marko@hundin.mysql.fi
fc7ae6a222 InnoDB: Truncate "<datadir>/innodb.status.<pid>" to its actual size
(Bug #3596)
2004-05-05 11:50:58 +03:00
marko@hundin.mysql.fi
a490b95b04 InnoDB: implement LOCK TABLE (Bug #3299) 2004-04-29 16:42:33 +03:00
heikki@hundin.mysql.fi
7d3e633edc ha_innodb.cc, sync0sync.h, sync0sync.c:
Use only noninlined InnoDB functions in ha_innodb.cc
2004-04-09 22:18:18 +03:00
marko@hundin.mysql.fi
6af38c65be InnoDB: send diagnostic output to stderr or files
instead of stdout or fixed-size memory buffers
2004-04-06 16:14:43 +03:00
marko@hundin.mysql.fi
f7f8efc263 InnoDB: Backport fil_path_to_mysql_datadir from MySQL 4.1.x 2004-04-05 15:40:56 +03:00
marko@hundin.mysql.fi
23a5fc5558 InnoDB: ignore intra-database foreign key references between tables
when dropping database (Bug #3058)
2004-04-02 16:25:48 +03:00
marko@hundin.mysql.fi
e00bf40360 InnoDB cleanup: fixing buffer overflows and quoting of quotes 2004-04-01 16:51:34 +03:00
guilhem@mysql.com
bce65d4b76 Fix for BUG#3015
"(binlog, position) stored by InnoDB for a replication slave can be wrong".
This code contains conditional #if to distinguish between versions;
it should be merged into 4.1 and 5.0.
2004-03-01 15:15:58 +01:00
heikki@hundin.mysql.fi
b35e1f01bb ha_innodb.cc:
Add diagnostic code to analyze an assertion failure in ha_innodb.cc on line 2020 reported by a user (Bug #2903)
2004-02-24 17:38:47 +02:00
heikki@hundin.mysql.fi
f5fedf54e4 ha_innodb.cc:
Make the drop InnoDB database operation aware of the setting FOREIGN_KEY_CHECKS=0; DROP DATABASE seems to work ok anyway, but that is because MySQL first calls DROP TABLE for each table which has an .frm file
2004-02-16 09:58:47 +02:00
heikki@hundin.mysql.fi
d9790a406c row0mysql.c:
Allow always DROPping of a table which is only referenced by FOREIGN KEY constraints from the same table
Many files:
  Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
2004-02-09 23:57:29 +02:00
heikki@hundin.mysql.fi
d7b9d5c9e8 ha_innodb.cc:
If AUTOCOMMIT=1, then we do not need to make a plain SELECT set shared locks even on the SERIALIZABLE isolation level, because we know the transaction is read-only: a read-only transaction can always be performed on the REPEATABLE READ level, and that does not endanger the serializability
2004-02-08 12:53:31 +02:00
heikki@hundin.mysql.fi
7533b0cfff dict0dict.c:
Remove redundant code; parse both the database name and the table name in a FOREIGN KEY constraint with quotes in mind
row0mysql.c, ha_innodb.cc, sql_table.cc:
  Return error message Cannot delete or update a parent row... if we try to drop a table which is referenced by a FOREIGN KEY constraint, and the user has not set foreign_key_checks=0
2004-02-02 00:10:45 +02:00
monty@mysql.com
c1dd070ba7 Some small portability fixes.
Added support for lower_case_table_names=2, which is to be used on case insensitive file systems.
This tells MySQL to preserve the used case of filenames and database names to make it esier to move files between cases sensitive can case insensitive file systems (like Windows and Linux)
2003-12-30 13:14:21 +02:00
monty@mysql.com
f995a5f4aa Fix autoincrement for signed columns (Bug #1366)
Fixed problem with char > 128 in QUOTE() function. (Bug #1868)
Disable creation of symlinks if my_disable_symlink is set
Fixed searching of TEXT with end space. (Bug #1651)
Fixed caching bug in multi-table-update where same table was used twice. (Bug #1711)
Fixed problem with UNIX_TIMESTAMP() for timestamps close to 0. (Bug #1998)
Fixed timestamp.test
2003-12-12 22:26:58 +02:00
heikki@hundin.mysql.fi
91f5c5e337 thr0loc.c, srv0start.c, srv0srv.c, srv0srv.h, os0thread.h, ha_innodb.cc:
Backport from 4.1: reduce InnoDB memory consumption if buf pool < 8 MB
2003-10-17 23:44:34 +03:00
Sinisa@sinisa.nasamreza.org
fb774125e8 item_func.h:
Fix for a bug with LEAST() in WHERE clause
ha_innodb.cc:
  Fix for a configure bug
multi_update.result, multi_update.test:
  Fix for the update with NULL's in the result set
sql_update.cc:
  Fix for the update with NULL's in the result set
   Fix for the update with NULL's in the result set
   Fix for the update with NULL's in the result set
2003-08-20 15:33:21 +03:00
heikki@hundin.mysql.fi
f8a767b5d5 ha_innodb.cc:
Prevent the user from creating InnoDB tables with > 1000 columns
2003-07-08 20:51:45 +03:00
heikki@hundin.mysql.fi
0abd1539fa ha_innodb.cc:
Since the mysql interactive client or some other phase in communication cuts > 64 kB strings to very short, restrict the output of SHOW INNODB STATUS to at most 60 kB
2003-07-03 22:48:13 +03:00
heikki@hundin.mysql.fi
2a1f87ff72 Many files:
Remove potential starvation of a full log buffer flush: only flush up to the lsn which was the largest at the time when we requested the full log buffer flush
os0sync.h, os0sync.c:
  Fix a bug in os_event on Unix: even though we signaled the event, some threads could continue waiting if the event became nonsignaled quickly again; this made group commit less efficient than it should be
2003-07-03 21:25:55 +03:00
heikki@hundin.mysql.fi
6ae8ff3cc8 ha_innodb.cc:
Cleanup
2003-07-02 02:01:11 +03:00
heikki@hundin.mysql.fi
f67308f612 ha_innodb.cc:
Remove still some potential hangs over the btr0sea.c semaphore
2003-07-02 01:57:40 +03:00
heikki@hundin.mysql.fi
19da94db0e ha_innodb.cc:
Fix a possible hang over the btr0sea.c latch
2003-07-01 23:52:59 +03:00
monty@narttu.mysql.fi
eeee8f78c9 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0
2003-06-23 13:04:21 +03:00