Commit graph

4162 commits

Author SHA1 Message Date
unknown
601b5bca66 Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
After merge fix.
2005-05-31 20:45:41 +02:00
unknown
57d4adf60c Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Hand merged from 4.0.


sql/lock.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_handler.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2005-05-31 19:37:24 +02:00
unknown
cf2188ca39 Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
1.) Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
Used the new option in create_table_from_items().
It is necessary to prevent the SELECT table from being reopend.
It would get new storage assigned for its fields, while the
SELECT part of the command would still use the old (freed) storage.
2.) Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
against a global read lock. This prevents a deadlock in
CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
and avoids the creation of new tables during a global read lock.
3.) Replaced set_protect_against_global_read_lock() and
unset_protect_against_global_read_lock() by
wait_if_global_read_lock() and start_waiting_global_read_lock()
in the INSERT DELAYED handling.


mysql-test/r/create.result:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Added test results.
mysql-test/t/create.test:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Added tests which do not require concurrency.
sql/lock.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
  Changed the parameter list.
  Removed two unnecessary functions. Their functionality is included in
  wait_if_global_read_lock() and start_waiting_global_read_lock().
sql/mysql_priv.h:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Changed the declaration of mysql_lock_tables().
  Added definitions for the new options.
sql/sql_acl.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_base.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_handler.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_insert.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Replaced set_protect_against_global_read_lock() and
  unset_protect_against_global_read_lock() by
  wait_if_global_read_lock() and start_waiting_global_read_lock()
  in the INSERT DELAYED handling.
  Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_parse.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
  against a global read lock. This prevents a deadlock in
  CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
  and avoids the creation of new tables during a global read lock.
sql/sql_table.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Adjusted mysql_lock_tables() calls to the new argument list.
  Used the new option in create_table_from_items().
2005-05-31 11:08:14 +02:00
unknown
7b4385f472 a fix (bug #7405: group_concat with distinct and rollup => ignores distinct in some rows).
sql/item_sum.cc:
  a fix (bug #7405: group_concat with distinct and rollup => ignores distinct in some rows).
  Code changed in order to work with rollup extension.
2005-05-31 10:54:33 +05:00
unknown
5a54820003 olap.result, olap.test:
Added test cases for bug #7894.
sql_select.cc:
  Fixed bug #7894: GROUP BY queries with ROLLUP returned
  wrong results for expressions containing group by columns.
  The fix ensured correct results by replacement of all
  occurrences of group by fields in non-aggregate expressions
  for corresponding ref objects and preventing creation of
  fields in temporary tables for expression containing group
  by fields.


sql/sql_select.cc:
  Fixed bug #7894: GROUP BY queries with ROLLUP returned
  wrong results for expressions containing group by columns.
  The fix ensured correct results by replacement of all
  occurrences of group by fields in non-aggregate expressions
  for corresponding ref objects and preventing creation of
  fields in temporary tables for expression containing group
  by fields.
mysql-test/t/olap.test:
  Added test cases for bug #7894.
mysql-test/r/olap.result:
  Added test cases for bug #7894.
2005-05-30 03:01:51 -07:00
unknown
604799534a merge
sql/item.cc:
  Auto merged
2005-05-26 18:33:57 +03:00
unknown
80b0baa740 fixed problem with long string results of expressions in UNIONS (BUG#10025)
mysql-test/r/union.result:
  test for Bug #10025
mysql-test/t/union.test:
  test for Bug #10025
sql/item.cc:
  set HA_OPTION_PACK_RECORD and change type to MYSQL_TYPE_STRING, to allow correct field creation in case of length more then 255 (creation STRING field with length more then 255)
2005-05-26 17:30:12 +03:00
unknown
e07f6ebf7f Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1
into sinisa.nasamreza.org:/mnt/work/mysql-4.1
2005-05-24 22:44:18 +03:00
unknown
5e5eb0a64b Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1
into zim.(none):/home/brian/mysql/mysql-4.1
2005-05-24 10:48:03 -07:00
unknown
be9845b004 Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1
into sinisa.nasamreza.org:/mnt/work/mysql-4.1
2005-05-24 19:47:18 +03:00
unknown
edcc645b8e Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
2005-05-24 18:23:31 +03:00
unknown
801c2c275a Added a test case for Bug#8009.
sql/item.cc:
  Fixed Bug#8009.
2005-05-24 17:50:17 +03:00
unknown
8643958c5f Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-4.1
into mdk10.(none):/home/reggie/bk/41test2
2005-05-24 09:02:56 -05:00
unknown
6a96b815e7 removed unneeded reserved_win_names testcase
BitKeeper/deleted/.del-reserved_win_names.test~334b02776c4247a7:
  Delete: mysql-test/t/reserved_win_names.test
BitKeeper/deleted/.del-reserved_win_names.require~be6a130b5430085f:
  Delete: mysql-test/r/reserved_win_names.require
BitKeeper/deleted/.del-reserved_win_names.result~ea458226c0df5337:
  Delete: mysql-test/r/reserved_win_names.result
2005-05-24 09:01:06 -05:00
unknown
3a23b67566 Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-4.1
into xiphis.org:/usr/home/antony/work2/p3-bug7241.5
2005-05-24 13:40:25 +01:00
unknown
efc7b884eb Bug#7241 - Invalid response when DELETE .. USING and LOCK TABLES used.
Only acquire necessary write lock for multi-delete


mysql-test/r/lock.result:
  Test for Bug#7241
mysql-test/t/lock.test:
  Test for Bug#7241
sql/sql_parse.cc:
  Bug#7241
    Don't acquire write lock on all tables.
    Make sure to set lock_type on real table_list
2005-05-24 11:44:34 +01:00
unknown
b36f9f2eed Merge mysql.com:/home/bkroot/mysql-4.1 into mysql.com:/home/bk/c4944-4.1 2005-05-24 01:09:23 +02:00
unknown
97bde75e4e BUG# 9148 Denial of service
fixups of test case and comment formatting


BitKeeper/deleted/.del-reserved_win_names-master.opt~e56da049a7ce9a5b:
  ***MISSING TEXT***
mysql-test/r/lowercase_table.result:
  added my test for bug #9148 to this test case
mysql-test/t/lowercase_table.test:
  added my test for bug #9148 to this test case
mysys/my_fopen.c:
  reformatted comments
mysys/my_open.c:
  reformatted comments
2005-05-23 14:48:25 -05:00
unknown
bc40c03d3a Merge mysql.com:/home/bkroot/mysql-4.1 into mysql.com:/home/bk/c4944-4.1 2005-05-23 16:23:05 +02:00
unknown
c1ae672add BUG# 9148: Denial of service
The problem was that on Windows the access method indicates that access to file 
such as "com1" and "lpt1" is allowed (since they are device names) and
this causes mysql to attempt to open them as databases or tables.

The fix was to write our own my_access method that uses other Win32 functions
to determine if the given argument is indeed a file and has to requested
mode.


VC++Files/mysys/mysys.dsp:
  added my_access
VC++Files/mysys/mysys_ia64.dsp:
  added my_access.c
include/my_sys.h:
  if on windows, we use my_access.
  if not on windows, then my_access points to the native access method
mysys/Makefile.am:
  added my_access to mysys build file
mysys/mf_pack.c:
  changed call to access to my_access
sql/sql_db.cc:
  changed call to access to my_access
2005-05-20 16:04:10 -05:00
unknown
ec00a4558c Additions for --add-drop-database
client/client_priv.h:
  Adding option for drop database
client/mysqldump.c:
  Work for adding of --add-drop-database
mysql-test/r/mysqldump.result:
  New test results for --add-drop-databases
mysql-test/t/mysqldump.test:
  Tests for --add-drop-databases
2005-05-20 06:56:02 -07:00
unknown
9364130a1a Merge mysql.com:/home/bkroot/mysql-4.1 into mysql.com:/home/bk/c4944-4.1 2005-05-19 12:59:46 +02:00
unknown
e439e7c649 CSC#4944: Adding File_size to output of SHOW BINARY lOGS
mysql-test/r/rpl_log.result:
  Adding File_size to output of SHOW BINARY lOGS
mysql-test/r/rpl_rotate_logs.result:
  Adding File_size to output of SHOW BINARY lOGS
sql/sql_repl.cc:
  Adding File_size to output of SHOW BINARY lOGS
2005-05-19 12:34:15 +02:00
unknown
27378545f9 Merge serg@bk-internal.mysql.com:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
2005-05-19 09:50:43 +02:00
unknown
275aa24740 after merge fix 2005-05-19 09:47:13 +02:00
unknown
7e507270b8 merged
sql/unireg.cc:
  Auto merged
2005-05-18 22:14:08 +02:00
unknown
9e8cad1d5a Merge book.sanja.is.com.ua:/Users/bell/mysql/bk/mysql-4.1
into book.sanja.is.com.ua:/Users/bell/mysql/bk/work-4.1
2005-05-18 22:58:48 +03:00
unknown
7a223fe8c9 Merge mysql.com:/home/mydev/mysql-4.1
into mysql.com:/home/mydev/mysql-4.1-4100
2005-05-18 19:45:59 +02:00
unknown
0461b482cb Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
After review version.
Added a condition for MERGE tables. These do not have unique
indexes. But every key could be a unique key on the underlying
MyISAM table. So get the maximum key length for MERGE tables
instead of the maximum unique key length. This is used for
buffer allocation in write_record().


mysql-test/r/merge.result:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  The test result.
mysql-test/t/merge.test:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  The test case does not in all cases show the problem
  without the bugfix. The improper memory allocation
  might get through undetected in many cases.
sql/ha_myisammrg.h:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  Set a table_flag for the MERGE engine telling that any index
  might be unique without being specified as such.
sql/handler.h:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  Added a new table_flag telling that any index
  might be unique without being specified as such.
sql/sql_insert.cc:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  Changed the freeing of the memory to be symmetric to its
  allocation (my_safe_alloc -> my_safe_afree).
  This is not directly related to the bug.
sql/table.cc:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  Added a condition for MERGE tables. These do not have unique
  indexes. But every key could be a unique key on the underlying
  MyISAM table. So get the maximum key length for MERGE tables
  instead of the maximum unique key length. This is used for
  buffer allocation in write_record().
2005-05-18 19:40:39 +02:00
unknown
a217404883 Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1
into sinisa.nasamreza.org:/mnt/work/mysql-4.1
2005-05-18 19:43:48 +03:00
unknown
53af474ba0 Update mysqldump test and results
mysql-test/r/mysqldump.result:
  Update results
mysql-test/t/mysqldump.test:
  Fix test to not include version number in results
2005-05-18 09:40:12 -07:00
unknown
0f02da9f4e Resolve bugfix merge
client/mysqldump.c:
  Merge bug fix
mysql-test/r/mysqldump.result:
  Update results
mysql-test/t/mysqldump.test:
  Merge bug fix
2005-05-18 09:25:06 -07:00
unknown
57ba8d3ed1 Merge book.sanja.is.com.ua:/Users/bell/mysql/bk/mysql-4.1
into book.sanja.is.com.ua:/Users/bell/mysql/bk/work-4.1
2005-05-18 16:58:37 +03:00
unknown
8c4e286064 reduced 1 server reloding during test
BitKeeper/deleted/.del-grant_cache-master.opt~1b04b4b1116a7a2:
  Delete: mysql-test/t/grant_cache-master.opt
mysql-test/r/grant_cache.result:
  query cache management moved inside test
mysql-test/t/grant_cache.test:
  query cache management moved inside test to privent server reloading during test
2005-05-18 16:41:32 +03:00
unknown
2f9c6377f0 Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1
into sinisa.nasamreza.org:/mnt/work/mysql-4.1


sql/sql_yacc.yy:
  Auto merged
2005-05-18 15:28:13 +03:00
unknown
0a2b07254f olap.result, olap.test:
Added test cases for bug #7914.
sql_select.cc:
  Fixed bug #7914: rollup over expresssions such as sum(a)+1.


sql/sql_select.cc:
  Fixed bug #7914: rollup over expresssions such as sum(a)+1.
mysql-test/t/olap.test:
  Added test cases for bug #7914.
mysql-test/r/olap.result:
  Added test cases for bug #7914.
2005-05-18 05:15:48 -07:00
unknown
159aac8015 Merge book.sanja.is.com.ua:/Users/bell/mysql/bk/mysql-4.1
into book.sanja.is.com.ua:/Users/bell/mysql/bk/work-4.1
2005-05-17 19:10:53 +03:00
unknown
2598faafd7 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug10095
2005-05-16 22:21:19 +02:00
unknown
bc933962a3 relaxed DBUG_ASSERT in Item_int_with_ref::new_item() to "any constant" (BUG#10020)
mysql-test/r/subselect.result:
  test fro bug 10020
mysql-test/t/subselect.test:
  bug 10020 test suite
sql/item.cc:
  any constant allowed here BUG#10020)
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-05-16 12:19:10 +03:00
unknown
b11b13e9bd Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/psergey/mysql-4.0-bug10095
2005-05-15 22:58:10 +02:00
unknown
06736ab48a Fix for BUG#10095: {wrong query results because of incorrect constant propagation}
The problem: base_list::remove didn't modify base_list::last when removing 
the last list element.
The fix: If we remove the last element, find the element before it (by walking
from the beginning of the list) and set base_list::last accordingly.

The list gets corrupted in both 4.0 and 4.1. There are no visible problems in 
current 4.1 because current 4.1 doesn't call where_cond->fix_fields() after 
constant propagation step.


mysql-test/r/select.result:
  Testcase for BUG#10095
mysql-test/t/select.test:
  Testcase for BUG#10095
sql/sql_list.h:
  Fix for BUG#10095: {wrong query results because of incorrect constant propagation} 
  The problem: base_list::remove didn't modify base_list::last when removing 
  the last list element.
  The fix: If we remove the last element, find the element before it (by walking
  from the beginning of the list) and set base_list::last accordingly.
2005-05-15 22:56:45 +02:00
unknown
2059908b9c After merge fixes
BitKeeper/deleted/.del-outfile2.result~fb702ee2518d8e6d:
  Delete: mysql-test/r/outfile2.result
libmysql/libmysql.c:
  Fix indentation for new function mysql_set_character_set()
mysql-test/r/alter_table.result:
  Fix test to be in same order as in 4.0
mysql-test/r/innodb.result:
  After merge fix
mysql-test/r/insert_update.result:
  Add extra test for insert into ... on duplicate key upate
mysql-test/r/outfile.result:
  After merge fix
mysql-test/t/alter_table.test:
  Fix test to be in same order as in 4.0
mysql-test/t/insert_update.test:
  Add extra test for insert into ... on duplicate key upate
mysql-test/t/outfile.test:
  After merge fix
sql/item_func.cc:
  After merge fix
sql/sql_table.cc:
  After merge fix
2005-05-14 16:24:36 +03:00
unknown
f8bb892314 Fix for BUG#9622: Make index statistics collection in MyISAM behave the same
way in ALTER TABLE ... ENABLE KEYS, ANALYZE TABLE and after bulk insert:
now statistics collection always assumes NULLs are inequal. 


mysql-test/r/myisam.result:
  Testcase for BUG#9622
mysql-test/t/myisam.test:
  Testcase for BUG#9622
2005-05-14 00:21:53 +02:00
unknown
037b0a7b14 Merge with 4.0
BitKeeper/etc/logging_ok:
  auto-union
mysql-test/r/outfile2.result:
  Merge rename: mysql-test/r/outfile.result -> mysql-test/r/outfile2.result
myisam/mi_key.c:
  Auto merged
mysql-test/r/alter_table.result:
  Auto merged
mysql-test/r/auto_increment.result:
  Auto merged
mysql-test/r/innodb.result:
  Auto merged
mysql-test/t/auto_increment.test:
  Auto merged
mysql-test/t/innodb.test:
  Auto merged
sql/handler.h:
  Auto merged
mysql-test/t/alter_table.test:
  Merge
mysql-test/t/outfile.test:
  Merge
sql/item_func.cc:
  Merge
sql/share/czech/errmsg.txt:
  Merge
sql/share/danish/errmsg.txt:
  Merge
sql/share/dutch/errmsg.txt:
  Merge
sql/share/english/errmsg.txt:
  Merge
sql/share/estonian/errmsg.txt:
  Merge
sql/share/french/errmsg.txt:
  Merge
sql/share/german/errmsg.txt:
  Merge
sql/share/greek/errmsg.txt:
  Merge
sql/share/hungarian/errmsg.txt:
  Merge
sql/share/italian/errmsg.txt:
  Merge
sql/share/japanese/errmsg.txt:
  Merge
sql/share/korean/errmsg.txt:
  Merge
sql/share/norwegian-ny/errmsg.txt:
  Merge
sql/share/norwegian/errmsg.txt:
  Merge
sql/share/polish/errmsg.txt:
  Merge
sql/share/portuguese/errmsg.txt:
  Merge
sql/share/romanian/errmsg.txt:
  Merge
sql/share/russian/errmsg.txt:
  Merge
sql/share/slovak/errmsg.txt:
  Merge
sql/share/spanish/errmsg.txt:
  Merge
sql/share/swedish/errmsg.txt:
  Merge
sql/share/ukrainian/errmsg.txt:
  Merge
sql/sql_table.cc:
  Merge
sql/sql_yacc.yy:
  Keep old
sql/unireg.cc:
  Merge
2005-05-14 00:01:40 +03:00
unknown
cdd6bc9bfe Fixed wrong buffer usage for auto-increment key with blob part that caused CHECK TABLE to report that the table was wrong. (Bug #10045)
myisam/mi_key.c:
  Fixed wrong buffer usage for auto-increment key with blob part that caused
  CHECK TABLE to report that the table was wrong. (Bug #10045)
mysql-test/r/auto_increment.result:
  New test case
mysql-test/t/auto_increment.test:
  New test case
2005-05-13 23:08:29 +03:00
unknown
2a695127a6 Fixes during review
mysql-test/r/select.result:
  Better error message
mysql-test/t/select.test:
  Better error message
sql/hostname.cc:
  Join identical code
sql/sql_yacc.yy:
  Combine code (and get a better error message)
strings/ctype-ucs2.c:
  Cast pointer differencess
2005-05-13 14:04:32 +03:00
unknown
7c441dd115 Change create_field->offset to store offset from start of fields, independent of null bits.
Count null_bits separately from field offsets and adjust them in case of primary key parts.
(Previously a CREATE TABLE with a lot of null fields that was part of a primary key caused MySQL to wrongly count the number of bytes needed to store null bits)
This is a more complete bug fix for #6236


mysql-test/r/alter_table.result:
  More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys)
mysql-test/t/alter_table.test:
  More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys)
sql/handler.h:
  Add counter for null fields
sql/sql_table.cc:
  Change create_field->offset to store offset from start of fields, independent of null bits.
  Count null_bits separately from field offsets and adjust them in case of primary key parts.
sql/unireg.cc:
  Change create_field->offset to store offset from start of fields, independent of null bits.
  Count null_bits separately from field offsets and adjust them in case of primary key parts.
2005-05-13 11:11:50 +03:00
unknown
cbbc4ff6a2 If the system is under high load 'show full processlist' might report the
process of the predecessing test case instead of the current test case. 
Shifting the command to the end of the current test case should avoid this problem. 


mysql-test/r/ps_grant.result:
  Updated result
mysql-test/t/ps_grant.test:
  Shift ' show full processlist ' to the end of the test script
2005-05-12 17:49:34 +02:00
unknown
a91cf275c8 bug#10344: some string function fail for UCS2
substr fix
2005-05-10 14:13:58 +05:00
unknown
66446b31b7 SUBSTR with negative argument didn't work
with multi-byte strings, length() instead
of numchars() where used in a mistake.
2005-05-09 20:55:06 +05:00