Commit graph

59408 commits

Author SHA1 Message Date
Sergey Vojtovich
535b4ccb06 Applying InnoDB snapshot
Detailed revision comments:

r6463 | marko | 2010-01-14 15:43:37 +0200 (Thu, 14 Jan 2010) | 5 lines
branches/zip: page_copy_rec_list_end(), page_copy_rec_list_start():
Update PAGE_MAX_TRX_ID before attempting to compress the page.  This
fixes Issue #382 (a debug assertion failure in page_zip_reorganize())
and reduces the generated redo log.  There was no bug or crash in
non-debug builds.
2010-04-01 15:22:39 +04:00
Sergey Vojtovich
169256184e Applying InnoDB snapshot
Detailed revision comments:

r6449 | marko | 2010-01-13 22:38:53 +0200 (Wed, 13 Jan 2010) | 18 lines
branches/zip: lock_rec_validate_page(): Only validate the record
queues when the thread is not holding a space->latch.

When UNIV_DEBUG is defined while UNIV_SYNC_DEBUG is not,
latching order violations will still occur and deadlocks will be possible.

sync_thread_levels_nonempty_gen(): Renamed from
sync_thread_levels_empty_gen().  Return the violating latch or NULL
instead of FALSE or TRUE, except that there will be a ut_error before
the non-NULL return.

sync_thread_levels_empty_gen(): A macro that negates the return value of
sync_thread_levels_nonempty_gen().

sync_thread_levels_contains(): New function, based on
sync_thread_levels_nonempty_gen().

This should fix Issue #441.
2010-04-01 15:22:07 +04:00
Sergey Vojtovich
55cc8f1f11 Applying InnoDB snapshot
Detailed revision comments:

r6447 | marko | 2010-01-13 17:43:44 +0200 (Wed, 13 Jan 2010) | 5 lines
branches/zip: row_sel_get_clust_rec_for_mysql(): On the READ UNCOMMITTED
isolation level, do not attempt to access a clustered index record
that has been marked for deletion.  This fixes Issue #433.

Approved by Heikki over the IM.
2010-04-01 15:21:36 +04:00
Sergey Vojtovich
4888c5e016 Applying InnoDB snapshot
Detailed revision comments:

r6446 | marko | 2010-01-13 17:20:10 +0200 (Wed, 13 Jan 2010) | 3 lines
branches/zip: Treat mem_hash_mutex specially in mutex_free(),
and explicitly free mem_hash_mutex in mem_close().
This fixes the breakage of UNIV_MEM_DEBUG that was filed as Issue #434.
2010-04-01 15:21:13 +04:00
Sergey Vojtovich
0d3662f598 Applying InnoDB snapshot
Detailed revision comments:

r6445 | marko | 2010-01-13 17:15:29 +0200 (Wed, 13 Jan 2010) | 3 lines
branches/zip: buf_pool_drop_hash_index(): Check block->page.state
before checking block->is_hashed, because the latter may be uninitialized
right after server startup.
2010-04-01 15:20:54 +04:00
Sergey Vojtovich
2b39ae46a9 Applying InnoDB snapshot
Detailed revision comments:

r6433 | marko | 2010-01-13 13:19:00 +0200 (Wed, 13 Jan 2010) | 2 lines
branches/zip: dict_sys_tables_get_flags(), dict_create_sys_*_tuple():
Add some const qualifiers and comments.
2010-04-01 15:20:36 +04:00
Sergey Vojtovich
e64b2cdd23 Applying InnoDB snapshot
Detailed revision comments:

r6426 | marko | 2010-01-12 15:36:14 +0200 (Tue, 12 Jan 2010) | 2 lines
branches/zip: row_sel_sec_rec_is_for_clust_rec(): Document the return value
more accurately.
2010-04-01 15:20:10 +04:00
Sergey Vojtovich
68afad078a Applying InnoDB snapshot
Detailed revision comments:

r6425 | marko | 2010-01-12 13:47:11 +0200 (Tue, 12 Jan 2010) | 45 lines
branches/zip: Merge revisions 6350:6424 from branches/5.1:

  ------------------------------------------------------------------------
  r6421 | jyang | 2010-01-12 07:59:16 +0200 (Tue, 12 Jan 2010) | 8 lines
  Changed paths:
     M /branches/5.1/row/row0mysql.c

  branches/5.1: Fix bug #49238: Creating/Dropping a temporary table
  while at 1023 transactions will cause assert. Handle possible
  DB_TOO_MANY_CONCURRENT_TRXS when deleting metadata in
  row_drop_table_for_mysql().

  rb://220, approved by Marko
  ------------------------------------------------------------------------
  r6422 | marko | 2010-01-12 11:34:27 +0200 (Tue, 12 Jan 2010) | 3 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/handler/ha_innodb.h

  branches/5.1: Non-functional change:
  Make innobase_get_int_col_max_value() a static function.
  It does not access any fields of class ha_innobase.
  ------------------------------------------------------------------------
  r6424 | marko | 2010-01-12 12:22:19 +0200 (Tue, 12 Jan 2010) | 16 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/handler/ha_innodb.h

  branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
  the maximum auto-increment value from the table if
  innodb_force_recovery is set to at least 4, so that writes are
  disabled. (Bug #46193)

  innobase_get_int_col_max_value(): Move the function definition before
  ha_innobase::innobase_initialize_autoinc(), because that function now
  calls this function.

  ha_innobase::innobase_initialize_autoinc(): Change the return type to
  void.  Do not attempt to read the maximum auto-increment value from
  the table if innodb_force_recovery is set to at least 4.  Issue
  ER_AUTOINC_READ_FAILED to the client when the auto-increment value
  cannot be read.

  rb://144 by Sunny, revised by Marko
  ------------------------------------------------------------------------
2010-04-01 15:19:38 +04:00
Sergey Vojtovich
ba5d13fdfd Applying InnoDB snapshot
Detailed revision comments:

r6367 | marko | 2009-12-28 15:39:19 +0200 (Mon, 28 Dec 2009) | 2 lines
branches/zip: dict_index_add_to_cache(): Always free the index object,
also when returning DB_CORRUPTION.
2010-04-01 15:19:18 +04:00
Sergey Vojtovich
c58543b358 Applying InnoDB snapshot
Detailed revision comments:

r6348 | marko | 2009-12-22 11:04:34 +0200 (Tue, 22 Dec 2009) | 37 lines
branches/zip: Merge a change from MySQL:
r6351 | marko | 2009-12-22 11:11:18 +0200 (Tue, 22 Dec 2009) | 1 line
branches/zip: Remove an obsolete declaration of LOCK_thread_count.
r6352 | marko | 2009-12-22 12:33:01 +0200 (Tue, 22 Dec 2009) | 104 lines
branches/zip: Merge revisions 6206:6350 from branches/5.1,
except r6347, r6349, r6350 which were committed separately
to both branches, and r6310, which was backported from zip to 5.1.

  ------------------------------------------------------------------------
  r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 3 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc

  branches/5.1: Non-functional change, fix formatting.
  ------------------------------------------------------------------------
  r6230 | sunny | 2009-11-24 23:52:43 +0200 (Tue, 24 Nov 2009) | 3 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result

  branches/5.1: Fix autoinc failing test results.
  (this should be skipped when merging 5.1 into zip)
  ------------------------------------------------------------------------
  r6231 | sunny | 2009-11-25 10:26:27 +0200 (Wed, 25 Nov 2009) | 7 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
     M /branches/5.1/row/row0sel.c

  branches/5.1: Fix BUG#49032 - auto_increment field does not initialize to last value in InnoDB Storage Engine.

  We use the appropriate function to read the column value for non-integer
  autoinc column types, namely float and double.

  rb://208. Approved by Marko.
  ------------------------------------------------------------------------
  r6232 | sunny | 2009-11-25 10:27:39 +0200 (Wed, 25 Nov 2009) | 2 lines
  Changed paths:
     M /branches/5.1/row/row0sel.c

  branches/5.1: This is an interim fix, fix white space errors.
  ------------------------------------------------------------------------
  r6233 | sunny | 2009-11-25 10:28:35 +0200 (Wed, 25 Nov 2009) | 2 lines
  Changed paths:
     M /branches/5.1/include/mach0data.h
     M /branches/5.1/include/mach0data.ic
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
     M /branches/5.1/row/row0sel.c

  branches/5.1: This is an interim fix, fix tests and make read float/double arg const.
  ------------------------------------------------------------------------
  r6234 | sunny | 2009-11-25 10:29:03 +0200 (Wed, 25 Nov 2009) | 2 lines
  Changed paths:
     M /branches/5.1/row/row0sel.c

  branches/5.1: This is an interim fix, fix whitepsace issues.
  ------------------------------------------------------------------------
  r6235 | sunny | 2009-11-26 01:14:42 +0200 (Thu, 26 Nov 2009) | 9 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test

  branches/5.1: Fix Bug#47720 - REPLACE INTO Autoincrement column with negative values.

  This bug is similiar to the negative autoinc filter patch from earlier,
  with the additional handling of filtering out the negative column values
  set explicitly by the user.

  rb://184
  Approved by Heikki.
  ------------------------------------------------------------------------
  r6242 | vasil | 2009-11-27 22:07:12 +0200 (Fri, 27 Nov 2009) | 4 lines
  Changed paths:
     M /branches/5.1/export.sh

  branches/5.1:

  Minor changes to support plugin snapshots.
  ------------------------------------------------------------------------
  r6306 | calvin | 2009-12-14 15:12:46 +0200 (Mon, 14 Dec 2009) | 5 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test

  branches/5.1: fix bug#49267: innodb-autoinc.test fails on windows
  because of different case mode

  There is no change to the InnoDB code, only to fix test case by
  changing "T1" to "t1".
  ------------------------------------------------------------------------
  r6324 | jyang | 2009-12-17 06:54:24 +0200 (Thu, 17 Dec 2009) | 8 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/include/lock0lock.h
     M /branches/5.1/include/srv0srv.h
     M /branches/5.1/lock/lock0lock.c
     M /branches/5.1/log/log0log.c
     M /branches/5.1/srv/srv0srv.c
     M /branches/5.1/srv/srv0start.c

  branches/5.1: Fix bug #47814 - Diagnostics are frequently not
  printed after a long lock wait in InnoDB. Separate out the
  lock wait timeout check thread from monitor information
  printing thread.

  rb://200 Approved by Marko.
  ------------------------------------------------------------------------
r6364 | marko | 2009-12-26 21:06:31 +0200 (Sat, 26 Dec 2009) | 4 lines
branches/zip: ibuf_bitmap_get_map_page():
Define a wrapper macro that passes __FILE__, __LINE__ of the caller
to buf_page_get_gen().
This will ease the diagnosis of the likes of Issue #135.
2010-04-01 15:17:10 +04:00
Sergey Vojtovich
acd6a81b85 Applying InnoDB snapshot
Detailed revision comments:

r6346 | marko | 2009-12-21 12:03:25 +0200 (Mon, 21 Dec 2009) | 2 lines
branches/zip: recv_recovery_from_checkpoint_finish():
Revert a change that was accidentally committed in r6345.
2010-04-01 15:10:01 +04:00
Sergey Vojtovich
0b33b0c266 Applying InnoDB snapshot
Detailed revision comments:

r6345 | marko | 2009-12-21 10:46:14 +0200 (Mon, 21 Dec 2009) | 7 lines
branches/zip: recv_scan_log_recs(): Non-functional change: Replace a
debug assertion ut_ad(len > 0) with ut_ad(len >= OS_FILE_LOG_BLOCK_SIZE).

This change is only for readability, for Issue #428.  Another
assertion on len being an integer multiple of OS_FILE_LOG_BLOCK_SIZE
already ensured together with the old ut_ad(len > 0) that actually len
must be at least OS_FILE_LOG_BLOCK_SIZE.
2010-04-01 15:09:37 +04:00
Sergey Vojtovich
357e5c0e29 Applying InnoDB snapshot
Detailed revision comments:

r6321 | marko | 2009-12-16 16:16:33 +0200 (Wed, 16 Dec 2009) | 4 lines
branches/zip: row_merge_drop_temp_indexes(): Revert a hack to
transaction isolation level that was made unnecessary by r5826 (Issue #337).
When this function is called, any active data dictionary transaction
should have been rolled back.
2010-04-01 15:09:15 +04:00
Sergey Vojtovich
5065980ee6 Applying InnoDB snapshot
Detailed revision comments:

r6312 | marko | 2009-12-16 10:10:36 +0200 (Wed, 16 Dec 2009) | 6 lines
branches/zip: fil_close(): Add #ifndef UNIV_HOTBACKUP around a debug
assertion on mutex.magic_n.  InnoDB Hot Backup is a single-threaded
program and does not contain mutexes.  This change allows InnoDB Hot
Backup to be compiled with UNIV_DEBUG.

Suggested by Michael Izioumtchenko.
2010-04-01 15:08:47 +04:00
Sergey Vojtovich
bf7191c1fe Applying InnoDB snapshot
Detailed revision comments:

r6309 | marko | 2009-12-15 14:05:50 +0200 (Tue, 15 Dec 2009) | 3 lines
branches/zip: lock_rec_insert_check_and_lock(): Avoid casting away constness.
Use page_rec_get_next_const() instead. This silences a gcc 4.2.4 warning.
Reported by Sunny Bains.
2010-04-01 15:08:06 +04:00
Sergey Vojtovich
f3ca08d2c1 Applying InnoDB snapshot
Detailed revision comments:

r6305 | marko | 2009-12-14 13:03:57 +0200 (Mon, 14 Dec 2009) | 2 lines
branches/zip: row_undo_mod_del_unmark_sec_and_undo_update(): Add a missing
const qualifier.
2010-04-01 15:07:37 +04:00
Sergey Vojtovich
2a187a5153 Applying InnoDB snapshot
Detailed revision comments:

r6285 | marko | 2009-12-09 09:24:50 +0200 (Wed, 09 Dec 2009) | 13 lines
branches/zip: row_sel_fetch_columns(): Remove redundant code that was
accidentally added in r1591, which introduced dfield_t::ext in order
to make the merge sort of fast index creation support externally
stored columns,

Initially, I tried to allocate the bit for dfield_t::ext from
dfield_t::len by making the length 31 bits and mapping UNIV_SQL_NULL
to something that would fit in it.  Then I decided that it would be
too risky.  The redundant check was part of the mapping.  The
condition may have been dfield_is_null() initially.

This redundant code was noticed by Sergey Petrunya on the MySQL
internals list.
r6288 | marko | 2009-12-09 09:51:00 +0200 (Wed, 09 Dec 2009) | 15 lines
branches/zip: row_upd_copy_columns(): Remove redundant code that was
accidentally added in r1591, which introduced dfield_t::ext in order
to make the merge sort of fast index creation support externally
stored columns.

Initially, I tried to allocate the bit for dfield_t::ext from
dfield_t::len by making the length 31 bits and mapping UNIV_SQL_NULL
to something that would fit in it.  Then I decided that it would be
too risky.  The redundant check was part of the mapping.  The
condition may have been dfield_is_null() initially.

This is similar to the redundant code in row_sel_fetch_columns() that
was noticed by Sergey Petrunya on the MySQL internals list and removed
in r6285.  As far as I can tell, there are no redundant UNIV_SQL_NULL
assignments remaining after this change.
2010-04-01 15:03:27 +04:00
Sergey Vojtovich
058a71f2ba Applying InnoDB snapshot
Detailed revision comments:

r6277 | marko | 2009-12-08 11:13:36 +0200 (Tue, 08 Dec 2009) | 1 line
branches/zip: fsp0fsp.c: Add some missing in/out and const qualifiers.
2010-04-01 15:01:56 +04:00
Sergey Vojtovich
971085422e Applying InnoDB snapshot
Detailed revision comments:

r6275 | pekka | 2009-12-03 18:32:47 +0200 (Thu, 03 Dec 2009) | 10 lines
branches/zip: Minor changes which allow build with UNIV_HOTBACKUP
defined to succeed:

include/trx0sys.h: Allow Hot Backup build to see some
                   TRX_SYS_DOUBLEWRITE_... macros. 
trx/trx0sys.c:     Exclude trx_sys_close() function from Hot Backup build.
log/log0recv.[ch]: Exclude recv_sys_var_init() function from Hot Backup build.

This change should not affect !UNIV_HOTBACKUP build.
2010-04-01 15:01:13 +04:00
Sergey Vojtovich
d678a4bdf4 Applying InnoDB snapshot
Detailed revision comments:

r6274 | marko | 2009-12-03 14:47:12 +0200 (Thu, 03 Dec 2009) | 6 lines
branches/zip: dict_table_check_for_dup_indexes(): Assert that the
data dictionary mutex is being held while table->indexes is accessed.
This is already the case.

Currently, only dict_table_get_next_index() and dict_table_get_first_index()
are being invoked without holding dict_sys->mutex.
2010-04-01 15:00:30 +04:00
Sergey Vojtovich
fcb1ddcf1f Applying InnoDB snapshot
Detailed revision comments:

r6272 | marko | 2009-12-02 11:46:05 +0200 (Wed, 02 Dec 2009) | 1 line
branches/zip: Revert changes that were accidentally committed in r6271.
2010-04-01 15:00:09 +04:00
Sergey Vojtovich
926d2c4bc0 Applying InnoDB snapshot
Detailed revision comments:

r6271 | marko | 2009-12-02 11:43:49 +0200 (Wed, 02 Dec 2009) | 2 lines
branches/zip: ChangeLog: Document that since r6270, the zlib version number
will be displayed at start-up.
2010-04-01 14:58:37 +04:00
Sergey Vojtovich
4a21f29cf0 Applying InnoDB snapshot
Detailed revision comments:

r6270 | marko | 2009-12-02 11:36:47 +0200 (Wed, 02 Dec 2009) | 1 line
branches/zip: innobase_start_or_create_for_mysql(): Log the zlib version.
2010-04-01 14:53:07 +04:00
Sergey Vojtovich
e20fd747f4 Applying InnoDB snapshot
Detailed revision comments:

r6269 | marko | 2009-12-02 11:35:22 +0200 (Wed, 02 Dec 2009) | 2 lines
branches/zip: innobase_start_or_create_for_mysql(): UNIV_IBUF_DEBUG
should not break crash recovery, but UNIV_IBUF_COUNT_DEBUG will.
2010-04-01 14:52:21 +04:00
Sergey Vojtovich
22e1dde051 Applying InnoDB snapshot
Detailed revision comments:

r6264 | vasil | 2009-12-01 16:19:44 +0200 (Tue, 01 Dec 2009) | 1 line
branches/zip: Add ChangeLog entry for the release of 1.0.6.
2010-04-01 14:51:49 +04:00
Sergey Vojtovich
4dccc823e3 Applying InnoDB snapshot
Detailed revision comments:

r6263 | vasil | 2009-12-01 14:49:05 +0200 (Tue, 01 Dec 2009) | 4 lines
branches/zip: Increment version number from 1.0.6 to 1.0.7

1.0.6 has been released
2010-04-01 14:50:16 +04:00
Sergey Vojtovich
91111174ee Applying InnoDB snapshot, fixes BUG#41609.
Detailed revision comments:

r6252 | marko | 2009-11-30 12:50:11 +0200 (Mon, 30 Nov 2009) | 23 lines
branches/zip: Suppress errors about non-found temporary tables.
Write the is_temp flag to SYS_TABLES.MIX_LEN.

dict_table_t:🎏 Add a flag for is_temporary, DICT_TF2_TEMPORARY.
Unlike other flags, this will not be written to the tablespace flags
or SYS_TABLES.TYPE, but only to SYS_TABLES.MIX_LEN.

dict_build_table_def_step(): Only pass DICT_TF_BITS to tablespaces.

dict_check_tablespaces_and_store_max_id(), dict_load_table():
Suppress errors about temporary tables not being found.

dict_create_sys_tables_tuple(): Write the DICT_TF2_TEMPORARY flag
to SYS_TABLES.MIX_LEN.

fil_space_create(), fil_create_new_single_table_tablespace(): Add assertions
about space->flags.

row_drop_table_for_mysql(): Do not complain about non-found temporary tables.

rb://160 approved by Heikki Tuuri.  This addresses the second part of
Bug #41609 Crash recovery does not work for InnoDB temporary tables.
2010-04-01 14:45:58 +04:00
Sergey Vojtovich
7946d6ca45 Applying InnoDB snapshot
Detailed revision comments:

r6248 | marko | 2009-11-30 12:19:50 +0200 (Mon, 30 Nov 2009) | 1 line
branches/zip: ChangeLog: Document r4922 that was forgotten.
2010-04-01 14:44:32 +04:00
Ramil Kalimullin
2cf7456e03 Fix for bug#52397: another crash with explain extended and group_concat
Problem: EXPLAIN EXTENDED was trying to resolve references to 
freed temporary table fields for GROUP_CONCAT()'s ORDER BY arguments.

Fix: use stored original GROUP_CONCAT()'s arguments in such a case.
2010-03-31 17:00:56 +04:00
Sergey Glukhov
8a96640e87 fixed compiler warning 2010-03-29 18:42:49 +05:00
Georgi Kodinov
e32e9cdc66 merge 2010-03-30 15:10:25 +03:00
Georgi Kodinov
2d035bf78d Bug #51893: crash with certain characters given to load_file
function on windows
               
When making sure that the directory path ends up with a 
slash/backslash we need to check for the correct length of 
the buffer and trim at the appropriate location so we don't
write past the end of the buffer.
2010-03-30 15:03:50 +03:00
Sergey Glukhov
1a56ad41f6 Bug#52177 crash with explain, row comparison, join, text field
The crash is the result of an attempt made by JOIN::optimize to evaluate
the WHERE condition when no records have been actually read.
The fix is to remove erroneous 'outer_join' variable check.
2010-03-26 11:44:24 +04:00
Sergey Glukhov
658cf9e481 Bug#48483 crash in get_best_combination()
The crash happens because greedy_serach
can not determine best plan due to
wrong inner table dependences. These
dependences affects join table sorting
which performs before greedy_search starting.
In our case table which has real 'no dependences'
should be put on top of the list but it does not
happen as inner tables have no dependences as well.
The fix is to exclude RAND_TABLE_BIT mask from
condition which checks if table dependences
should be updated.
2010-03-24 14:37:28 +04:00
Georgi Kodinov
d95bed0215 Bug #51893: crash with certain characters given to load_file
function on windows

When making sure that the directory path ends up with a 
slash/backslash we need to check for the correct length of 
the buffer and trim at the appropriate location so we don't
write past the end of the buffer.
2010-03-23 16:54:16 +02:00
Sergey Glukhov
6a498b5998 5.0-bugteam->5.1-bugteam merge 2010-03-26 11:46:18 +04:00
Tatiana A. Nurnberg
ec210cd09d Bug#48525: trigger changes "Column 'id' cannot be null" behaviour
CHECK_FIELD_IGNORE was treated as CHECK_FIELD_ERROR_FOR_NULL;
UPDATE...SET...NULL on NOT NULL fields behaved differently after
a trigger.

Now distinguishes between IGNORE and ERROR_FOR_NULL and save/restores
check-field options.
2010-03-29 03:32:30 +01:00
2049d1afc0 Bug #50407 mysqlbinlog --database=X produces bad output for SAVEPOINTs
When mysqlbinlog was given the --database=X flag, it always printed
'ROLLBACK TO', but the corresponding 'SAVEPOINT' statement was not
printed. The replicated filter(replicated-do/ignore-db) and binlog
filter (binlog-do/ignore-db) has the same problem. They are solved
in this patch together.

After this patch, We always check whether the query is 'SAVEPOINT'
statement or not. Because this is a literal check, 'SAVEPOINT' and
'ROLLBACK TO' statements are also binlogged in uppercase with no
any comments.

The binlog before this patch can be handled correctly except one case
that any comments are in front of the keywords. for example:
 /* bla bla */ SAVEPOINT a;
 /* bla bla */ ROLLBACK TO a;
2010-03-28 19:57:33 +08:00
8d22c5f3ef Bug #50095 Multi statement including CREATE EVENT causes rotten binlog entry
The log event of 'CREATE EVENT' was being binlogged with garbage
at the end of the query if 'CREATE EVENT' is followed by another SQL statement
and they were executed as one command.
for example:
    DELIMITER |;
    CREATE EVENT e1 ON EVERY DAY DO SELECT 1; SELECT 'a';
    DELIMITER ;|
When binlogging 'CREATE EVENT', we always create a new statement with definer
and write it into the log event. The new statement is made from cpp_buf(preprocessed buffer).
which is not a c string(end with '\0'), but it is copied as a c string.

In this patch, cpp_buf is copied with its length.
2010-03-28 16:37:47 +08:00
Sergey Vojtovich
8620be47e5 Applying InnoDB snapshot
Detailed revision comments:

r6884 | vdimov | 2010-03-26 13:05:03 +0200 (Fri, 26 Mar 2010) | 6 lines
branches/5.1:

Fix a non-determinism in innodb_bug38231.

Reported by:	Sergey Vojtovich <svoj@Sun.COM>

r6884 | vdimov | 2010-03-26 13:05:03 +0200 (Fri, 26 Mar 2010) | 6 lines
branches/5.1:

Fix a non-determinism in innodb_bug38231.

Reported by:	Sergey Vojtovich <svoj@Sun.COM>
2010-03-26 15:20:11 +04:00
Sergey Vojtovich
8d0b9a8d9d Merge fix for BUG51868 to mysql-5.1-bugteam. 2010-03-26 14:21:10 +04:00
Sergey Vojtovich
0d1c997db5 Merge fix for BUG46565 to mysql-5.1-bugteam. 2010-03-26 14:20:10 +04:00
Sergey Glukhov
52d89df285 Bug#52164 Assertion failed: param.sort_length, file .\filesort.cc, line 149
The crash happens because of incorrect max_length calculation
in QUOTE function(due to overflow). max_length is set
to 0 and it leads to assert failure.
The fix is to cast expression result to
ulonglong variable and adjust it if the
result exceeds MAX_BLOB_WIDTH.
2010-03-26 09:49:35 +04:00
Sergey Vojtovich
bb3f75bdbc BUG#46565 - repair of partition fail for archive engine
There was no way to repair corrupt ARCHIVE data file,
when unrecoverable data loss is inevitable.

With this fix REPAIR ... EXTENDED attempts to restore
as much rows as possible, ignoring unrecoverable data.

Normal REPAIR is still able to repair meta-data file
only.
2010-03-25 23:57:06 +04:00
Ramil Kalimullin
bd2a0eaa82 An addition to fix for BUG#51866 - crash with repair
by sort and fulltext keys.

Min value for myisam_sort_buffer_size is 4096.
2010-03-25 20:35:07 +04:00
Andrei Elkin
aa88ec22f1 merge from 5.1-bt rep 2010-03-25 18:13:23 +02:00
Sergey Vojtovich
47fa2317e5 Merge fixes for BUG51877, BUG51866, BUG47598 to mysql-5.1-bugteam. 2010-03-25 19:59:54 +04:00
Andrei Elkin
5e7b3a4f46 merging bug#52304 to 5.1-bt,pe 2010-03-25 14:49:24 +02:00
Sergey Vojtovich
45e4c066e8 Merge fix for BUG51866 to mysql-5.1-bugteam. 2010-03-25 16:11:16 +04:00
Sergey Vojtovich
3f641968fc BUG#51866 - crash with repair by sort and fulltext keys
Repairing MyISAM table with fulltext indexes and low
myisam_sort_buffer_size may crash the server.

Estimation of number of index entries was done incorrectly,
causing further assertion failure or server crash.

Docs note: min value for myisam_sort_buffer_size has been
changed from 4 to 4096.
2010-03-25 16:08:21 +04:00