Commit graph

93 commits

Author SHA1 Message Date
guilhem@mysql.com
759a3c1e3c 2 minor edits, plus
fix for BUG#1113 "INSERT into non-trans table SELECT ; ROLLBACK" does not send warning"
and
fix for BUG#873 "In transaction, INSERT to non-trans table is written too early to binlog".
Now we don't always write the non-trans update immediately to the binlog;
if there is something in the binlog cache we write it to the binlog cache
(because the non-trans update could depend on a trans table which was modified
earlier in the transaction); then in case of ROLLBACK, we write the binlog
cache to the binlog, wrapped with BEGIN/ROLLBACK.
This guarantees that the slave does the same updates.
For ROLLBACK TO SAVEPOINT: when we execute a SAVEPOINT command we write it
to the binlog cache. At ROLLBACK TO SAVEPOINT, if some non-trans table was updated,
we write ROLLBACK TO SAVEPOINT to the binlog cache; when the transaction
terminates (COMMIT/ROLLBACK), the binlog cache will be flushed to the binlog
(because of the non-trans update) so we'll have SAVEPOINT and ROLLBACK TO
SAVEPOINT in the binlog.

Apart from this rare case of updates of mixed table types in transaction, the
usual way is still clear the binlog cache at ROLLBACK, or chop it at
ROLLBACK TO SAVEPOINT (meaning the SAVEPOINT command is also chopped, which
is fine).
Note that BUG#873 encompasses subbugs 1) and 2) of BUG#333 "3 binlogging bugs when doing INSERT with mixed InnoDB/MyISAM".
2003-08-22 15:39:24 +02:00
monty@narttu.mysql.fi
d79cbc3b99 Fix mutex handling in SHOW_VARIABLES (key_buffer_size was not properly protected)
Changed some non fatal myisamchk error messages to warnings
2003-08-17 14:10:15 +03:00
serg@serg.mylan
25b16cd6ce bug #702 - ALTER TABLE tm UNION=(t1,t2) doesn't work if t1.MYD is compressed 2003-07-15 20:43:57 +02:00
heikki@hundin.mysql.fi
4da7f485b7 Many files:
Merge InnoDB-4.0.14: SAVEPOINT now implemented; InnoDB now accepts also column prefix keys; crashing bug in ON UPDATE CASCADE fixed; page checksum formula fixed
2003-06-15 01:04:28 +03:00
heikki@hundin.mysql.fi
c2e5f48412 ha_innodb.cc, handler.cc:
Fix the BDB crash in the previous push; to save CPU remove duplicate calls of commit in InnoDB
2003-06-05 15:58:23 +03:00
heikki@hundin.mysql.fi
42c80c81f7 handler.cc:
If the autocommit is on, let handler.cc commit or rollback the whole transaction at an updating SQL statement end. This probably fixes bug number 578. The problem was that when explicit LOCK TABLES is used, then the lock count method in autocommit does not work.
2003-06-04 17:58:41 +03:00
monty@narttu.mysql.fi
3e72b423e3 Fix for MacOSX and symlinks
Fix for USE_FRM and crashed index file
2003-05-14 01:27:26 +03:00
heikki@hundin.mysql.fi
35fd869e51 Many files:
Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
2003-05-03 02:29:40 +03:00
monty@narttu.mysql.fi
68ca84dbd1 Print right hostname or IP in SHOW PROCESSLIST
Use SESSION TABLE_HANDLER as default table handler if given table handler doesn't exists
2003-03-19 21:43:41 +02:00
monty@narttu.mysql.fi
28b6e0269a Merge work:/my/mysql-4.0 into narttu.mysql.fi:/my/mysql-4.0 2003-03-04 12:32:28 +02:00
monty@narttu.mysql.fi
2a7dfa172c Fixed bug in LOCK TABLE + DROP TABLE when other thread was waiting for a table that was locked bug not droped 2003-03-04 12:22:35 +02:00
heikki@hundin.mysql.fi
6ef0f4ad41 ha_innodb.h, ha_innodb.cc, handler.h, handler.cc, sql_class.cc:
Fix a hang on the adaptive hash S-latch if an application program uses mysql_use_result() and performs queries on two connections at the same time
2003-03-03 19:31:01 +02:00
serg@serg.mysql.com
1ced5948f0 low-level error messages cleanup 2003-01-28 17:42:08 +01:00
monty@mashka.mysql.fi
7d681c4449 Copy arguments given to mysql_server_init()
Made keybuff_size longlong (To make show variables work similar on 32
and 64 bit systems)
Fixed some 'not initalized variable errors' in multi-table-update.
Fixed memory leak in multi-table-update.
Now all tests works under valgrind without any errors.
2002-12-05 16:38:49 +02:00
bell@sanja.is.com.ua
ed99de7dcc fixed invalidation of query cache
excluded double call of 'invalidate()'
2002-11-22 00:33:15 +02:00
serg@serg.mysql.com
7720348bd2 removed DBUG_ENTER/RETURN tags 2002-11-11 22:43:07 +01:00
serg@sergbook.mysql.com
ecfa37baa5 Merge 2002-11-06 09:52:13 +01:00
bell@sanja.is.com.ua
6ed210db68 fixed bdb transaction with query cache bug 2002-11-06 00:41:25 +02:00
serg@sergbook.mysql.com
6f963dad66 added DBUG_ENTER/RETURN tags, dbug_add_tags.pl bugfix 2002-11-05 16:06:11 +01:00
monty@mashka.mysql.fi
2c4fa340cc Lots of code fixes to the replication code (especially the binary logging and index log file handling)
Fixed bugs in my last changeset that made MySQL hard to compile.
Added mutex around some data that could cause table cache corruptions when using OPTIMIZE TABLE / REPAIR TABLE or automatic repair of MyISAM tables.
Added mutex around some data in the slave start/stop code that could cause THD linked list corruptions
Extended my_chsize() to allow one to specify a filler character.
Extend vio_blocking to return the old state (This made some usage of this function much simpler)
Added testing for some functions that they caller have got the required mutexes before calling the function.
Use setrlimit() to ensure that we can write core file if one specifies --core-file.
Added --slave-compressed-protocol
Made 2 the minimum length for ft_min_word_len
Added variables foreign_key_checks & unique_checks.
Less logging from replication code (if not started with --log-warnings)
Changed that SHOW INNODB STATUS requre the SUPER privilege
More DBUG statements and a lot of new code comments
2002-08-08 03:12:02 +03:00
monty@mashka.mysql.fi
bc035c71f1 Merge with 3.23.51
Fixed wrong usage of sprintf() in ha_innodb.cc
2002-07-25 22:46:28 +03:00
monty@mashka.mysql.fi
4233d3a3d4 merge 2002-07-23 20:39:36 +03:00
monty@mashka.mysql.fi
dddc20d9d1 New SET syntax & system variables.
Made a some new buffers thread specific and changeable.
Resize of key_buffer.
AUTO_COMMIT -> AUTOCOMMIT
Fixed mutex bug in DROP DATABASE
Fixed bug when using auto_increment as second part of a key where first part could include NULL.
Split handler->extra() to extra() and extra_opt() to be able to support thread specific buffers.
Don't write message to error log when slave reconnects becasue of timeout.
Fixed possible update problem when using DELETE/UPDATE on small tables
(In some cases we used index even if table scanning would be better)
A lot of minior code cleanups
2002-07-23 18:31:22 +03:00
serg@sergbook.mysql.com
e20d9e06c5 AUTO_INCREMENT support for MERGE
HA_AUTO_PART_KEY support for handler parent class
2002-07-21 23:55:32 +02:00
heikki@hundin.mysql.fi
94e926acdf log.cc, handler.cc:
Add BEGIN andd COMMIT around transactions in the binlog
2002-06-22 20:05:30 +03:00
bell@sanja.is.com.ua
839d661b3c removed unneeded table name pointer
transaction-live memory cleanup moved to ha_commit/ha_rollback
fixed query cache validator to work correctly on systems that allocate unaligned dat
2002-06-09 00:58:05 +03:00
monty@tik.mysql.fi
056175a1ce Update for BTREE keys in HEAP tables
Split handler->option_flag() to handler->table_flags() and handler->index_flags()
2002-04-12 21:35:46 +03:00
monty@hundin.mysql.fi
2faee46284 merge (remove conflicting zip files) 2002-03-27 06:44:23 +02:00
monty@hundin.mysql.fi
727e507bca merge with 3.23.50 2002-03-27 01:56:10 +02:00
bell@sanja.is.com.ua
c5d95b5e62 added building without query cache 2002-03-22 22:55:08 +02:00
heikki@hundin.mysql.fi
1f142262a1 sql_show.cc, handler.h, handler.cc:
Add foreign key defs to SHOW CREATE TABLE
2002-03-21 18:05:46 +02:00
bell@sanja.is.com.ua
b642599f96 Merge sanja.is.com.ua:/home/bell/mysql/mysql-4
into sanja.is.com.ua:/home/bell/mysql/work-qc
2002-03-15 23:59:51 +02:00
bell@sanja.is.com.ua
63b2a551bf processing trunsactional tables in query cache 2002-03-15 23:57:31 +02:00
monty@hundin.mysql.fi
8eadb024dc Fixed mysqldumpslow for new dump format.
Fix for HEAP tables with many rows deleted.
Add '' arround database names in SHOW GRANT
2002-03-12 11:52:41 +02:00
monty@hundin.mysql.fi
4abd402b87 merge with 3.23.48 2002-02-11 13:48:59 +02:00
monty@hundin.mysql.fi
40c77c767b Removed compiler warnings 2002-02-09 04:00:24 +02:00
monty@hundin.mysql.fi
d36ac6b669 Fix some bugs introduced with the new my_getopt
Added counting of rollback's and commits
Fixed bug in 'SELECT 0 LIMIT 0'
Fixed bug in 'SELECT SQL_CALC_FOUND_ROWS'
2002-02-08 03:21:34 +02:00
monty@hundin.mysql.fi
79796e989f Merge from 3.23.48 tree 2002-01-30 16:37:47 +02:00
monty@hundin.mysql.fi
4609e627a5 Increase max package length to 512M for mysql and mysqldump.
Faster 'read_first_row' (Fixes slow 'preparing' state)
Read constant tables earlier, which provides better optimzations when using tables with <=1 row.
This also fixes a complicated bug involving const tables.
2002-01-23 02:52:26 +02:00
heikki@donna.mysql.fi
d927ff75dc ha_innobase.cc, ha_innobase.h, handler.h, handler.cc, sql_class.h, log.cc:
Tell table handlers where a binlog segment for a trx ends
2002-01-22 22:57:56 +02:00
monty@hundin.mysql.fi
df5f8c18eb Move HA_EXTRA_NO_READCHECK to ha_open
Fixed bug in multi-table-delete
2002-01-16 23:02:26 +02:00
monty@tik.mysql.fi
7dd4eb71fe Added support of null keys in HEAP tables
Added ORDER BY optimization
2002-01-12 15:42:54 +02:00
monty@hundin.mysql.fi
b658662ae4 Update copyright
Fixed memory leak on shutdown (Affects the embedded version & MyODBC)
2001-12-06 14:10:51 +02:00
monty@hundin.mysql.fi
1d26537da5 Query cache.
Remove some warnings
2001-12-02 14:34:01 +02:00
monty@hundin.mysql.fi
fd0780493d merge with 3.23.44 2001-11-04 16:14:09 +02:00
monty@donna.mysql.fi
7fcbd7e3da Merge 2001-10-30 17:38:44 +02:00
monty@work.mysql.com
38a4648ad8 merge 2001-10-11 03:43:47 +02:00
heikki@donna.mysql.fi
1d7747aa25 ut0mem.c Merge changes in InnoDB-3.23.43b
ut0ut.c 	Merge changes in InnoDB-3.23.43b
trx0purge.c	Merge changes in InnoDB-3.23.43b
trx0rec.c	Merge changes in InnoDB-3.23.43b
trx0trx.c	Merge changes in InnoDB-3.23.43b
trx0undo.c	Merge changes in InnoDB-3.23.43b
thr0loc.c	Merge changes in InnoDB-3.23.43b
sync0arr.c	Merge changes in InnoDB-3.23.43b
sync0rw.c	Merge changes in InnoDB-3.23.43b
sync0sync.c	Merge changes in InnoDB-3.23.43b
srv0srv.c	Merge changes in InnoDB-3.23.43b
srv0start.c	Merge changes in InnoDB-3.23.43b
row0ins.c	Merge changes in InnoDB-3.23.43b
row0mysql.c	Merge changes in InnoDB-3.23.43b
row0purge.c	Merge changes in InnoDB-3.23.43b
row0sel.c	Merge changes in InnoDB-3.23.43b
row0umod.c	Merge changes in InnoDB-3.23.43b
row0upd.c	Merge changes in InnoDB-3.23.43b
row0vers.c	Merge changes in InnoDB-3.23.43b
rem0cmp.c	Merge changes in InnoDB-3.23.43b
que0que.c	Merge changes in InnoDB-3.23.43b
pars0opt.c	Merge changes in InnoDB-3.23.43b
pars0pars.c	Merge changes in InnoDB-3.23.43b
lexyy.c 	Merge changes in InnoDB-3.23.43b
pars0grm.c	Merge changes in InnoDB-3.23.43b
page0page.c	Merge changes in InnoDB-3.23.43b
os0file.c	Merge changes in InnoDB-3.23.43b
mtr0log.c	Merge changes in InnoDB-3.23.43b
mem0pool.c	Merge changes in InnoDB-3.23.43b
log0log.c	Merge changes in InnoDB-3.23.43b
log0recv.c	Merge changes in InnoDB-3.23.43b
lock0lock.c	Merge changes in InnoDB-3.23.43b
ibuf0ibuf.c	Merge changes in InnoDB-3.23.43b
fil0fil.c	Merge changes in InnoDB-3.23.43b
dict0crea.c	Merge changes in InnoDB-3.23.43b
dict0dict.c	Merge changes in InnoDB-3.23.43b
dict0load.c	Merge changes in InnoDB-3.23.43b
dict0mem.c	Merge changes in InnoDB-3.23.43b
data0data.c	Merge changes in InnoDB-3.23.43b
data0type.c	Merge changes in InnoDB-3.23.43b
buf0buf.c	Merge changes in InnoDB-3.23.43b
buf0lru.c	Merge changes in InnoDB-3.23.43b
btr0btr.c	Merge changes in InnoDB-3.23.43b
btr0cur.c	Merge changes in InnoDB-3.23.43b
btr0pcur.c	Merge changes in InnoDB-3.23.43b
btr0sea.c	Merge changes in InnoDB-3.23.43b
data0type.ic	Merge changes in InnoDB-3.23.43b
dict0dict.ic	Merge changes in InnoDB-3.23.43b
mtr0mtr.ic	Merge changes in InnoDB-3.23.43b
row0upd.ic	Merge changes in InnoDB-3.23.43b
sync0ipm.ic	Merge changes in InnoDB-3.23.43b
sync0rw.ic	Merge changes in InnoDB-3.23.43b
sync0sync.ic	Merge changes in InnoDB-3.23.43b
trx0rseg.ic	Merge changes in InnoDB-3.23.43b
btr0pcur.ic	Merge changes in InnoDB-3.23.43b
buf0buf.ic	Merge changes in InnoDB-3.23.43b
data0data.ic	Merge changes in InnoDB-3.23.43b
row0upd.h	Merge changes in InnoDB-3.23.43b
srv0srv.h	Merge changes in InnoDB-3.23.43b
sync0arr.h	Merge changes in InnoDB-3.23.43b
sync0rw.h	Merge changes in InnoDB-3.23.43b
sync0sync.h	Merge changes in InnoDB-3.23.43b
trx0trx.h	Merge changes in InnoDB-3.23.43b
ut0mem.h	Merge changes in InnoDB-3.23.43b
data0data.h	Merge changes in InnoDB-3.23.43b
data0type.h	Merge changes in InnoDB-3.23.43b
db0err.h	Merge changes in InnoDB-3.23.43b
dict0crea.h	Merge changes in InnoDB-3.23.43b
dict0dict.h	Merge changes in InnoDB-3.23.43b
dict0load.h	Merge changes in InnoDB-3.23.43b
dict0mem.h	Merge changes in InnoDB-3.23.43b
dict0types.h	Merge changes in InnoDB-3.23.43b
fil0fil.h	Merge changes in InnoDB-3.23.43b
ibuf0ibuf.h	Merge changes in InnoDB-3.23.43b
lock0lock.h	Merge changes in InnoDB-3.23.43b
log0log.h	Merge changes in InnoDB-3.23.43b
mtr0mtr.h	Merge changes in InnoDB-3.23.43b
rem0cmp.h	Merge changes in InnoDB-3.23.43b
row0ins.h	Merge changes in InnoDB-3.23.43b
row0mysql.h	Merge changes in InnoDB-3.23.43b
btr0cur.h	Merge changes in InnoDB-3.23.43b
btr0pcur.h	Merge changes in InnoDB-3.23.43b
btr0sea.h	Merge changes in InnoDB-3.23.43b
buf0buf.h	Merge changes in InnoDB-3.23.43b
sql_table.cc	Merge changes in InnoDB-3.23.43b
sql_db.cc	Merge changes in InnoDB-3.23.43b
ha_innobase.cc	Merge changes in InnoDB-3.23.43b
handler.cc	Merge changes in InnoDB-3.23.43b
ha_innobase.h	Merge changes in InnoDB-3.23.43b
handler.h	Merge changes in InnoDB-3.23.43b
2001-10-10 22:47:08 +03:00
monty@hundin.mysql.fi
06e719b7cc Remved Gemini code. 2001-10-10 02:50:28 +03:00
monty@hundin.mysql.fi
88aff4bf85 Updated manual about embedded version.
Speed up column-completion in 'mysql'
Don't use ISAM if HAVE_ISAM is not defined
A lot of fixes for the embedded version.  All libraries are now included in libmysqld.a
Changed arguments to convert_dirname() to make it more general.
Renamed files in the 'merge' directory to all use a common prefix.
Don't compile both assembler and C functions on x86
2001-10-08 04:58:07 +03:00