Commit graph

59495 commits

Author SHA1 Message Date
Sergey Vojtovich
061edd2c2a 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
8939cb8655 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
a404d9939b 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
f6466bb8c6 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
3d1b9ed797 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
eb27168c8a 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
51105de06a 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
72554b36fc 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
621a39c8d9 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
341162d650 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
7c3c3fca84 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
599700e5a7 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
b7a7a9b042 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
31143f1cf8 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
c29c9d93b0 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
55852670cc 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.


mysql-test/r/func_gconcat.result:
  Fix for bug#52397: another crash with explain extended and group_concat
    - test result.
mysql-test/t/func_gconcat.test:
  Fix for bug#52397: another crash with explain extended and group_concat
    - test case.
sql/item_sum.cc:
  Fix for bug#52397: another crash with explain extended and group_concat
    - use "pargs", printing ORDER BY arguments in the 
  Item_func_group_concat::print() instead of "order" to avoid
  possible reference resolving to (freed) temporary table fields.
2010-03-31 17:00:56 +04:00
Sergey Glukhov
6eca53f1d3 fixed compiler warning 2010-03-29 18:42:49 +05:00
Georgi Kodinov
d4d5df0a3e merge 2010-03-30 15:10:25 +03:00
Georgi Kodinov
89989ffb16 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
f57839cd60 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.


mysql-test/r/join.result:
  test result
mysql-test/t/join.test:
  test case
sql/sql_select.cc:
  removed erroneous 'outer_join' variable check.
2010-03-26 11:44:24 +04:00
Sergey Glukhov
bccf219bfc 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.


mysql-test/r/join.result:
  test result
mysql-test/t/join.test:
  test case
sql/sql_select.cc:
  RAND_TABLE_BIT mask should not be counted as it
  prevents update of inner table dependences.
  For example it might happen if RAND() function
  is used in JOIN ON clause.
2010-03-24 14:37:28 +04:00
Georgi Kodinov
5167451a92 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
3658bde736 5.0-bugteam->5.1-bugteam merge 2010-03-26 11:46:18 +04:00
Tatiana A. Nurnberg
28e95ba535 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.


mysql-test/r/trigger.result:
  Show that UPDATE...SET...NULL on NOT NULL columns doesn't behave differently
  when run after a trigger.
mysql-test/t/trigger.test:
  Show that UPDATE...SET...NULL on NOT NULL columns doesn't behave differently
  when run after a trigger.
sql/field_conv.cc:
  CHECK_FIELD_IGNORE was treated as CHECK_FIELD_ERROR_FOR_NULL.
  Distinguish between the two.
sql/sp_head.cc:
  Raise error as needed.
sql/sql_class.cc:
  Save and restore check-fields options.
sql/sql_class.h:
  Make room so we can save check-fields options.
sql/sql_insert.cc:
  Raise error as needed.
2010-03-29 03:32:30 +01:00
unknown
454c003a5c 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
unknown
4775601012 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
604ab4d274 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
3569fe776f Merge fix for BUG51868 to mysql-5.1-bugteam. 2010-03-26 14:21:10 +04:00
Sergey Vojtovich
bded6a7fe3 Merge fix for BUG46565 to mysql-5.1-bugteam. 2010-03-26 14:20:10 +04:00
Sergey Glukhov
d5325c7793 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.


mysql-test/r/func_str.result:
  test case
mysql-test/t/func_str.test:
  test case
sql/item_strfunc.h:
  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
298c067eee 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.

mysql-test/r/archive.result:
  A test case for BUG#46565.
mysql-test/std_data/bug46565.ARZ:
  A test case for BUG#46565.
mysql-test/std_data/bug46565.frm:
  A test case for BUG#46565.
mysql-test/t/archive.test:
  A test case for BUG#46565.
storage/archive/ha_archive.cc:
  Allow unrecoverable data loss when extended repair
  is requested.
2010-03-25 23:57:06 +04:00
Ramil Kalimullin
251be0170d 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
f05d975284 merge from 5.1-bt rep 2010-03-25 18:13:23 +02:00
Sergey Vojtovich
3b091bbaf4 Merge fixes for BUG51877, BUG51866, BUG47598 to mysql-5.1-bugteam. 2010-03-25 19:59:54 +04:00
Andrei Elkin
dc62faf440 merging bug#52304 to 5.1-bt,pe 2010-03-25 14:49:24 +02:00
Sergey Vojtovich
5eff6aed0e Merge fix for BUG51866 to mysql-5.1-bugteam. 2010-03-25 16:11:16 +04:00
Sergey Vojtovich
412798658a 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.

mysql-test/r/fulltext.result:
  A test case for BUG#51866.
mysql-test/r/myisam.result:
  Min value for myisam_sort_buffer_size is 4096.
mysql-test/r/variables.result:
  Min value for myisam_sort_buffer_size is 4096.
mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic_32.result:
  Min value for myisam_sort_buffer_size is 4096.
mysql-test/t/fulltext.test:
  A test case for BUG#51866.
sql/mysqld.cc:
  Min value for myisam_sort_buffer_size is 4096.
storage/myisam/mi_check.c:
  When estimating number of index entries for external
  fulltext parser, take into account that key_length may
  be bigger than myisam_sort_buffer_size. Reuse logic
  from _create_index_by_sort(): force MIN_SORT_BUFFER to
  be min value for myisam_sort_buffer_size.
  
  Another problem is that ftkey_nr has no other meaning
  than serial number of fulltext index starting with 1.
  We can't say if this key using built-in or external
  parser basing on it's value. In other words we always
  entered if-branch for external parser. At this point,
  the only way to check if we use default parser is to
  compare keyinfo::parser with &ft_default_parser.
storage/myisam/sort.c:
  Get rid of MIN_SORT_MEMORY, use MIN_SORT_BUFFER instead
  (defined in myisamdef.h, has the same value and purpose).
2010-03-25 16:08:21 +04:00
Sergey Vojtovich
e5c4f84584 Merge fix for BUG51877 to mysql-5.1-bugteam. 2010-03-25 15:50:36 +04:00
Sergey Vojtovich
b57ef6d3cd BUG#51877 - HANDLER interface causes invalid memory read
Invalid memory read if HANDLER ... READ NEXT is executed
after failed (e.g. empty table) HANDLER ... READ FIRST.

The problem was that we attempted to perform READ NEXT,
whereas there is no pivot available from failed READ FIRST.

With this fix READ NEXT after failed READ FIRST equals
to READ FIRST.

This bug affects MyISAM tables only.

mysql-test/r/gis-rtree.result:
  Restore a test case for BUG51357.
mysql-test/r/handler_myisam.result:
  A test case for BUG#51877.
mysql-test/t/gis-rtree.test:
  Restore a test case for BUG51357.
mysql-test/t/handler_myisam.test:
  A test case for BUG#51877.
storage/myisam/mi_rnext.c:
  "search first" failed. This means we have no pivot for
  "search next", or in other words MI_INFO::lastkey is
  likely uninitialized.
  
  Normally SQL layer would never request "search next" if
  "search first" failed. But HANDLER may do anything.
  
  As mi_rnext() without preceeding mi_rkey()/mi_rfirst()
  equals to mi_rfirst(), we must restore original state
  as if failing mi_rfirst() was not called.
2010-03-25 15:49:01 +04:00
Sergey Vojtovich
b3bdabe209 Merge fix for BUG47598 to mysql-5.1-bugteam. 2010-03-25 15:20:35 +04:00
Sergey Vojtovich
85094f3cc1 BUG#47598 - MyISAM may write uninitialized data to disk
When MyISAM writes newly created index page it may be
initialized partially. In other words some bytes of
sensible data and uninitialized tail of the page may
go into index file.

Under certain rare circumstances these hunks of memory
may contain data that would be otherwise inaccessible
to user, like passwords or data from other tables.

Fixed by initializing memory for temporary MyISAM key
buffer to '\0'.

No test case for this fix as it is heavily covered by
existing tests.

storage/myisam/mi_open.c:
  When creating new MI_INFO object, initialize MI_INFO::buff.
  This is done to ensure that we never write uninitialized
  memory hunks to index file.
storage/myisam/mi_page.c:
  No need to silence memory error detector anymore,
  page buffer is always initialized.
storage/myisam/mi_write.c:
  Fixed invalid memory read of 2 bytes. new_right_length
  is length of data on a page, including first 2 bytes
  that store this length itself. pos + k_length is pure
  data excluding these 2 bytes containing length.
storage/myisam/rt_index.c:
  To avoid uninitialized data write, create new page
  on info->buff, instead of locally allocated buffer.
  
  Note: second key block on info->buff is used here,
  because first block is used by called functions.
storage/myisam/rt_split.c:
  To avoid uninitialized data write, create new page
  on info->buff, instead of locally allocated buffer.
2010-03-25 15:18:14 +04:00
Sergey Vojtovich
5a9bad95a9 More exceptions for InnoDB plugin tests. 2010-03-24 23:09:23 +04:00
Sergey Vojtovich
ad849f010f Applying InnoDB snapshot
Detailed revision comments:

r6822 | vasil | 2010-03-15 10:17:31 +0200 (Mon, 15 Mar 2010) | 12 lines
branches/5.1:

Typecast to silence a compiler warning:

row/row0sel.c: 4548
        C4244: '=' : conversion from 'float' to 'ib_ulonglong', possible loss of data
row/row0sel.c: 4553
        C4244: '=' : conversion from 'double' to 'ib_ulonglong', possible loss of data

Reported by:	Jonas Oreland <Jonas.Oreland@Sun.COM>
Discussed with:	Sunny Bains <sunny.bains@oracle.com>
2010-03-24 18:52:28 +04:00
Sergey Vojtovich
fbfbdc211e Applying InnoDB snapshot
Detailed revision comments:

r6785 | vasil | 2010-03-10 09:04:38 +0200 (Wed, 10 Mar 2010) | 11 lines
branches/5.1:

Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
enforced the presence of those recently and the test started failing like:

  main.innodb_bug38231                     [ fail ]
          Test ended at 2010-03-10 08:48:32
  
  CURRENT_TEST: main.innodb_bug38231
  mysqltest: At line 49: Cannot run query on connection between send and reap

r6788 | vasil | 2010-03-10 10:53:21 +0200 (Wed, 10 Mar 2010) | 8 lines
branches/5.1:

In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
with a more robust condition which waits for the TRUNCATE and LOCK commands
to appear in information_schema.processlist. This could also break if there
are other sessions executing the same SQL commands, but there are none during
the execution of the mysql test.
2010-03-24 18:51:57 +04:00
Sergey Vojtovich
b0bf53aa65 Applying InnoDB snapshot, fixes BUG#47621.
Detailed revision comments:

r6783 | jyang | 2010-03-09 17:54:14 +0200 (Tue, 09 Mar 2010) | 9 lines
branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
will become out of sync when renaming columns". MySQL does not
provide new column name information to storage engine to
update the system table. To avoid column name mismatch, we shall
just request a table copy for now.

rb://246 approved by Marko.
2010-03-24 18:39:23 +04:00
Sergey Vojtovich
59583948c1 Applying InnoDB snapshot
Detailed revision comments:

r6780 | vasil | 2010-03-08 19:13:20 +0200 (Mon, 08 Mar 2010) | 4 lines
branches/5.1:

Whitespace fixup.
2010-03-24 18:37:23 +04:00
Sergey Vojtovich
eb60a27a2a Applying InnoDB snapshot, fixes BUG#51653
Detailed revision comments:

r6774 | calvin | 2010-03-03 23:56:10 +0200 (Wed, 03 Mar 2010) | 2 lines
branches/5.1: fix bug#51653: outdated reference to set-variable
Non functional change.
2010-03-24 18:36:05 +04:00
Alexey Botchkov
f3b8b07a43 merging. 2010-03-24 16:14:47 +04:00
Kristofer Pettersson
61b9ce16fd Automerge 2010-03-25 13:26:48 +01:00
Kristofer Pettersson
ea7d830ad2 Bug#46615 Assertion in Query_cache::invalidate in INSERT in a VIEW of a MERGE table
If the listed columns in the view definition of 
the table used in a 'INSERT .. SELECT ..'
statement mismatched, a debug assertion would
trigger in the cache invalidation code
following the failing statement.

Although the find_field_in_view() function
correctly generated ER_BAD_FIELD_ERROR during
setup_fields(), the error failed to propagate
further than handle_select(). This patch fixes
the issue by adding a check for the return
value.


mysql-test/r/query_cache_with_views.result:
  * added test for bug 46615
mysql-test/t/query_cache_with_views.test:
  * added test for bug 46615
sql/sql_parse.cc:
  * added check for handle_select() return code before attempting to invalidate the cache.
2010-03-24 17:37:41 +01:00