Commit graph

56289 commits

Author SHA1 Message Date
Matthias Leich
33d2ae1512 Merge into actual tree 2009-01-13 16:42:37 +01:00
Timothy Smith
8c23b07a9a Fix Bug#32831: libmysql should be built with all charsets
Add #define HAVE_CHARSET_name in config-win.h for all character sets that MySQL
supports.  Add comments to config/ac-macros/character_sets.m4 and config-win.h
so hopefully they will be updated in sync.
2009-01-13 16:16:03 +01:00
Davi Arnaut
49888167cc Auto-merge from upstream 5.1-bugteam 2009-01-13 13:06:31 -02:00
Timothy Smith
5d8c3529ec Applying InnoDB snapshot innodb-5.1-ss3603
Detailed description of changes:
r3601 | marko | 2008-12-22 16:05:19 +0200 (Mon, 22 Dec 2008) | 9 lines
branches/5.1: Make
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
a true replacement of SET GLOBAL INNODB_LOCKS_UNSAFE_FOR_BINLOG=1.
This fixes an error that was introduced in r370, causing
semi-consistent read not to not unlock rows in READ UNCOMMITTED mode.
(Bug #41671, Issue #146)

rb://67 approved by Heikki Tuuri
2009-01-13 15:14:11 +01:00
Matthias Leich
50ad9d1fca Merge of fix for bug
41776 type_date.test may fail if run around midnight.
into GCA tree.
2009-01-13 15:04:28 +01:00
Joerg Bruehe
b72506881b Tool fix, needed for "compile-dist" to succeed on Solaris:
The default "awk" there cannot handle some of the scripts
which are used by BDB for configuration.

The fix:
1) Introduce a variable "AWK" in some of the BDB shell scripts,
2) search "gawk" and give it precedence over "awk"
   when assigning a value to the "AWK" variable,
   fail if neither is found,
3) use that variable when calling an "awk" program with one
   of the critical scripts.

The perfect solution would be to use the "awk" program found
by "configure", but we cannot follow that approach because
BDB's configuration is handled as a special case before the
overall "configure" is run. Because of this,
1) the "configure" result isn't yet available,
2) "configure" will not handle these BDB files.
Searching "gawk" is a (not-so-nice) way out.

Note that all this need not be perfectly portable,
it is needed only when we create a source distribution tarball
from a develkopment tree.
2009-01-13 14:52:22 +01:00
Matthias Leich
f557d37762 Merge of fix for bug
41111 events_bugs fails sporadically on pushbuild
into GCA tree
2009-01-13 14:39:04 +01:00
Matthias Leich
e0fdeaa222 Merge of fix for bug
41932 funcs_1: is_collation_character_set_applicability path too long for tar
into GCA tree
2009-01-13 14:26:24 +01:00
Matthias Leich
d657438ea0 Fix for Bug#40377 sporadic pushbuild failure in log_state: result mismatch
+ add workaround for bug 38124
+ messages into the protocol when sessions are switched
+ replace error numbers by error names
+ reset of system variables to initial values per subtest
+ remove a file created by this test
+ minor improvements in structure and formatting
2009-01-13 14:09:24 +01:00
Georgi Kodinov
83823a1477 Bug #38795: Automatic search depth and nested join's results in server crash
The greedy optimizer tracks the current level of nested joins and the position
inside these by setting and maintaining a state that's global for the whole FROM
clause.
This state was correctly maintained inside the selection of the next partial plan
table (in best_extension_by_limited_search()). 
greedy_search() also moves the current position by adding the last partial match 
table when there's not enough tables in the partial plan found by 
best_extension_by_limited_search().
This may require update of the global state variables that describe the current
position in the plan if the last table placed by greedy_search is not a top-level 
join table.
Fixed by updating the state after placing the partial plan table in greedy_search()
in the same way this is done on entering the best_extension_by_limited_search().
Fixed the signature of the function called to update the state : 
check_interleaving_with_nj
2009-01-13 13:09:12 +02:00
Patrick Crews
4e550c9d89 Bug#41888: Test binlog.binlog_database causing binlog_innodb to fail on Pushbuild.
Added cleanup of status variables to the end of binlog_database.
Re-recorded .result file to account for cleanup statement.
NOTE:  binlog.binlog_innodb also has had an FLUSH STATUS; statement added to it as well, but
adding this cleanup as a preventative measure.
2009-01-12 18:45:35 -05:00
Timothy Smith
a2ccdd8b6a Applying InnoDB snapshot innodb-5.1-ss3603
Detailed description of changes:
r3590 | marko | 2008-12-18 15:33:36 +0200 (Thu, 18 Dec 2008) | 11 lines
branches/5.1: When converting a record to MySQL format, copy the default
column values for columns that are SQL NULL.  This addresses failures in
row-based replication (Bug #39648).

row_prebuilt_t: Add default_rec, for the default values of the columns in
MySQL format.

row_sel_store_mysql_rec(): Use prebuilt->default_rec instead of
padding columns.

rb://64 approved by Heikki Tuuri
2009-01-12 23:35:05 +01:00
Timothy Smith
e26b8a6cfe Applying InnoDB snapshot innodb-5.1-ss3603
Detailed description of changes:
r3588 | inaam | 2008-12-18 14:26:54 +0200 (Thu, 18 Dec 2008) | 8 lines
branches/5.1

It is a bug in unused code. If we don't calculate the hash value when
calculating the mutex number then two pages which map to same hash
value can get two different mutex numbers.

Approved by: Marko
2009-01-12 23:32:50 +01:00
Timothy Smith
c22f99ef81 Applying InnoDB snapshot innodb-5.1-ss3603
Detailed description of changes:
r3412 | vasil | 2008-12-05 10:46:18 +0200 (Fri, 05 Dec 2008) | 7 lines
branches/5.1:

Add the traditional 2 spaces after the timestamp so the message does
not look like:

070223 13:26:01InnoDB: Warning: canno....
2009-01-12 23:32:11 +01:00
Timothy Smith
c36cf42f05 Applying InnoDB snapshot innodb-5.1-ss3603
Detailed description of changes:
r3257 | inaam | 2008-11-24 22:06:50 +0200 (Mon, 24 Nov 2008) | 13 lines
branches/5.1 bug#40760

The config param innodb_thread_concurrency is dynamically set and is
read when a thread enters/exits innodb. If the value is changed between
the enter and exit time the behaviour becomes erratic.
The fix is not to use srv_thread_concurrency when exiting, instead use
the flag trx->declared_to_be_inside_innodb.

rb://57

Approved by: Marko
2009-01-12 23:31:05 +01:00
Timothy Smith
2030b8cc09 Applying InnoDB snapshot innodb-5.1-ss3603
Detailed description of changes:

r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 6 lines
branches/5.1: row_mysql_store_col_in_innobase_format(): Correct a misleading
comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).

r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines
branches/5.1: fix bug#40386: Not flushing query cache after truncate

ha_statistics.records can not be 0 unless the table is empty, set to
1 instead. The original problem of bug 29507 is fixed in the server.

Additional test was done with the fix of bug 29507 in the server.

Approved by: Heikki (on IM)
2009-01-12 23:28:56 +01:00
Timothy Smith
9b79805805 Applying InnoDB snapshot innodb-5.1-ss3603
Detailed description of changes:
r2929 | marko | 2008-10-29 21:26:14 +0200 (Wed, 29 Oct 2008) | 13 lines
branches/5.1: dtype_get_sql_null_size(): return the correct storage
size of a SQL NULL column. (Bug #40369)

When MySQL Bug #20877 was fixed in r834, this function was
accidentally modified to return 0 or 1. Apparently, the only impact of
this bug is that fixed-length columns cannot be updated in-place from
or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
storage size as they should, no matter if NULL or non-NULL.  The bug
caused fixed-length NULL columns to occupy 1 byte.

rb://37 approved by Heikki over IM.
2009-01-12 23:27:11 +01:00
Timothy Smith
ab216c8721 Applying InnoDB snapshot innodb-5.1-ss3603
Detailed description of changes:
r2902 | vasil | 2008-10-28 12:10:25 +0200 (Tue, 28 Oct 2008) | 10 lines
branches/5.1:

Fix Bug#38189 innodb_stats_on_metadata missing

Make the variable innodb_stats_on_metadata visible to the users and
also settable at runtime. Previously it was only "visible" as a command
line startup option to mysqld.

Approved by:	Marko (https://svn.innodb.com/rb/r/36)
2009-01-12 23:08:22 +01:00
Joerg Bruehe
f730c8e4b9 Set the version: 5.0.72sp1 2009-01-12 22:02:40 +01:00
Chad MILLER
e3716a3dc0 Bug#38364: gen_lex_hash segmentation fault in debug build
Bug#36428: MY_MUTEX_INIT_FAST is used before initialization

On some thread implementations, we need a fake mutex attri-
bute as a placeholder, which we define as a global variable,
"my_fast_mutexattr".  Well. that must be initialized before 
used in any mutexes, and the ordering of initializations in 
the API function  my_init()  was wrong.

Now, put my_thread_global_init(), which initializes the attri-
butes that mutexes require.
2009-01-12 14:48:02 -05:00
Joerg Bruehe
4d97b06b4c Backport of a 5.0.74 fix into 5.0.72sp1:
Bug #39920: MySQL cannot deal with Leap Second expression in string literal.

Updated MySQL time handling code to react correctly on UTC leap second additions.
MySQL functions that return the OS current time, like e.g. CURDATE(), NOW() etc
will return :59:59 instead of :59:60 or 59:61.
As a result the reader will receive :59:59 for 2 or 3 consecutive seconds
during the leap second.

Original changesets:
> revision-id: kgeorge@mysql.com-20081201141835-rg8nnnadujj5wl9f
> parent: gshchepa@mysql.com-20081114172557-xh0jlzwal8ze3cy6
> committer: Georgi Kodinov <kgeorge@mysql.com>
> branch nick: B39920-5.0-bugteam
> timestamp: Mon 2008-12-01 16:18:35 +0200

> revision-id: kgeorge@mysql.com-20081201154106-c310zzy5or043rqa
> parent: kgeorge@mysql.com-20081201145656-6kjq91oga5nxbbob
> committer: Georgi Kodinov <kgeorge@mysql.com>
> branch nick: B39920-merge-5.0-bugteam
> timestamp: Mon 2008-12-01 17:41:06 +0200
2009-01-12 17:40:29 +01:00
Joerg Bruehe
037093b696 Backport of a 5.0.74 fix into 5.0.72sp1:
Bug#34760 Character set autodetection appears to fail
the problem is the same as reported in bug#20835,
so the fix is backport of bug#20835 patch.

Original changeset:
> revision-id: sergey.glukhov@sun.com-20081121123959-58ffhp2nitg7f40h
> parent: ramil@mysql.com-20081120100836-gct60cm67b1rui29
> committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
> branch nick: mysql-5.0-bugteam
> timestamp: Fri 2008-11-21 16:39:59 +0400
2009-01-12 17:24:00 +01:00
Joerg Bruehe
c13bbbdace Backport of a 5.0.74 fix into 5.0.72sp1:
BUG#38842 - Fix for 25951 seems incorrect

Original changeset:
> revision-id: svoj@mysql.com-20081111091051-54pr96nf1z2s30gx
> parent: vvaintroub@mysql.com-20081110201804-bi98gcs9avsf58ff
> committer: Sergey Vojtovich <svoj@mysql.com>
> branch nick: mysql-5.0-bugteam-bug38842
> timestamp: Tue 2008-11-11 13:10:51 +0400
2009-01-12 17:18:53 +01:00
Georgi Kodinov
b180a10233 Fixed a warning in sql_profile.cc 2009-01-12 18:17:15 +02:00
Joerg Bruehe
505df896b8 Backport of a 5.0.74 fix into 5.0.72sp1:
Bug #40021: Renaming view fails, archived .frm for view is
            missing after downgrade

Original changeset:
> revision-id: gshchepa@mysql.com-20081114172557-xh0jlzwal8ze3cy6
> parent: ramil@mysql.com-20081114074229-vj4fvfrpmz8jfub9
> committer: Gleb Shchepa <gshchepa@mysql.com>
> branch nick: mysql-5.0-bugteam
> timestamp: Fri 2008-11-14 21:25:57 +0400
2009-01-12 17:09:03 +01:00
Georgi Kodinov
ba506ca6b7 merged 41453 to 5.1-bugteam 2009-01-12 17:52:46 +02:00
Joerg Bruehe
cafe06c29a Backport of a 5.0.74 fix into 5.0.72sp1:
Remove bashisms from BUILD/compile-dist and configure.in,
so Bootstrap works on Solaris box;
- force GNU make in compile-dist;
- remove unportable "grep -q" from configure.in

Original changeset:
  revision-id: build@mysql.com-20081203041148-icwscut3bk09ds47
  parent: kgeorge@mysql.com-20081202125040-eiu6s7bk6s96s4xh
  author: timothy.smith@sun.com
  committer: MySQL Build Team <build@mysql.com>
  branch nick: mysql-5.0.74-release
  timestamp: Wed 2008-12-03 05:11:48 +0100
2009-01-12 16:46:19 +01:00
Davi Arnaut
a13eda38ae Post-merge fix for bug 37016: Update test case for row-based logging. 2009-01-12 10:48:33 -02:00
Tatiana A. Nurnberg
a7d03bf4ed Bug#31177: Server variables can't be set to their current values
Bounds-checks and blocksize corrections were applied to user-input,
but constants in the server were trusted implicitly. If these values
did not actually meet the requirements, the user could not set change
a variable, then set it back to the (wonky) factory default or maximum
by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).

Now checks also apply to the server's presets. Wonky values and maxima
get corrected at startup. Consequently all non-offsetted values the user
sees are valid, and users can set the variable to that exact value if
they so desire.
2009-01-12 06:32:49 +01:00
Tatiana A. Nurnberg
2048bd7117 auto-merge 2009-01-09 23:06:07 +01:00
Tatiana A. Nurnberg
d58db1c2b0 auto-merge 2009-01-09 22:26:51 +01:00
Georgi Kodinov
15010d7410 merged 5.0-bugteam -> 5.1-bugteam 2009-01-09 20:35:02 +02:00
Georgi Kodinov
06b3e7e21d fixed a compile warning 2009-01-09 20:30:55 +02:00
Georgi Kodinov
18526afc07 merged 41437 to 5.1-bugteam 2009-01-09 19:51:52 +02:00
Tatiana A. Nurnberg
bbb6d2d00d auto-merge 2009-01-09 16:49:03 +01:00
Tatiana A. Nurnberg
108f8d75a1 auto-merge 2009-01-09 16:48:02 +01:00
Georgi Kodinov
054bdbb43a merged 41437 to 5.0-bugteam 2009-01-09 17:08:42 +02:00
Sven Sandberg
3889dffcc0 BUG#37718: rpl.rpl_stm_mystery22 fails sporadically on pushbuild
Problem 1: The test waits for an error in the slave sql thread,
then resolves the error and issues 'start slave'. However, there
is a gap between when the error is reported and the slave sql
thread stops. If this gap was long, the slave would still be
running when 'start slave' happened, so 'start slave' would fail
and cause a test failure.
Fix 1: Made wait_for_slave_sql_error wait for the slave to stop
instead of wait for error in the IO thread. After stopping, the
error code is verified. If the error code is wrong, debug info
is printed. To print debug info, the debug printing code in
wait_for_slave_param.inc was moved out to a new file,
show_rpl_debug_info.inc.
Problem 2: rpl_stm_mystery22 is a horrible name, the comments in
the file didn't explain anything useful, the test was generally
hard to follow, and the test was essentially duplicated between
rpl_stm_mystery22 and rpl_row_mystery22.
Fix 2: The test is about conflicts in the slave SQL thread,
hence I renamed the tests to rpl_{stm,row}_conflicts. Refactored
the test so that the work is done in
extra/rpl_tests/rpl_conflicts.inc, and
rpl.rpl_{row,stm}_conflicts merely sets some variables and then
sourced extra/rpl_tests/rpl_conflicts.inc.
The tests have been rewritten and comments added.
Problem 3: When calling wait_for_slave_sql_error.inc, you always
want to verify that the sql thread stops because of the expected
error and not because of some other error. Currently,
wait_for_slave_sql_error.inc allows the caller to omit the error
code, in which case all error codes are accepted.
Fix 3: Made wait_for_slave_sql_error.inc fail if no error code
is given. Updated rpl_filter_tables_not_exist accordingly.
Problem 4: rpl_filter_tables_not_exist had a typo, the dollar
sign was missing in a 'let' statement.
Fix 4: Added dollar sign.
Problem 5: When replicating from other servers than the one named
'master', the wait_for_slave_* macros were unable to print debug
info on the master.
Fix 5: Replace parameter $slave_keep_connection by
$master_connection.
2009-01-09 15:12:31 +01:00
Matthias Leich
c6d81f8467 1. Fix for Bug#41111 events_bugs fails sporadically on pushbuild
2. Avoid bad effects of bug 41925 Warning 1366 Incorrect string value:
                                  ...  for column processlist.info
3. Add poll routines which ensure that subtests meet stable scenarios.
   This does not change the sense of the subtests.
2009-01-09 15:10:03 +01:00
Tatiana A. Nurnberg
1d15df432e auto-merge 2009-01-09 14:22:15 +01:00
Mattias Jonsson
2314183806 merge 2009-01-09 14:21:29 +01:00
Mattias Jonsson
b43b8c2479 Bug#40972: Partition pruning can lead to crash for bad dates
post push fix, added test found a valgrind warning
2009-01-09 14:18:08 +01:00
Sven Sandberg
a24862ed46 BUG#41924: high-level replication functions are not commented
Adding comments to some of the high-level functions in replication.
2009-01-09 13:49:24 +01:00
Georgi Kodinov
53ba196e11 Bug #41543: Assertion `m_status == DA_ERROR' failed in Diagnostics_area::sql_errno
No need to mask the error code returned by getting the next row to end of file when
doing filesort.
2009-01-09 14:04:47 +02:00
Georgi Kodinov
7c3ae51647 Bug #41437: Value stored in 'case' lacks charset, causes segfault
When substituting system constant functions with a constant result
the server was not expecting that the function may return NULL.
Fixed by checking for NULL and returning Item_null (in the relevant
collation) if the result of the system constant function was NULL.
2009-01-09 13:50:18 +02:00
Sven Sandberg
b727dab9fd Merged fix of BUG#41961 in 5.1-bugteam with recent changes in 5.1-bugteam 2009-01-09 11:37:08 +01:00
Sven Sandberg
7fc48e2227 merge fix of BUG#41961 in 5.1-bugteam with recent changes in 5.1-bugteam 2009-01-09 11:35:26 +01:00
Davi Arnaut
577e390ece Bug#37016: TRUNCATE TABLE removes some rows but not all
The special TRUNCATE TABLE (DDL) transaction wasn't being properly
rolled back if a error occurred during row by row deletion. The
error can be caused by a foreign key restriction imposed by InnoDB
SE and would cause the server to erroneously issue a implicit
commit.

The solution is to rollback the transaction if a truncation via row
by row deletion fails, otherwise commit. All effects of a TRUNCATE 
ABLE operation are rolled back if a row by row deletion fails.
2009-01-09 08:20:32 -02:00
Sven Sandberg
56b7d87f73 BUG#41961: Some log_event types do not skip post-header when reading
Problem: when the server reads a log_event from file, it should read
the post-header lengths from the format_description_log_event. Some
event types which currently have post-header length 0 did not do this,
and instead had a hard-coded zero length for the post-header. That
means the current server version will not be able to read future
versions of these events.
Fix: make the reader functions read the post-header.
2009-01-09 10:48:01 +01:00
Horst Hunger
2ce96d24ec due to merge. 2009-01-09 10:25:02 +01:00