1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00
Commit Graph

37337 Commits

Author SHA1 Message Date
unknown
e21076463c Fix more mysqltest warnings. 2007-06-01 20:05:34 +04:00
unknown
a00e5c6896 Do not ignore mysqltest language interpreter warnings. 2007-06-01 18:06:40 +04:00
unknown
68cc0a34b7 Fix a typo in the test case.
mysql-test/r/rpl_loaddata.result:
  Update result.
mysql-test/t/rpl_loaddata.test:
  Fix a typo in the test file.
2007-06-01 18:04:25 +04:00
unknown
d8cd88cd2a Fix some mysqltest warnings.
mysql-test/r/sp.result:
  Update results.
mysql-test/t/mysql.test:
  Fix a typo.
mysql-test/t/mysqltest.test:
  Fix a typo.
mysql-test/t/order_by.test:
  Fix a typo.
mysql-test/t/row.test:
  Remove an unsupported command.
mysql-test/t/sp.test:
  Fix a typo.
mysql-test/t/subselect3.test:
  Fix  mysqltest warnings - now it warns when sees some suspicious --
  comment
2007-06-01 17:49:01 +04:00
unknown
c73e0cfb60 Merge pilot.(none):/data/msvensson/mysql/bug28373/my50-bug28373
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint


mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
2007-06-01 15:43:04 +02:00
unknown
7816d02ef7 Merge pilot.(none):/data/msvensson/mysql/mysql-4.1-maint
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint
2007-06-01 15:18:46 +02:00
unknown
0bf2d59fcf Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint
2007-06-01 14:53:58 +02:00
unknown
861b193ea1 Merge pilot.(none):/data/msvensson/mysql/bug28497/my50-bug28497
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint
2007-06-01 14:35:47 +02:00
unknown
9f1998b1a5 Merge pilot.(none):/data/msvensson/mysql/bug28497/my41-bug28497-query_get_value
into  pilot.(none):/data/msvensson/mysql/mysql-4.1-maint
2007-06-01 14:35:30 +02:00
unknown
3b74591e36 Add missing semicolon after connect command 2007-06-01 13:39:54 +02:00
unknown
865f294fcf Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28366-5.0-opt-win
2007-06-01 13:43:17 +03:00
unknown
4e2283f4ba Turn query_logging back on to avoid sideeffects in folloing test section 2007-06-01 12:38:41 +02:00
unknown
4bdbc3396e Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  dsl-hkibras1-ff5dc300-70.dhcp.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug27716-multi_upd_no_binlog


mysql-test/r/innodb.result:
  Auto merged
mysql-test/t/innodb.test:
  Auto merged
sql/sql_update.cc:
  Auto merged
2007-06-01 13:22:52 +03:00
unknown
2fdaa5931d Merge pilot.(none):/data/msvensson/mysql/bug28497/my41-bug28497-query_get_value
into  pilot.(none):/data/msvensson/mysql/bug28497/my50-bug28497


client/mysqltest.c:
  Auto merged
mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
2007-06-01 12:04:05 +02:00
unknown
5b0e66a752 Bug#28497 wait_for_slave_to_stop can cause random replication mysql-test failures
- Add funtion "query_get_value to allow reading a fields value
   into a $variable


client/mysqltest.c:
  - Add function "let $var= query_get_value(<query>,<colname>,<row>)"
    making it possible to read a value from a specific field in a query 
    into a $variable.
mysql-test/r/mysqltest.result:
  Add test cases for "query_get_value"
mysql-test/t/mysqltest.test:
  Add test cases for "query_get_value"
2007-06-01 12:01:42 +02:00
unknown
12d55a8cc6 Merge mysql.com:/home/svoj/devel/mysql/BUG28574/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG28574/mysql-5.0-engines


sql/lock.cc:
  SCCS merged
2007-06-01 13:54:31 +05:00
unknown
93b101243d BUG#28574 - repair table causes queries to fail with various
corruption errors: 126,134,145

When one thread attempts to lock two (or more) tables and another
thread executes statement that aborts these locks (e.g. REPAIR
TABLE) we may get a table object with wrong lock type in a table
cache.

For example if SELECT FROM t1,t2 was aborted, subsequent INSERT
INTO t1 may be executed under read lock.

As a result we may get various table corruptions and even a server
crash.

This is fixed by resetting lock type in case lock was aborted by
another thread.

I failed to create reasonable test case for this bug.


sql/lock.cc:
  If thr_multi_lock was aborted by another thread, it unlocks tables
  that were locked before one that was aborted. Lock type for tables
  that were after a table that was aborted preserved. Thus we need
  to reset lock data in case thr_multi_lock was aborted.
2007-06-01 13:50:13 +05:00
unknown
6b94fc579f Bug #27716 multi-update did partially and has not binlogged
Implementation of mysql_multi_update did not call multi_update::send_error method in some cases 
(see the test reported on bug page and test cases in changeset).

Fixed with deploying the method, ::send_error() is refined to get binlogging code which works whenever 
there is modified non-transactional table.
thd->no_trans_update.stmt flag is set in to TRUE to ease testing though being the beginning of relative 
bug#27417 fix (addresses a part of those issues).
Eliminating two minor issues (small bugs) in multi_update methods.
This patch for multi-update also addresses a part of the issues reported in bug#13270,bug#23333.


mysql-test/r/innodb.result:
  result changed
mysql-test/r/multi_update.result:
  results changed
mysql-test/t/innodb.test:
  regression test for the bug combining transactional and non-transaction tables
mysql-test/t/multi_update.test:
  regression tests added - erred query must be binlogged
sql/sql_update.cc:
  making a call to multi_update::send_error when mysql_select return an error;
  deploying binlogging inside of ::send_error;
  refining multi_update::send_eof() to mark binlogging work done when its call to ::do_updates() errs
  and the query is binlogged with the error. ::send_error() will be called after all but
  do not do anything;
  thd->no_trans_update.stmt is corrected to be set to TRUE according to the existed code pattern. 
  Although this part relates to another bugs (bug#27417 etc) it is needed here for testing;
  Eliminating a separate issue in multi_update::do_updates where                
  either one of the class members trans_safe, transactional_tables was          
  set after the per-table loop whereas both should be calculated during         
  looping. 
  Eliminating a separate issue in ::send_eof() where thd->no_trans_update.all won't be set TRUE when
  amoung others there'd be at least one modified transactional table.
  Binlogging is done to satisfy to general character bug#13270,bug#23333 so that those won't have
  fixes specific for multi-update.
2007-06-01 11:14:04 +03:00
unknown
9fa12a386b Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
2007-06-01 02:51:35 +05:00
unknown
e8bf6c5b69 Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-27827-fresh
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt


mysql-test/r/view.result:
  Merge with bug #27827 fix.
mysql-test/t/view.test:
  Merge with bug #27827 fix.
2007-06-01 02:40:49 +05:00
unknown
8fe16346eb sql_view.cc:
Additional patch for bug #28244 to workaround valgrind warnings.


sql/sql_view.cc:
  Additional patch for bug #28244 to workaround valgrind warnings.
2007-06-01 02:25:11 +05:00
unknown
d173306942 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/28494-bug-5.0-opt-mysql
2007-06-01 01:18:45 +04:00
unknown
b4a35cd76e Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
The end_update() function uses the Item::save_org_in_field() function to
save original values of items into the group buffer. But for the 
Item_func_set_user_var this method was mapped to the save_in_field method.
The latter function wrongly decides to use the result_field. This leads to
saving incorrect value in the grouping buffer and wrong result of the whole
query.

The can_use_result_field argument of the bool type is added to the
Item_func_set_user_var::save_in_field() function. If it is set to FALSE
then the item's result field won't be used. Otherwise it will be detected
whether the result field will be used (old behaviour).
Two wrapping functions for the function above are added to the 
Item_func_set_user_var class:
the save_in_field(Field *field, bool no_conversions) - it calls the above
function with the can_use_result_field set to TRUE.
the save_org_in_field(Field *field) - same, but the can_use_result_field
is set to FALSE.


mysql-test/t/user_var.test:
  Added a test case for the bug#28494: Grouping by Item_func_set_user_var
  produces incorrect result.
mysql-test/r/user_var.result:
  Added a test case for the bug#28494: Grouping by Item_func_set_user_var
  produces incorrect result.
sql/item_func.cc:
  Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
  The can_use_result_field argument of the bool type is added to the
  Item_func_set_user_var::save_in_field() function. If it is set to FALSE
  then the item's result field won't be used. Otherwise it will be detected
  whether the result field will be used (old behaviour).
sql/item_func.h:
  Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
  The can_use_result_field argument of the bool type is added to the
  Item_func_set_user_var::save_in_field() function.
  Two wrapping functions for the function above are added to the 
  Item_func_set_user_var class:
  the save_in_field(Field *field, bool no_conversions) - it calls the above
  function with the can_use_result_field set to TRUE.
  the save_org_in_field(Field *field) - same, but the can_use_result_field
  is set to FALSE.
2007-06-01 01:17:14 +04:00
unknown
e2c7a5b044 Fixed bug #27827.
ON conditions from JOIN expression were ignored at CHECK OPTION
check when updating a multi-table view with CHECK OPTION.

The st_table_list::prep_check_option function has been
modified to to take into account ON conditions at CHECK OPTION check
It was also changed to build the check option condition only once
for any update used in PS/SP.


sql/table.h:
  Fixed bug #27827.
  The st_table_list::check_option_processed variable has been added
  to build the check option condition only once for any update used
  in PS/SP.
sql/table.cc:
  Fixed bug #27827.
  The st_table_list::prep_check_option function has been
  modified to to take into account ON conditions at CHECK OPTION check
  It was also changed to build the check option condition only once
  for any update used in PS/SP.
mysql-test/t/view.test:
  Updated test case for bug #27827.
mysql-test/r/view.result:
  Updated test case for bug #27827.
2007-06-01 02:15:40 +05:00
unknown
a471267a24 Merge chilla.local:/home/mydev/mysql-5.0-bug23068
into  chilla.local:/home/mydev/mysql-5.0-axmrg


sql/mysqld.cc:
  Auto merged
2007-05-31 20:08:23 +02:00
unknown
489a3fe4ee Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
Setting a key_cache_block_size which is not a power of 2
could corrupt MyISAM tables.

A couple of computations in the key cache code use bit
operations which do only work if key_cache_block_size
is a power of 2.

Replaced bit operations by arithmetic operations
to make key cache able to handle block sizes that are
not a power of 2.


include/keycache.h:
  Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
  Removed element 'key_cache_shift' from KEY_CACHE after
  the changes in mf_keycache.c made it unused.
mysql-test/r/key_cache.result:
  Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
  Added test result
mysql-test/t/key_cache.test:
  Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
  Added test
mysys/mf_keycache.c:
  Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
  Replaced bit operations by arithmetic operations
  to make key cache able to handle block sizes that are
  not a power of 2.
2007-05-31 20:04:54 +02:00
unknown
b33ae435b1 Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28244
2007-05-31 19:07:10 +05:00
unknown
9d37b35cad sql_view.cc:
Patch to eliminate compilation warning.


sql/sql_view.cc:
  Patch to eliminate warning.
2007-05-31 19:06:30 +05:00
unknown
7ff06317a4 Bug#28373 mysqltest test case fails with binlog disabled
- Update tests to be independent how the mysqld was started


mysql-test/r/mysqltest.result:
  Update result file
mysql-test/t/mysqltest.test:
  The purpose of these three test is to check that "sync_with_master"
  detects illegal parameters, the parameter checking is done before
  sending any command to the server and the "save_master_pos" can be
  removed in two cases to make the tests independent of mysqld.
  The thirs test is removed since it's a syntax check that is done
  after the command has been executed and is done for all comands in
  mysqltest - it's tested elsewhere and is not specific to "sync_with_master"
2007-05-31 15:58:22 +02:00
unknown
88423fae0d Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
2007-05-31 18:19:38 +05:00
unknown
9172429817 Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28244
2007-05-31 18:16:29 +05:00
unknown
d22c33992a Fixed bug #28244.
When the same VIEW was created at the master side twice,
malformed (truncated after the word 'AS') query string 
was forwarded to client side, so error messages on the
master and client was different, and replication was
broken.

The mysql_register_view function call failed
too early: fields of `view' output argument of this 
function was not filled yet with correct data required
for query replication.
The mysql_register_view function also copied pointers to 
local buffers into a memory allocated by the caller.


sql/sql_view.cc:
  Fixed bug #28244.
  Checking of existence of VIEW .frm file has been
  moved down to the place, when `view' argument is
  completely filled with proper data.
  view->query.str and view->query.md5 pointers has been
  set to the NULL before return from the mysql_register_view
  function.
mysql-test/t/rpl_view.test:
  Updated test case for bug #28244.
mysql-test/r/rpl_view.result:
  Updated test case for bug #28244.
2007-05-31 17:30:56 +05:00
unknown
572ec56a94 bug#27741: udf test fails on AIX < 5.3
problem #1: udf_example.so does not get built on AIX

solution#1: build it yourself using
cd sql; gcc  -g -I ../include/ -I /usr/include/ -lpthread  \
-shared -o udf_example.so udf_example.c; mv udf_example.so \
.libs/ 

problem#2 (the bug): udf_example fails because it does not
recognize the variable LD_LIBRARY_PATH when doing dl_open(),
it looks at LIBPATH

solution#2: add the library path to LIBPATH

problem#3: udf_example returns the wrong result length since 
it relies on strmov to return a pointer to the end of the 
string that it copies. On AIX builds, where m_string.h is not
included (m_string defines a macro expanding strmov to stpcpy),
there is a macro expanding strmov to strcpy, which returns a 
pointer to the first character.

solution#3: define strmov as stpcpy.

problem#4: #2 applies on hp-ux as well, but this platform
looks at SHLIB_PATH

solution#4: added the library path to SHLIB_PATH


mysql-test/mysql-test-run.pl:
  bug#27741: Added library paths to LIBPATH ( shared library 
  path environment variable used on AIX) and
  SHLIB_PATH (ditto on hp-ux)
sql/udf_example.c:
  bug#27741: define strmov as stpcpy rather than strcpy and 
  include string.h. The definition for strmov in the standalone 
  case was not maintained properly
2007-05-31 14:22:21 +02:00
unknown
23baac6af3 Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-05-31 14:09:04 +02:00
unknown
ab64a8d18b Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work-nn
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
2007-05-31 14:06:19 +02:00
unknown
b21a0587bb fix test case
mysql-test/r/binlog.result:
  transaction ids increased by one due to have_log_bin.inc
mysql-test/t/binlog.test:
  transaction ids for ps-protocol increased by one due to have_log_bin.inc
2007-05-31 14:05:07 +02:00
unknown
0655cf1024 fixed not matching if/endif (cmake)
CMakeLists.txt:
  Fixed not matching if/endif (cmake)
2007-05-31 13:53:44 +02:00
unknown
b8587557b1 Merge polly.local:/home/kaa/src/maint/bug27643/my50-bug27643
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint


sql/sql_select.cc:
  Auto merged
2007-05-31 15:01:49 +04:00
unknown
f18a10c6c1 Fix for bug #27643 "query failed : 1114 (The table '' is full)
Problem:

HASH indexes on VARCHAR columns with binary collations did not ignore trailing spaces from strings before comparisons. This could result in duplicate records being successfully inserted into a MEMORY table with unique key constraints.

As a direct consequence of the above, internal MEMORY tables used for GROUP BY calculation in testcases for bug #27643 contained duplicate rows which resulted in duplicate key errors when converting those temporary tables to MyISAM. Additionally, that error was incorrectly converted to the 'table is full' error.

Solution:

- ignore trailing spaces in VARCHAR fields with binary collations when calculating hashes.
- return a proper error from create_myisam_from_heap() when conversion fails.


mysql-test/r/ctype_ucs2_def.result:
  Added a testcase for bug #27643.
mysql-test/r/heap_hash.result:
  Added a testcase for bug #27643.
mysql-test/t/ctype_ucs2_def.test:
  Added a testcase for bug #27643.
mysql-test/t/heap_hash.test:
  Added a testcase for bug #27643.
sql/sql_select.cc:
  Return an appropriate error instead of 'table is full' when conversion from MEMORY to MyISAM fails.
strings/ctype-bin.c:
  Added my_hash_sort_8bit_bin() which ignores trailing spaces when calculating hashes, and is now used for VARCHAR columns instead of my_hash_sort_bin().
strings/ctype-mb.c:
  Ignore trailing spaces when calculating a string hash in my_hash_sort_mb_bin().
strings/ctype-ucs2.c:
  Ignore trailing spaces when calculating a string hash in my_hash_sort_ucs2_bin().
2007-05-31 14:54:44 +04:00
unknown
fc9682b937 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-05-31 12:26:49 +02:00
unknown
0c138881c7 fix test case broken for ps-protocol by previous push
mysql-test/t/mix_innodb_myisam_binlog.test:
  have_log_bin.inc increases transaction count by one, modify ps-protocol substitutions accordingly
2007-05-31 12:21:55 +02:00
unknown
63dbf6f482 Merge polly.local:/home/kaa/src/maint/bug28121/my50-bug28121
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint


strings/strtod.c:
  Auto merged
2007-05-31 12:27:12 +04:00
unknown
eb056fb82b Merge lthalmann@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/nfsdisk1/lars/bk/mysql-5.0-rpl


mysql-test/t/disabled.def:
  Auto merged
2007-05-31 10:20:58 +02:00
unknown
2c9976a989 Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-05-31 10:13:06 +02:00
unknown
0fd8118948 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work-nn


mysql-test/t/blackhole.test:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
mysql-test/t/sp_trans.test:
  Auto merged
2007-05-31 10:09:34 +02:00
unknown
cde3be8612 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28598


sql/sql_select.cc:
  Auto merged
2007-05-31 12:43:59 +05:00
unknown
c063a677ac some test cases cannot run with --skip-log-bin
mysql-test/r/mix_innodb_myisam_binlog.result:
  have_log_bin.inc increases transaction count by onw
mysql-test/t/binlog.test:
  test obviously requires binlog
mysql-test/t/blackhole.test:
  test requires binlog for now
mysql-test/t/ctype_cp932_binlog.test:
  test requires binlog
mysql-test/t/ctype_cp932_notembedded.test:
  test requires binlog for now
mysql-test/t/ctype_ucs_binlog.test:
  test requires binlog
mysql-test/t/drop_temp_table.test:
  test requires binlog for now
mysql-test/t/flush_block_commit_notembedded.test:
  test requires binlog for now
mysql-test/t/insert_select-binlog.test:
  test requires binlog
mysql-test/t/mix_innodb_myisam_binlog.test:
  test requires binlog
mysql-test/t/mysqlbinlog-cp932.test:
  test requires binlog
mysql-test/t/mysqlbinlog.test:
  test requires binlog
mysql-test/t/mysqlbinlog2.test:
  test requires binlog
mysql-test/t/mysqltest.test:
  test requires binlog for now
mysql-test/t/sp_trans.test:
  test requires binlog for now
mysql-test/t/user_var-binlog.test:
  test requires binlog for now
2007-05-31 09:34:24 +02:00
unknown
ebedff7775 Fixed bug #28598.
mysqld crashed when a long-running explain query was killed from
another connection.

When the current thread caught a kill signal executing the function
best_extension_by_limited_search it just silently returned to  
the calling function greedy_search without initializing elements of
the join->best_positions array.
However, the greedy_search function ignored thd->killed status
after a calls to the best_extension_by_limited_search function, and
after several calls the greedy_search function used an uninitialized
data from the join->best_positions[idx] to search position in the
join->best_ref array. 
That search failed, and greedy_search tried to call swap_variables
function with NULL argument - that caused a crash.


sql/sql_select.cc:
  Fixed bug #28598.
  choose_plan(), greedy_search(), best_extension_by_limited_search()
  and find_best() functions have been changed to return TRUE in case
  of fatal error.
mysql-test/t/kill.test:
  Updated test case for bug #28598.
mysql-test/r/kill.result:
  Updated test case for bug #28598.
2007-05-31 12:10:21 +05:00
unknown
3242007b78 mysqldump.c:
Fix harmless typo (caught thanks to warning)


client/mysqldump.c:
  Fix harmless typo (caught thanks to warning)
2007-05-31 00:40:56 +02:00
unknown
7d06ed8281 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50


strings/strtod.c:
  Auto merged
2007-05-30 23:46:21 +02:00