- 04 Aug, 2009 1 commit
-
-
Davi Arnaut authored
-
- 31 Jul, 2009 1 commit
-
-
Davi Arnaut authored
The problem is that the C API function mysql_real_connect only attempts to connect to the first IP address returned for a hostname. This can be a problem if a hostname maps to multiple IP address and the server is not bound to the first one that is returned. The solution is to augment mysql_real_connect so that it attempts to connect to all IPv4 addresses that a domain name maps to. The function goes over the list of address until a successful connection is established. No test case is provided as its not possible to test this automatically with the current testing infrastructure. sql-common/client.c: The client will try to connect to each IPv4 address from the list of addresses that hostname maps to until a successful connection is established or there are no more address.
-
- 04 Aug, 2009 1 commit
-
-
Satya B authored
-
- 03 Aug, 2009 9 commits
-
-
Gleb Shchepa authored
in a conditional commentary at the new SELECT ... INTO OUTFILE ... CHARACTER SET syntax has been updated to 5.1.38.
-
Alfranio Correia authored
-
Alfranio Correia authored
-
Alfranio Correia authored
Install procedure does not copy *.inc files located under the mysql-test/t directory. Therefore, this patch moves the rpl_trigger.inc to the mysql-test/include directory.
-
Satya B authored
storage/innobase/Makefile.am storage/innobase/Makefile.am: Remove the 'single' space character after include/lock0iter.h
-
Mikael Ronstrom authored
-
Mikael Ronstrom authored
-
Alfranio Correia authored
-
Alfranio Correia authored
-
- 02 Aug, 2009 1 commit
-
-
Alfranio Correia authored
The test case fails sporadically on Windows while trying to overwrite an unused binary log. The problem stems from the fact that MySQL on Windows does not immediately unlock/release a file while the process that opened and closed it is still running. In BUG 38603, this issue was circumvented by stopping the MySQL process, copying the file and then restarting the MySQL process. Unfortunately, such facilities are not available in the 5.0. Other approaches such as stopping the slave and issuing change master do not work because the relay log file and index are not closed when a slave is stopped. So to fix the problem, we simply don't run on windows the part of the test that was failing.
-
- 01 Aug, 2009 1 commit
-
-
Davi Arnaut authored
http://lists.mysql.com/commits/53569 sql/ha_ndbcluster_binlog.cc: Remove extraneous mutex lock which could cause the server to deadlock.
-
- 31 Jul, 2009 11 commits
-
-
Jim Winstead authored
-
Jim Winstead authored
-
Davi Arnaut authored
engine to the partition_csv test. Also remove test case that was duplicated. Fix connection procedure with the embedded server. mysql-test/r/partition.result: Update test case result. mysql-test/r/partition_csv.result: Update test case result. mysql-test/t/partition.test: Move test cases to the partition_csv test. mysql-test/t/partition_csv.test: Move tests from partition.test and remove duplicate. Tweaky connection procedure to work with embedded.
-
Ignacio Galarza authored
-
Tatiana A. Nurnberg authored
-
Ignacio Galarza authored
-
Ignacio Galarza authored
- Define and pass compile time path variables as pre-processor definitions to mimic the makefile build. - Set new CMake version and policy requirements explicitly. - Changed DATADIR to MYSQL_DATADIR to avoid conflicting definition in Platform SDK header ObjIdl.h which also defines DATADIR.
-
Gleb Shchepa authored
when used with --tab 1) New syntax: added CHARACTER SET clause to the SELECT ... INTO OUTFILE (to complement the same clause in LOAD DATA INFILE). mysqldump is updated to use this in --tab mode. 2) ESCAPED BY/ENCLOSED BY field parameters are documented as accepting CHAR argument, however SELECT .. INTO OUTFILE silently ignored rests of multisymbol arguments. For the symmetrical behavior with LOAD DATA INFILE the server has been modified to fail with the same error: ERROR 42000: Field separator argument is not what is expected; check the manual 3) Current LOAD DATA INFILE recognizes field/line separators "as is" without converting from client charset to data file charset. So, it is supposed, that input file of LOAD DATA INFILE consists of data in one charset and separators in other charset. For the compatibility with that [buggy] behaviour SELECT INTO OUTFILE implementation has been saved "as is" too, but the new warning message has been added: Non-ASCII separator arguments are not fully supported This message warns on field/line separators that contain non-ASCII symbols. client/mysqldump.c: mysqldump has been updated to call SELECT ... INTO OUTFILE statement with a charset from the --default-charset command line parameter. mysql-test/r/mysqldump.result: Added test case for bug #30946. mysql-test/r/outfile_loaddata.result: Added test case for bug #30946. mysql-test/t/mysqldump.test: Added test case for bug #30946. mysql-test/t/outfile_loaddata.test: Added test case for bug #30946. sql/field.cc: String conversion code has been moved from check_string_copy_error() to convert_to_printable() for reuse. sql/share/errmsg.txt: New WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED message has been added. sql/sql_class.cc: The select_export::prepare() method has been modified to: 1) raise the ER_WRONG_FIELD_TERMINATORS error on multisymbol ENCLOSED BY/ESCAPED BY field arguments like LOAD DATA INFILE; 2) warn with a new WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED message on non-ASCII field or line separators. The select_export::send_data() merhod has been modified to convert item data to output charset (see new SELECT INTO OUTFILE syntax). By default the BINARY charset is used for backward compatibility. sql/sql_class.h: The select_export::write_cs field added to keep output charset. sql/sql_load.cc: mysql_load has been modified to warn on non-ASCII field or line separators with a new WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED message. sql/sql_string.cc: New global function has been added: convert_to_printable() (common code has been moved from check_string_copy_error()). sql/sql_string.h: New String::is_ascii() method and new global convert_to_printable() function have been added. sql/sql_yacc.yy: New syntax: added CHARACTER SET clause to the SELECT ... INTO OUTFILE (to complement the same clause in LOAD DATA INFILE). By default the BINARY charset is used for backward compatibility.
-
Davi Arnaut authored
If using statement based replication (SBR), repeatedly calling statements which are unsafe for SBR will cause a warning message to be written to the error for each statement. This might lead to filling up the error log and there is no way to disable this behavior. The solution is to only log these message (about statements unsafe for statement based replication) if the log_warnings option is set. For example: SET GLOBAL LOG_WARNINGS = 0; INSERT INTO t1 VALUES(UUID()); SET GLOBAL LOG_WARNINGS = 1; INSERT INTO t1 VALUES(UUID()); In this case the message will be printed only once: [Warning] Statement may not be safe to log in statement format. Statement: INSERT INTO t1 VALUES(UUID()) mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result: Add test case result for Bug#46265 mysql-test/suite/binlog/t/binlog_stm_unsafe_warning-master.opt: Make log_error value available. mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test: Add test case for Bug#46265 sql/sql_class.cc: Print warning only if the log_warnings is enabled.
-
Tatiana A. Nurnberg authored
We disallow the partitioning of a log table. You could however partition a table first, and then point logging to it. This is not only against the docs, it also crashes the server. We catch this case now. mysql-test/r/partition.result: results for 40281 mysql-test/t/partition.test: test for 40281: show that trying to log to partitioned table fails rather to crash the server sql/ha_partition.cc: Signal that we no longer support logging to partitioned tables, as per the docs. sql/sql_partition.cc: Some commands like "USE ..." have no select, yet we may try to parse partition info after their execution if user set a partitioned table as log target. This shouldn't lead to a NULL-deref/crash.
-
Jim Winstead authored
-
- 30 Jul, 2009 1 commit
-
-
Davi Arnaut authored
Initialize LOCK_open as a adapative mutex on platforms where the PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP macro is available. The flag indicates that a thread should spin (busy wait) for some time on a locked adaptive mutex before blocking (sleeping). It's intended to to alleviate performance problems due to LOCK_open being a highly contended mutex. sql/mysqld.cc: Initialize LOCK_open as a adapative mutex.
-
- 31 Jul, 2009 1 commit
-
-
V Narayanan authored
-
- 30 Jul, 2009 10 commits
-
-
Matthias Leich authored
-
Matthias Leich authored
-
Davi Arnaut authored
-
Joerg Bruehe authored
Check for "stack overrun" doesn't work, server crashes
-
Joerg Bruehe authored
-
Matthias Leich authored
-
Matthias Leich authored
-
Matthias Leich authored
-
Joerg Bruehe authored
correctly if the compiler optimizes too clever. This has happaned on HP-UX 11.23 (IA64) at optimization level "+O2", causing bug#42213: Check for "stack overrun" doesn't work, server crashes Fix it by adding a pragma that prevents this optimization. As a result, it should be safe to use "+O2" on this platform (unless there is some other, optimizer-related, bug which is just currently masked because we use resudec optimization). config/ac-macros/misc.m4: Our autoconf function "MYSQL_STACK_DIRECTION" is meant to determine whether the stack grows towards higher or towards lower addresses. It does this by comparing the addresses of a variable (which is local to a recursive function) on different nesting levels. This approach requires that the function is really implemented as a recursive function, with each nested call allocating a new stack frame containing the local variable. If, however, the compiler is optimizing so clever that the recursive function is implemented by a loop, then this test will not produce correct results. This has happened on HP-UX 11.23 (IA64) when HP's compiler was called with optimization "+O2" (not with "+O1"), reported as bug#42213. Rather than starting a race with the compiler and making the function so complicated that this optimization does not happen, the idea is to prevent the optimization by adding a pragma. For HP, this is "#pragma noinline". If we encounter other compilers which also optimize too clever, we may add their pragmas here. It is a debatable issue whether such pragmas should be guarded by conditional compiling or not, the reviewers voted to do it. It seems HP has different compilers, "ANSI C" and "aCC", on the affected platform "__HP_cc" ("ANSI C") is predefined. To be on the safe side, the pragma will also take effect if HP's "aCC" compiler is used, or any other compiler on HP-UX.
-
V Narayanan authored
A REPLACE in the MERGE engine is actually a REPLACE into one (FIRST or LAST) of the underlying MyISAM tables. So in effect the server works on the meta data of the MERGE table, while the real insert happens in the MyISAM table. The MERGE table has no index, while MyISAM has a unique index. When a REPLACE into a MERGE table ( and the REPLACE conflicts with a duplicate in a child table) is done, we try to access the duplicate key information for the MERGE table. This information actually does not exist, hence this results in a crash. The problem can be resolved by modifying the MERGE engine to provide us the duplicate key information directly, instead of just returning the MyISAM index number as the error key. Then the SQL layer (or "the server") does not try to access the key_info of the MERGE table, which does not exist. The current patch modifies the MERGE engine to provide the position for a record where a unique key violation occurs. include/myisammrg.h: Bug#45800 crash when replacing into a merge table and there is a duplicate Add a member to the st_mymerge_info structure that will store the duplicate key offset in the MERGE table. This offset will be the sum of the record offset of the MyISAM table within the MERGE table and the offset of the record within the MyISAM table. mysql-test/r/merge.result: Bug#45800 crash when replacing into a merge table and there is a duplicate Result file for the test case. mysql-test/t/merge.test: Bug#45800 crash when replacing into a merge table and there is a duplicate Added test case for both REPLACE and INSERT...ON DUPLICATE UPDATE. storage/myisammrg/ha_myisammrg.cc: Bug#45800 crash when replacing into a merge table and there is a duplicate The info method now will process the HA_STATUS_ERRKEY flag and will return the index and the offset of the duplicate key. storage/myisammrg/ha_myisammrg.h: Bug#45800 crash when replacing into a merge table and there is a duplicate Set the HA_DUPLICATE_POS flag to indicate that the duplicate key information is now available in the MERGE storage engine. storage/myisammrg/myrg_info.c: Bug#45800 crash when replacing into a merge table and there is a duplicate We modify the myrg_status function to return the position of the duplicate key. The duplicate key position in the MERGE table will be the MyISAM file_offset and the offset within the MyISAM table of the start position of the records.
-
- 29 Jul, 2009 3 commits
-
-
Kristofer Pettersson authored
Fixed wrong prototype declaration which cased build failure on solaris.
-
Kristofer Pettersson authored
-
Kristofer Pettersson authored
an assertion in a debug build. The reason is that the C API doesn't support multiple result sets for prepared statements and attempting to execute a stored routine which returns multiple result sets sometimes lead to a network error. The network error sets the diagnostic area prematurely which later leads to the assert when an attempt is made to set a second server state. This patch fixes the issue by changing the scope of the error code returned by sp_instr_stmt::execute() to include any error which happened during the execution. To assure that Diagnostic_area::is_sent really mean that the message was sent all network related functions are checked for return status. libmysqld/lib_sql.cc: * Changed prototype to return success/failure status on net_send_error_packet(), net_send_ok(), net_send_eof(), write_eof_packet(). mysql-test/r/sp_notembedded.result: * Added test case for bug 44521 mysql-test/t/sp_notembedded.test: * Added test case for bug 44521 sql/protocol.cc: * Changed prototype to return success/failure status on net_send_error_packet(), net_send_ok(), net_send_eof(), write_eof_packet(). sql/protocol.h: * Changed prototype to return success/failure status on net_send_error_packet(), net_send_ok(), net_send_eof(), write_eof_packet(). sql/sp_head.cc: * Changed prototype to return success/failure status on net_send_error_packet(), net_send_ok(), net_send_eof(), write_eof_packet().
-