Commit graph

59677 commits

Author SHA1 Message Date
MySQL Build Team
b84555efae Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 3148.9.6
> revision-id: martin.hansson@sun.com-20091102122407-krzh4h0i052lbwr5
> parent: davi.arnaut@sun.com-20091102112236-k3myix2xy8miyv4s
> committer: Martin Hansson <martin.hansson@sun.com>
> branch nick: 5.1bt
> timestamp: Mon 2009-11-02 13:24:07 +0100
> message:
>   Bug#47925: regression of range optimizer and date comparison in 5.1.39!
>   
>   When a query was using a DATE or DATETIME value formatted
>   using any other separator characters beside hyphen '-', a
>   query with a greater-or-equal '>=' condition matching only
>   the greatest value in an indexed column, the result was
>   empty if index range scan was employed.
>   
>   The range optimizer got a new feature between 5.1.38 and
>   5.1.39 that changes a greater-or-equal condition to a
>   greater-than if the value matching that in the query was not
>   present in the table. But the value comparison function
>   compared the dates as strings instead of dates.
>   
>   The bug was fixed by splitting the function
>   get_date_from_str in two: One part that parses and does
>   error checking. This function is now visible outside the
>   module. The old get_date_from_str now calls the new
>   function.
2009-11-25 18:09:30 +01:00
MySQL Build Team
3b04565704 Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 3148.9.3
> revision-id: azundris@mysql.com-20091029230154-jp2xqvzw2nhj9q41
> parent: azundris@mysql.com-20091027095316-54lwjr9vqkscq1ik
> committer: Tatiana A. Nurnberg <azundris@mysql.com>
> branch nick: 51-48295
> timestamp: Thu 2009-10-29 16:01:54 -0700
> message:
>   Bug#48295: explain extended crash with subquery and ONLY_FULL_GROUP_BY sql_mode
>   
>   If an outer query is broken, a subquery might not even get set up.
>   EXPLAIN EXTENDED did not expect this and merrily tried to de-ref all
>   of the half-setup info.
>   
>   We now catch this case and print as much as we have, as it doesn't cost us
>   anything (doesn't make regular execution slower).
2009-11-25 18:04:39 +01:00
MySQL Build Team
c084d7010b Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 3148.8.5
> revision-id: davi.arnaut@sun.com-20091102112139-pztthzy6qj8jzomn
> parent: svoj@sun.com-20091103091902-vwszwwpfi1f4zrpn
> committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
> branch nick: 48370-5.1
> timestamp: Mon 2009-11-02 09:21:39 -0200
> message:
>   Bug#48370: Absolutely wrong calculations with GROUP BY and decimal fields when using IF
>   Bug#45261: Crash, stored procedure + decimal
>   
>   Revert fix for Bug#45261 due to unforeseen bugs.
2009-11-25 18:00:46 +01:00
MySQL Build Team
6d027f4ba6 Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 3148.13.4
> revision-id: svoj@sun.com-20091102144320-0hz2ti21em510ee5
> parent: svoj@sun.com-20091102144140-8de1z6mdy5dopw3j
> committer: Sergey Vojtovich <svoj@sun.com>
> branch nick: mysql-5.1-bugteam
> timestamp: Mon 2009-11-02 18:43:20 +0400
> message:
>   Applying InnoDB snashot 5.1-ss6129
>   
>   Detailed revision comments:
>   
>   r6051 | sunny | 2009-10-12 07:05:00 +0300 (Mon, 12 Oct 2009) | 6 lines
>   branches/5.1: Ignore negative values supplied by the user when calculating the
>   next value to store in dict_table_t. Setting autoincrement columns top negative
>   values is undefined behavior and this change should bring the behavior of
>   InnoDB closer to what users expect. Added several tests to check.
>   rb://162
2009-11-25 17:58:51 +01:00
MySQL Build Team
cb115003f4 Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 3148.13.3
> revision-id: svoj@sun.com-20091102144140-8de1z6mdy5dopw3j
> parent: svoj@sun.com-20091102143655-lo69f57p82nky58q
> committer: Sergey Vojtovich <svoj@sun.com>
> branch nick: mysql-5.1-bugteam
> timestamp: Mon 2009-11-02 18:41:40 +0400
> message:
>   Applying InnoDB snashot 5.1-ss6129
>   
>   Detailed revision comments:
>   
>   r6045 | jyang | 2009-10-08 02:27:08 +0300 (Thu, 08 Oct 2009) | 7 lines
>   branches/5.1: Fix bug . Treat the Geometry data same as
>   Binary BLOB in ha_innobase::store_key_val_for_row(), since the
>   Geometry data is stored as Binary BLOB in Innodb.
>   
>   Review: rb://180 approved by Marko Makela.
2009-11-25 17:56:33 +01:00
MySQL Build Team
d8f41c8593 Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 1810.3961.7
> committer: Georgi Kodinov <joro@sun.com>
> branch nick: B48291-5.0-bugteam
> timestamp: Fri 2009-10-30 15:15:43 +0200
> message:
>   Bug  : crash with row() operator,select into @var, and
>     subquery returning multiple rows
>
>   Error handling was missing when handling subqueires in WHERE
>   and when assigning a SELECT result to a @variable.
>   This caused crash(es).
>
>   Fixed by adding error handling code to both the WHERE
>   condition evaluation and to assignment to an @variable.
> ------------------------------------------------------------
2009-11-25 17:52:26 +01:00
MySQL Build Team
eb96968183 Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 1810.3964.1
> revision-id: alexey.kopytov@sun.com-20091030155453-0vlfwki805h9os62
> parent: joerg@mysql.com-20091016122941-rf6z0keqvmlgjfto
> committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
> branch nick: my50-bug48131
> timestamp: Fri 2009-10-30 18:54:53 +0300
> message:
>   Bug : crash group by with rollup, distinct, filesort,
>               with temporary tables
>   
>   There were two problems the test case from this bug was
>   triggering:
>   
>   1. JOIN::rollup_init() was supposed to wrap all constant Items
>   into another object for queries with the WITH ROLLUP modifier
>   to ensure they are never considered as constants and therefore
>   are written into temporary tables if the optimizer chooses to
>   employ them for DISTINCT/GROUP BY handling.
>   
>   However, JOIN::rollup_init() was called before
>   make_join_statistics(), so Items corresponding to fields in
>   const tables could not be handled as intended, which was
>   causing all kinds of problems later in the query execution. In
>   particular, create_tmp_table() assumed all constant items
>   except "hidden" ones to be removed earlier by remove_const()
>   which led to improperly initialized Field objects for the
>   temporary table being created. This is what was causing crashes
>   and valgrind errors in storage engines.
>   
>   2. Even when the above problem had been fixed, the query from
>   the test case produced incorrect results due to some
>   DISTINCT/GROUP BY optimizations being performed by the
>   optimizer that are inapplicable in the WITH ROLLUP case.
>   
>   Fixed by disabling inapplicable DISTINCT/GROUP BY optimizations
>   when the WITH ROLLUP modifier is present, and splitting the
>   const-wrapping part of JOIN::rollup_init() into a separate
>   method which is now invoked after make_join_statistics() when
>   the const tables are already known.
2009-11-25 17:45:33 +01:00
MySQL Build Team
3ebac06ddb Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 1810.3961.6
> revision-id: joro@sun.com-20091030094044-quadg0bwjy7cwqzw
> parent: joro@sun.com-20091029152429-ks55fhrp4lhknyij
> committer: Georgi Kodinov <joro@sun.com>
> branch nick: B48293-5.0-bugteam
> timestamp: Fri 2009-10-30 11:40:44 +0200
> message:
>   Bug : crash with procedure analyse, view with > 10 columns,
>   having clause...
>   
>   The fix for bug 46184 was not very complete. It was not covering
>   views using temporary tables and multiple tables in a FROM clause.
>   Fixed by reverting the fix for 46184 and making a more general
>   check that is checking at the right execution stage and for all
>   of the non-supported cases.
>   Now PROCEDURE ANALYZE on non-top level SELECT is also forbidden.
>   Updated the analyse.test and subselect.test accordingly.
2009-11-25 17:43:47 +01:00
MySQL Build Team
d8798e2960 Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 1810.3961.12
> revision-id: li-bing.song@sun.com-20091103090041-zj7nedx6ok5jgges
> parent: davi.arnaut@sun.com-20091102201021-1brn7cjb1kvqg9gr
> committer: <Li-Bing.Song@sun.com>
> branch nick: mysql-5.0-bugteam
> timestamp: Tue 2009-11-03 17:00:41 +0800
> message:
>   BUG#48216 Replication fails on all slaves after upgrade to 5.0.86 on master
>   
>   When a sessione is closed, all temporary tables of the session are automatically 
>   dropped and are binlogged. But it will be binlogged with wrong database names when
>   the length of the temporary tables' database names are greater than the 
>   length of the current database name or the current database is not set.
>   
>   Query_log_event's db_len is forgot to set when Query_log_event's db is set.
>   This patch wrote code to set db_len immediately after db has set.
2009-11-25 17:42:10 +01:00
MySQL Build Team
e0f253147a Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 1810.3959.6
> revision-id: joro@sun.com-20091021084345-iki6z0uceieoupey
> parent: ramil@mysql.com-20091023112648-gie6o3odj57cxh1e
> committer: Georgi Kodinov <joro@sun.com>
> branch nick: B47780-5.0-bugteam
> timestamp: Wed 2009-10-21 11:43:45 +0300
> message:
>   Bug : crash when comparing GIS items from subquery
>         
>   If the first argument to GeomFromWKB function is a geometry
>   field then the function just returns its value.
>   However in doing so it's not preserving first argument's 
>   null_value flag and this causes unexpected null value to
>   be returned to the calling function.
>         
>   Fixed by updating the null_value of the GeomFromWKB function
>   in such cases (and all other cases that return a NULL e.g.
>   because of not enough memory for the return buffer).
2009-11-25 17:36:58 +01:00
MySQL Build Team
c466f08328 Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 1810.3959.5
> revision-id: ramil@mysql.com-20091023112648-gie6o3odj57cxh1e
> parent: ramil@mysql.com-20091021090408-208mvwwrcroi2j8c
> committer: Ramil Kalimullin <ramil@mysql.com>
> branch nick: b48258-5.0-bugteam
> timestamp: Fri 2009-10-23 16:26:48 +0500
> message:
>   Fix for bug#48258: Assertion failed when using a spatial index
>   
>   Problem: involving a spatial index for "non-spatial" queries
>   (that don't containt MBRXXX() functions) may lead to failed assert.
>   
>   Fix: don't use spatial indexes in such cases.
2009-11-25 17:35:05 +01:00
MySQL Build Team
c7f31d41d4 Backport into build-200911241145-5.1.40sp1
> ------------------------------------------------------------
> revno: 1810.3959.4
> revision-id: ramil@mysql.com-20091021090408-208mvwwrcroi2j8c
> parent: azundris@mysql.com-20091021033856-ydodp4q42o58e7ka
> committer: Ramil Kalimullin <ramil@mysql.com>
> branch nick: b47019-5.0-bugteam
> timestamp: Wed 2009-10-21 14:04:08 +0500
> message:
>   Fix for bug#47019: Assertion failed: 0, file .\rt_mbr.c, 
>   line 138 when forcing a spatial index
>   
>   Problem: "Spatial indexes can be involved in the search 
>   for queries that use a function such as MBRContains() 
>   or MBRWithin() in the WHERE clause".
>   Using spatial indexes for JOINs with =, <=> etc.
>   predicates is incorrect.
>   
>   Fix: disable spatial indexes for such queries.
2009-11-25 17:32:04 +01:00
Kent Boortz
ea19feebda Move DBG_* macros to after the variable declaration section in a
block, might expand to function calls (Bug#48331)
2009-11-25 16:48:29 +01:00
Davi Arnaut
40767bf54a Automerge. 2009-11-25 11:09:12 -02:00
Kent Boortz
2718aa5a29 Set version number for mysql-5.1.40sp1 release 2009-11-25 13:23:25 +01:00
Alexey Botchkov
a07d7da4e7 Bug#48878 "Embedded" tests fail due to an unknown variable "shared-memory-base-name"
the 'shared-memory-base-name' was added to the [client] section of the my.cnf file.
    That option isn't supported by the mysqltest_embedded.

per-file comments:
  mysql-test/lib/My/ConfigFactory.pm
2009-11-25 16:12:23 +04:00
Satya B
8f0b162aae NULL Merge Innodb snapshot 5.0-ss6230 to 5.1-bugteam 2009-11-25 15:34:19 +05:30
Martin Hansson
185e24d592 Bug#48459: valgrind errors with query using 'Range checked
for each record'

There was an error in an internal structure in the range
optimizer (SEL_ARG). Bad design causes parts of a data
structure not to be initialized when it is in a certain
state. All client code must check that this state is not
present before trying to access the structure's data. Fixed
by

- Checking the state before trying to access data (in
several places, most of which not covered by test case.)

- Copying the keypart id when cloning SEL_ARGs
2009-11-25 11:02:25 +01:00
Satya B
e2afa05e2a Applying InnoDB snapshot 5.0-ss6230, part 2. Fixes BUG#46000
BUG#46000 - using index called GEN_CLUST_INDEX crashes server

Detailed revision comments:

r6180 | jyang | 2009-11-17 10:54:57 +0200 (Tue, 17 Nov 2009) | 7 lines
branches/5.0: Merge/Port fix for bug  from branches/5.1
-r5895 to branches/5.0. Disallow creating index with the
name of "GEN_CLUST_INDEX" which is reserved for the default
system primary index. Minor adjusts on table name screening
format for added tests.
2009-11-25 15:29:25 +05:30
Evgeny Potemkin
a23cc5f1d4 Auto-merge. 2009-11-25 12:57:08 +03:00
Evgeny Potemkin
28b54d144d Additional fix for the bug#43668.
Arg_comparator now takes into account that some of
optimizations aren't done in the PREPARE stmt.
2009-11-25 12:52:03 +03:00
Satya B
0dd5eaa51e Applying InnoDB snapshot 5.0-ss6230, Part 1. Fixes BUG#47777
BUG#47777 - innodb dies with spatial pk: Failing assertion: buf <= original_buf + buf_len

Detailed revision comments:

r6178 | jyang | 2009-11-17 08:52:11 +0200 (Tue, 17 Nov 2009) | 6 lines
branches/5.0: Merge fix for bug  from branches/5.1 -r6045
to bracnches/5.0. Treat the Geometry data same as Binary BLOB
in ha_innobase::store_key_val_for_row(), since the Geometry
data is stored as Binary BLOB in Innodb.
2009-11-25 15:08:52 +05:30
Satya B
dacd32f955 Fix for BUG#47671 - wrong character-set after upgrade from 5.1.34 to 5.1.39
mysql client displays wrong character-set of server. When a user changes the
charset of a server, mysql client 'status' command displays wrong charset but
the command "SHOW VARIABLES LIKE "%charset%" displayed correct charset results.
The problem is only with the mysql client's 'status' command output.

In mysql client, the method mysql_store_lazy_result() returns 0 for
success and non-zero for failure. The method com_status() was using this method
wrongly. Fixed all such instances according to return value of the method 
mysql_store_lazy_result().
2009-11-25 12:25:49 +05:30
Tatiana A. Nurnberg
a8207fae74 auto-merge 2009-11-24 17:43:51 -08:00
Davi Arnaut
ec3e44778d Post-merge fix for bug 41728: revert fix that was pushed in mistake to 5.1 and up. 2009-11-24 19:25:23 -02:00
Luis Soares
2390a0cd03 BUG#48340: rpl_cross_version: Found warnings/errors in server log file!
Valgrind reports a conditional jump that depends on uninitialized
data while doing a LOAD DATA and for this test case only. This
test case, tests that loading data from a 4.0 or 4.1 instance
into a 5.1 instance is working. As such it handles old binary log
with a different set of events than currently 5.1 codebase uses.
See the following reference for details:

http://forge.mysql.com/wiki/MySQL_Internals_Binary_Log#LOAD_DATA_INFILE_Events

Problem:
 
 The server is handling an Execute_load_log_event, which results
 in reading a Load_log_event from the binary log and applying
 it. When applying the Load_log_event, some variable setup is
 done and then mysql_load is called. Late in mysql_load
 execution, if not in row mode logging, the event is
 binlogged write_execute_load_query_log_event.

 In write_execute_load_query_log_event, thd->lex->local_file is
 inspected. The problem is that it has not been set before in the
 execution stack. This causes valgrind to report the warning.

Fix: 
  
 We fix this by initializing thd->lex->local_file to be the same
 as the value of Load_log_event::local_fname, when lex_start is
 called inside Load_log_event::do_apply_event.
2009-11-24 20:04:02 +00:00
Tatiana A. Nurnberg
2145c866c5 auto-merge 2009-11-24 10:22:22 -08:00
Tatiana A. Nurnberg
7d00a27fc2 auto-merge 2009-11-24 09:23:51 -08:00
Tatiana A. Nurnberg
0abb82b9e5 auto-merge 2009-11-24 08:08:47 -08:00
Evgeny Potemkin
982bfdb0c8 Auto-merge. 2009-11-24 18:30:21 +03:00
Evgeny Potemkin
438b795ff7 Manual merge of the fix for bug#43668. 2009-11-24 18:26:13 +03:00
Alexey Kopytov
f16b372b37 Manual merge from the mysql-5.1-bugteam. 2009-11-24 11:31:36 +03:00
Alexey Kopytov
95cad94738 Null merge of the patch for bug from mysql-5.1-bugteam. 2009-11-24 11:24:34 +03:00
Alexey Kopytov
acf5330ab8 Manual merge from the mysql-5.1-bugteam. 2009-11-24 11:19:06 +03:00
Jim Winstead
049dc018da Null-merge of backported bug fix. 2009-11-23 14:46:25 -08:00
Jim Winstead
531d32a5bb Backport fix for Bug . 2009-11-23 14:38:08 -08:00
Georgi Kodinov
b75392782c Additional fix for bug : handle failures from my_hash_insert
Testing for presence of stuff in a hash inside the function
that's filling in the hash creates chicken-and-egg type of problems.
This results in test suite failures in mysql-pe in debug mode and 
adds bad initialization dependency in 5.1.
Fixed by removing the debug code.
2009-11-23 17:32:10 +02:00
Alexey Kopytov
0e35382391 Automerge. 2009-11-23 13:07:58 +03:00
Alexey Kopytov
2bbae9383e Automerge. 2009-11-23 13:07:18 +03:00
Alexey Kopytov
cba6be7135 Automerge. 2009-11-23 13:05:35 +03:00
Alexey Kopytov
eaf20c303f Automerge. 2009-11-23 13:04:17 +03:00
7f7dabb017 Bug truncate temporary table crashes replication
In RBR, All statements operating on temporary tables should not be binlogged.
Despite this fact, after executing 'TRUNCATE... ' on a temporary table, 
the command is still logged, even if in row-based mode. Consequently, this raises
problems in the slave as the table may not exist, resulting in an
execution failure. Ultimately, this causes the slave to report
an error and abort.

After this patch, 'TRUNCATE ...' statement on a temporary table will not be
binlogged in RBR.
2009-11-22 13:10:33 +08:00
Alfranio Correia
7c9503b75e merge 5.1-bugteam (local) --> 5.1-bugteam 2009-11-21 13:02:18 +00:00
Davi Arnaut
0b87650887 Post-merge fixes: fix typo and remove unused variables. 2009-11-21 10:11:45 -02:00
Davi Arnaut
3fe5cd80ae Bug#41726: upgrade from 5.0 to 5.1.30 crashes if you didn't run mysql_upgrade
The problem is that the server could crash when attempting
to access a non-conformant proc system table. One such case
was a crash when invoking stored procedure related statements
on a 5.1 server with a proc system table in the 5.0 format.

The solution is to validate the proc system table format
before attempts to access it are made. If the table is not
in the format that the server expects, a message is written
to the error log and the statement that caused the table to
be accessed fails.
2009-11-21 09:18:21 -02:00
Kristofer Pettersson
8e80deb52f merge 2009-11-20 21:56:43 +01:00
Kristofer Pettersson
762d5cf10e automerge 2009-11-20 16:24:48 +01:00
Kristofer Pettersson
3771d623b1 Bug#45613 handle failures from my_hash_insert
Not all my_hash_insert() calls are checked for return value.

This patch adds appropriate checks and failure responses
where needed.
2009-11-20 16:18:01 +01:00
Georgi Kodinov
91c9bdad60 merge 2009-11-20 15:41:09 +02:00
Georgi Kodinov
fe9341129b merge 2009-11-20 15:39:15 +02:00