Commit graph

26410 commits

Author SHA1 Message Date
Vladislav Vaintroub
b3d8871c8d In DBUG_EXECUTE_IF, change abort() to DBUG_ABORT() to avoid popups on windows 2010-01-18 23:42:22 +01:00
Vladislav Vaintroub
b030db38af merge 2010-01-18 23:00:48 +01:00
fe99d91593 Fix for perfschema.binlog_stmt failure:
Problem: The test case failed because: (i) warning text in 
         result file differed from the warning output by the 
         server, and (ii) binlog contents in result file did
         not show the statements logged wrapped in BEGIN/COMMIT
         as it is the case after WL 2687.
      
Solution: We update the result file, but first we change the
          unsafe warning text to also refer to performance_schema
          table(s). This required changing the result files for
          existing test cases that provide output for warnings 
          related to ER_BINLOG_UNSAFE_SYSTEM_TABLE. "Grepping" in
          result files, shows that only binlog_unsafe contained
          reference to such a warning.
      
          We also update the result file with the missing 
          BEGIN/COMMIT statements.
2010-01-15 13:06:33 +08:00
Vladislav Vaintroub
166c321141 fix for 32 bit Linux problem reported by Timothy 2010-01-15 00:54:43 +01:00
Alfranio Correia
fb0ee3ab8e merge mysql-next-mr --> mysql-5.1-rpl-merge
Conflicts:
  Text conflict in sql/sql_insert.cc
2010-01-14 16:02:55 +00:00
Vladislav Vaintroub
6e7a75bf5f merge 2010-01-14 16:07:27 +01:00
Vladislav Vaintroub
cd8a37094c WITH_MYSQLD_LIBS=>WITH_MYSQLD_LDFLAGS 2010-01-14 00:09:40 +01:00
Vladislav Vaintroub
ccf2600f66 Do not link with mtmalloc on Solaris.
add WITH_MYSQLD_LIBS for extra linker flags for mysqld
2010-01-13 21:56:51 +01:00
Vladislav Vaintroub
17dd1b248a merge 2010-01-13 21:14:42 +01:00
Alfranio Correia
a1aa459458 merge mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge 2010-01-13 13:27:25 +00:00
Mats Kindahl
6a7e3ca55e Merging with mysql-5.1-rep+2-delivery1 2010-01-13 14:00:48 +01:00
Mats Kindahl
f8c074e1ba Replacing error variable that was lost. 2010-01-13 13:59:58 +01:00
Mats Kindahl
86291b043b Merging with mysql-5.1-rep+2-delivery1 2010-01-13 13:37:01 +01:00
Alfranio Correia
46d1689b7c merge mysql-next-mr --> mysql-5.1-rpl-merge
Conflicts:
  Text conflict in sql/log.cc
  Text conflict in sql/slave.cc
  Text conflict in sql/sql_base.cc
2010-01-13 12:22:34 +00:00
Mats Kindahl
a3c4467515 WL#5151: Conversion between different types when
replicating

Replace c_ptr() calls with c_ptr_safe() calls to
avoid valgrind warnings.

Adding code to to handle the case that no metadata
was present in the table map for the column.

Allow first parameter to unpack_row() to be NULL,
in which case no source tables is used and hence
no checks nor conversions are done.

Clarifying some comments and fixing documentation
for unpack_row().
2010-01-13 12:58:42 +01:00
Marc Alff
bed80b9c82 Merge mysql-next-mr (revno 2958) --> mysql-next-mr-marc 2010-01-12 10:58:38 -07:00
b805e3d4d6 Manual merge from next-mr. 2010-01-12 20:07:09 +08:00
Marc Alff
67a48e1a4c WL#2360 Performance schema
Part V: performance schema implementation
2010-01-11 18:47:27 -07:00
Vladislav Vaintroub
b518871130 merge 2010-01-11 17:46:16 +01:00
Alexander Nozdrin
7973ab7c36 Auto-merge from mysql-next-mr. 2010-01-11 16:10:51 +03:00
Alfranio Correia
d866afe56f merge mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge 2010-01-07 17:39:01 +00:00
Alfranio Correia
6f7929b143 merge mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge
Conflicts:

Text conflict in .bzr-mysql/default.conf
Text conflict in mysql-test/extra/rpl_tests/rpl_loaddata.test
Text conflict in mysql-test/r/mysqlbinlog2.result
Text conflict in mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
Text conflict in mysql-test/suite/binlog/r/binlog_unsafe.result
Text conflict in mysql-test/suite/rpl/r/rpl_insert_id.result
Text conflict in mysql-test/suite/rpl/r/rpl_loaddata.result
Text conflict in mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result
Text conflict in mysql-test/suite/rpl/r/rpl_udf.result
Text conflict in mysql-test/suite/rpl/t/rpl_slow_query_log.test
Text conflict in sql/field.h
Text conflict in sql/log.cc
Text conflict in sql/log_event.cc
Text conflict in sql/log_event_old.cc
Text conflict in sql/mysql_priv.h
Text conflict in sql/share/errmsg.txt
Text conflict in sql/sp.cc
Text conflict in sql/sql_acl.cc
Text conflict in sql/sql_base.cc
Text conflict in sql/sql_class.h
Text conflict in sql/sql_db.cc
Text conflict in sql/sql_delete.cc
Text conflict in sql/sql_insert.cc
Text conflict in sql/sql_lex.cc
Text conflict in sql/sql_lex.h
Text conflict in sql/sql_load.cc
Text conflict in sql/sql_table.cc
Text conflict in sql/sql_update.cc
Text conflict in sql/sql_view.cc
Conflict adding files to storage/innobase.  Created directory.
Conflict because storage/innobase is not versioned, but has versioned children.  Versioned directory.
Conflict adding file storage/innobase.  Moved existing file to storage/innobase.moved.
Conflict adding files to storage/innobase/handler.  Created directory.
Conflict because storage/innobase/handler is not versioned, but has versioned children.  Versioned directory.
Contents conflict in storage/innobase/handler/ha_innodb.cc
2010-01-07 15:39:11 +00:00
Marc Alff
a4c3bc618b WL#2360 Performance schema
Part IV: sql instrumentation
2010-01-06 22:42:07 -07:00
Luis Soares
28286c7494 Fix for rpl_bug31076 valgrind failure which popped up after
WL#5151 was pushed.

Problem 1: Some old binlog events do not contain metadata. This
makes checking whether the field can be converted or not rather
impossible because one cannot compare, for instance, field sizes
from original table and target table.

Solution 1: When an event does not contain metadata, we will just
check if field types are equal and assume that original field
definition matched with the one in the target table.

Problem 2: There is a second fix, which involves lack of
information regarding maybe_null. This was causing a conditional
jump warning when creating a conversion table. 

Solution 2: We will just assume that all fields that need to be
in the conversion table may be null.
2010-01-07 01:04:38 +00:00
Guilhem Bichot
7382b84f8b Merge with latest next-mr-bugfixing 2010-01-06 16:31:11 +01:00
Tor Didriksen
9ffdd1cc92 Bug #50087 Interval arithmetic for Event_queue_element is not portable.
Subtraction of two unsigned months yielded a (very large) positive value.
Conversion of this to a signed value was not necessarily well defined.

Solution: do the subtraction on signed values.
2010-01-06 15:00:51 +01:00
Guilhem Bichot
716c1bce83 WL#5197 "Move @@engine_condition_pushdown to @@optimizer_switch"
"set engine_condition_pushdown" is deprecated, engine condition pushdown is controlled
by a new "set optimizer_switch=engine_condition_pushdown=on|off".
2010-01-06 11:54:45 +01:00
Guilhem Bichot
284b836cd3 fixing wrong indentation in two Makefile.am, which prevented the Anjuta IDE from parsing the MySQL tree. 2010-01-06 11:27:35 +01:00
Alfranio Correia
2e35289e32 merge 5.1-rep+3 --> 5.1-rep+2-delivery1 2010-01-05 17:35:33 +00:00
Alfranio Correia
a0946fa3d1 BUG#50038 Deadlock on flush logs with concurrent DML and RBR
In auto-commit mode, updating both trx and non-trx tables (i.e. issuing a mixed
statement) causes the following sequence of events:

1 - "Flush trx changes" (MYSQL_BIN_LOG::write) - T1:
  1.1 - mutex_lock (&LOCK_log)
  1.2 - mutex_lock (&LOCK_prep_xids)
  1.3 - increase prepared_xids
  1.4 - mutex_unlock (&LOCK_prep_xids)
  1.5 - mutex_unlock (&LOCK_log)

2 - "Flush non-trx changes" (MYSQL_BIN_LOG::write) - T1:
  2.1 - mutex_lock (&LOCK_log)
  2.2 - mutex_unlock (&LOCK_log)

3. "unlog" - T1
  3.1 - mutex_lock (&LOCK_prep_xids)
  3.2 - decrease prepared xids
  3.3 - pthread_cond_signal(&COND_prep_xids);
  3.4 - mutex_unlock (&LOCK_prep_xids)

The "FLUSH logs" command produces the following sequence of events:

1 - "FLUSH logs" command (MYSQL_BIN_LOG::new_file_impl) - user thread:
  1.1 - mutex_lock (&LOCK_log)
  1.2 - mutex_lock (&LOCK_prep_xids)
  1.3 - while (prepared_xids)  pthread_cond_wait(..., &LOCK_prep_xids);
  1.4 - mutex_unlock (&LOCK_prep_xids)
  1.5 - mutex_unlock (&LOCK_log)

A deadlock will arise if T1 flushes the trx changes and thus increases
prepared_xids but before it is able to continue the execution and flush the
non-trx changes, an user thread calls the "FLUSH logs" command and wait that
the prepared_xids is decreased and gets to zero. However, T1 cannot proceed
with the call to "Flush non-trx changes" because it will block in the mutex
"LOCK_log" and by consequence cannot complete the execution and call the
unlog to decrease the prepared_xids.

To fix the problem, we ensure that the non-trx changes are always flushed
before the trx changes.

Note that if you call "Flush non-trx changes" and a concurrent "FLUSH logs" is
issued, the "Flush non-trx changes" may block, but a deadlock will never happen
because the prepared_xids will eventually get to zero. Bottom line, there will
not be any transaction able to increase the prepared_xids because they will
block in the mutex "LOCK_log" (MYSQL_BIN_LOG::write) and those that increased
the prepared_xids will eventually commit and decrease the prepared_xids.
2010-01-05 16:55:23 +00:00
Jorgen Loland
3dab08f157 Bug#48920: COUNT DISTINCT returns 1 for NULL values when in a
subquery in the select list
      
When a dependent subquery with count(distinct <col>) was 
evaluated multiple times, the Distinct_Aggregator was reused. 
However, the Aggregator was not reset, so when the subquery was
evaluated for the next record in the outer select, old dependent
info was used.
      
The fix is to clear() the existing aggregator in 
Item_sum::set_aggregator(). This ensures that the aggregator is
reevaluated with the new dependent information.
2010-01-04 10:39:42 +01:00
Alexander Nozdrin
8050affe24 Auto-merge from mysql-next-mr. 2009-12-29 13:02:43 +03:00
Alexey Kopytov
85d5a08b51 Manual merge of WL#4738 from mysql-next-mr:
- backported code that handles %f/%g arguments in 
my_vsnprintf.c from 6.0 
- backported %f/%g tests in unittest/mysys/my_vsnprintf-t.c 
from 6.0 
- replaced snprintf("%g") in sql/set_var.cc with my_gcvt() 
- removed unnecessary "--replace-result"s for Windows in 
mysql-test/suite/sys_vars/t/long_query_time_basic.test 
- some test results adjustments
2009-12-28 15:54:16 +03:00
Alfranio Correia
7ff2dcea09 merge mysql-5.1-rep+2 --> mysql-5.1-rep+2-delivery1 2009-12-28 00:06:12 +00:00
Alfranio Correia
d08385fe23 merging from 5.1 to rep+2 starting at gca(5.1, next-mr) == ramil@mysql.com-20091215170821-eexh9rqrnw1ruzh2 2009-12-27 23:47:04 +00:00
Sergei Golubchik
28056ba204 don't show --ssl* option if ssl is not compiled in 2009-12-25 22:36:59 +01:00
Vladislav Vaintroub
e8bdef8fcd merge 2009-12-25 16:49:21 +01:00
Alexander Nozdrin
ece5ad57e9 Auto-merge from mysql-next-mr. 2009-12-25 16:22:25 +03:00
Vladislav Vaintroub
e64ba44004 enable Cygwin build again 2009-12-25 03:22:23 +01:00
Alexey Kopytov
064ebe5769 Addendum to the backport patch for WL#2934:
Unlike other platforms --mfpmath=sse is the default 
gcc mode on Mac OS X Intel. So it is unnecessary
to switch FPU to double precision mode (in fact,
it even breaks some math library functions).
2009-12-25 00:06:53 +03:00
Luis Soares
9b0e91044e Valgrind warnings that have poped up ever since WL#5151 was pushed.
This fixes two more warnings for tests: 
  - rpl_row_colSize
  - rpl_typeconv
2009-12-24 15:55:46 +00:00
Luis Soares
b85a186c66 BUG#49836: Replication of geometric fields is broken after WL#5151
Metadata for geometric fields was not being properly stored by
the slave in its the table definition. This happened because
MYSQL_TYPE_GEOMETRY was not included in the 'switch... case' that
handles field metadata according to the field type. Therefore, it
would default to 0, leading to always have a mismatch between
master's field and slave fields'. 

We fix this by deploying the missing 'case MYSQL_TYPE_GEOMETRY:'.
2009-12-24 01:07:35 +00:00
Sergei Golubchik
dec9ad1e25 backport typos found 2009-12-23 17:51:03 +01:00
Vladislav Vaintroub
c716ed9ad8 recompile partition plugin for embedded server, its behavior depends on WITH_EMBEDDED_SERVER preprocessor definition 2009-12-23 16:37:22 +01:00
Sergei Golubchik
a85539a83a fixed "engine not found" error in open_binary_frm
corrected rotten test
2009-12-23 13:06:03 +01:00
Alfranio Correia
62b10996f2 merge mysql-5.1-rep+2 --> mysql-5.1-rep+2-delivery1 2009-12-23 12:02:57 +00:00
Alfranio Correia
61813cb0a8 merge mysql-5.1-rep+3 --> mysql-5.1-rep+2-delivery1 2009-12-23 11:52:03 +00:00
8e1d1e45f1 Bug #47863 binlog_format should be writable only at transaction boundaries
When @@session.binlog_format is modified inside a transaction,
it can cause slave to go out of sync.
      
To fix the problem, make the session variable 'binlog_format' 
read-only inside a transaction.
2009-12-23 18:43:45 +08:00
Alexey Kopytov
f02525be83 Backport of WL #2934: Make/find library for doing float/double
to string conversions and vice versa" 
Initial import of the dtoa.c code and custom wrappers around it 
to allow its usage from the server code. 
 
Conversion of FLOAT/DOUBLE values to DECIMAL ones or strings 
and vice versa has been significantly reworked. As the new 
algoritms are more precise than the older ones, results of such 
conversions may not always match those obtained from older 
server versions. This in turn may break compatibility for some 
applications. 
 
This patch also fixes the following bugs: 
- bug #12860 "Difference in zero padding of exponent between 
Unix and Windows" 
- bug #21497 "DOUBLE truncated to unusable value" 
- bug #26788 "mysqld (debug) aborts when inserting specific 
numbers into char fields" 
- bug #24541 "Data truncated..." on decimal type columns 
without any good reason"
2009-12-22 19:23:13 +03:00
Alexey Botchkov
54133bab9b Bug#46570 test udf fails with valgrind
the value obtained by String::c_ptr() method not always
    has the ending zero. Particularly in this bug the
    dlsym() expects zero-ending string.
    The String::c_ptr_safe() is more correct here.

per-file comments:
  sql/item_func.cc
Bug#46570      test udf fails with valgrind
    c_ptr_safe() used for UDF parameters as the library expects
    zero-ending strings.
2009-12-22 16:37:21 +04:00