Commit graph

49900 commits

Author SHA1 Message Date
unknown
c3fb207658 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-09-28 17:34:05 +05:00
unknown
fcc3be91f0 Bug#30795 Query on INFORMATION_SCHEMA.SCHEMATA, wrong result
skip the check of directory presence for 'information_schema' name


mysql-test/r/information_schema.result:
  test result
mysql-test/t/information_schema.test:
  test case
sql/sql_show.cc:
  skip the check of directory presence for 'information_schema' name
2007-09-28 17:33:30 +05:00
unknown
a8b1160835 Bug#30689 Wrong content in I_S.VIEWS.VIEW_DEFINITION if VIEW is based on I_S
view_body_utf8 attribute type is changed to 'escaped string'


mysql-test/r/ddl_i18n_koi8r.result:
  result fix
mysql-test/r/ddl_i18n_utf8.result:
  result fix
mysql-test/r/information_schema.result:
  result fix
mysql-test/t/information_schema.test:
  test case
2007-09-28 16:02:43 +05:00
unknown
be67347f1a Bug#30665: Post-merge fix 2007-09-28 12:30:55 +02:00
unknown
b034267f65 Merge mhansson@bk-internal:/home/bk/mysql-5.1-opt
into  dl145s.mysql.com:/data0/mhansson/my51-bug30665


sql/sql_select.cc:
  Auto merged
2007-09-28 10:33:06 +02:00
unknown
5a17730824 Bug#30665: Inconsistent optimization of IGNORE INDEX FOR {ORDER BY|GROUP BY}
The optimizer takes different execution paths during EXPLAIN than SELECT,
this fix relates only to EXPLAIN, hence no behavior changes.
The test of sort keys for ORDER BY was prohibited from considering keys
that were mentioned in IGNORE KEYS FOR ORDER BY. This led to two 
inconsistencies: One was that IGNORE INDEX FOR GROUP BY and 
IGNORE INDEX FOR ORDER BY gave apparently different EXPLAINs; the latter 
erroneously claimed to do filesort. The second inconsistency 
is that the test of sort keys is called twice, finding a sort key the first
time but not the second time, leading to the mentioned filesort.

Fixed by making the test of sort keys consider all enabled 
keys on the table. This test rejects keys that are not covering, and for 
covering keys the hint should be ignored anyway. 


mysql-test/r/group_by.result:
  Bug#30665: Changed test result. The plan gets more efficient here. 
  The output is included in order to show that it is still correct.
mysql-test/r/order_by.result:
  Bug#30665: Test result
mysql-test/t/group_by.test:
  Bug#30665: Changed test case to show correctness of changed plan
mysql-test/t/order_by.test:
  Bug#30665: Test case
sql/sql_select.cc:
  Bug#30665: 
  - the fix: Give test_if_skip_sort_order all keys not the subset of non-disabled keys.
  - Added comment to test_if_skip_sort_order
2007-09-28 09:36:05 +02:00
unknown
2cfd44fd31 Merge magare.gmz:/home/kgeorge/mysql/autopush/B30468-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30468-5.1-opt


sql/sql_acl.cc:
  merge 5.0-opt->5.1-opt
2007-09-27 18:02:21 +03:00
unknown
7ee858eba8 Fixed a warning cased by the fix for bug 30468 2007-09-27 17:56:50 +03:00
unknown
6cc49e9ee4 Merge magare.gmz:/home/kgeorge/mysql/autopush/B30468-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30468-5.1-opt


sql/sql_acl.cc:
  merge to 5.1-opt of the update for the fix to bug 30468.
2007-09-27 14:33:55 +03:00
unknown
edf5745b35 separated an assertion from the assignment (bug 30468) 2007-09-27 14:29:46 +03:00
unknown
caf38c6e9d Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30468-5.1-opt
2007-09-27 13:02:04 +03:00
unknown
2e57478d92 merged the fix for bug 30468 to 5.1-opt
mysql-test/t/grant2.test:
  Auto merged
sql/sql_acl.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
2007-09-27 12:32:59 +03:00
unknown
500d856faf Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30468-5.0-opt


sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
2007-09-27 12:17:16 +03:00
unknown
66f13d9120 Bug #30468: column level privileges not respected when joining tables
When expanding a * in a USING/NATURAL join the check for table access
for both tables in the join was done using the grant information of the
first one.
Fixed by getting the grant information for the current table while 
iterating through the columns of the join.


mysql-test/r/grant2.result:
  Bug #30468: test case
mysql-test/t/grant2.test:
  Bug #30468: test case
sql/sql_acl.cc:
  Bug #30468: correctly check column grants
sql/sql_acl.h:
  Bug #30468: correctly check column grants
sql/sql_base.cc:
  Bug #30468: correctly check column grants
sql/sql_insert.cc:
  Bug #30468: correctly check column grants
2007-09-27 12:15:19 +03:00
unknown
68f766ae80 mysqlslap.result, mysqlslap.test:
Post-commit fix.


mysql-test/t/mysqlslap.test:
  Post-commit fix.
mysql-test/r/mysqlslap.result:
  Post-commit fix.
2007-09-27 13:15:15 +05:00
unknown
4f6658967b Merge gshchepa@bk-internal.mysql.com:/users/gshchepa/5.1-opt-31075
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-09-27 01:38:41 +05:00
unknown
fbe3a0d1fc Merge gleb.loc:/home/uchum/work/bk/5.1-opt-29985
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-09-27 01:03:35 +05:00
unknown
bc25c6cafb merge of the fix for bug 27802 & 27216 to 5.1-opt
mysql-test/r/view.result:
  merge of the fix for bug 27802 to 5.1
sql/item_cmpfunc.h:
  merge of the fix for bug 27216 to 5.1
sql/sql_insert.cc:
  merge of the fix for bug 27216 to 5.1
sql/sql_lex.h:
  merge of the fix for bug 27802 to 5.1
sql/sql_select.cc:
  merge of the fix for bug 27802 to 5.1
sql/table.h:
  merge of the fix for bug 27802 to 5.1
2007-09-26 19:06:54 +03:00
unknown
c89bc705a9 merged bug 28702 5.0-opt->5.1-opt
mysql-test/r/view.result:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/table.h:
  Auto merged
2007-09-26 14:22:48 +03:00
unknown
2dc837e612 Fixed bug #31075.
The `SELECT col FROM t WHERE col NOT IN (col, ...) GROUP BY col'
crashed in the range optimizer.

The get_func_mm_tree function has been modified to check the
Item_func_in::array field for the NULL value before using of that
value.


sql/opt_range.cc:
  Fixed bug #31075.
  The get_func_mm_tree function has been modified to check the
  Item_func_in::array field for the NULL value before using of that
  value.
mysql-test/t/func_in.test:
  Added test case for bug #31075.
mysql-test/r/func_in.result:
  Added test case for bug #31075.
2007-09-26 12:45:08 +02:00
unknown
e4cbbcf8a9 Merge sunlight.local:/local_work/27216-bug-5.0-opt-mysql
into  sunlight.local:/local_work/merge-5.1-opt-mysql


libmysql/libmysql.c:
  Auto merged
mysql-test/r/date_formats.result:
  Auto merged
mysql-test/r/insert_select.result:
  Auto merged
mysql-test/t/insert_select.test:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
mysql-test/r/type_datetime.result:
  Manually merged
mysql-test/t/type_datetime.test:
  Manually merged
sql/item_cmpfunc.cc:
  Manually merged
sql/item_cmpfunc.h:
  Manually merged
sql/sql_insert.cc:
  Manually merged
2007-09-24 17:23:40 +04:00
unknown
ca448acc25 Bug #28702: VIEWs defined with USE/FORCE KEY ignore that request
When storing the VIEW the CREATE VIEW command is reconstructed 
from the parse tree. While constructing the command string
the index hints specified should also be printed.
Fixed by adding code to print the index hints when printing a 
table in the FROM clause.


mysql-test/r/view.result:
  Bug #28702: test case
mysql-test/t/view.test:
  Bug #28702: test case
sql/sql_select.cc:
  Bug #28702: preserve index hints in a VIEW definition.
sql/table.h:
  Bug #28702: preserve index hints in a VIEW definition.
2007-09-24 15:34:10 +03:00
unknown
c2c760bdb6 merging bug 28701 to 5.1-opt 2007-09-24 13:02:59 +02:00
unknown
ea1a4ae287 merge of bug 28701 5.0-opt -> 5.1-opt
sql/sql_view.cc:
  Auto merged
2007-09-24 10:30:50 +02:00
unknown
5d59c1e81b Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  macbook.local:/Users/kgeorge/mysql/autopush/B28701-merged-5.0-opt
2007-09-22 14:48:14 +02:00
unknown
18397a5dc3 Merge macbook.local:/Users/kgeorge/mysql/work/B28701-5.0-opt
into  macbook.local:/Users/kgeorge/mysql/work/B28701-merged-5.0-opt


sql/sql_view.cc:
  Auto merged
mysql-test/r/view.result:
  merge with 5.0-opt
mysql-test/t/view.test:
  merge with 5.0-opt
2007-09-22 11:42:01 +02:00
unknown
17df0d648c Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  sunlight.local:/local_work/27216-bug-5.0-opt-mysql


sql/sql_insert.cc:
  Auto merged
2007-09-22 13:10:44 +04:00
unknown
ebaa05efa7 Bug#27216: functions with parameters of different date types may return wrong
type of the result.

There are several functions that accept parameters of different types.
The result field type of such functions was determined based on
the aggregated result type of its arguments. As the DATE and the DATETIME
types are represented by the STRING type, the result field type
of the affected functions was always STRING for DATE/DATETIME arguments.
The affected functions are COALESCE, IF, IFNULL, CASE, LEAST/GREATEST, CASE.

Now the affected functions aggregate the field types of their arguments rather
than their result types and return the result of aggregation as their result
field type.
The cached_field_type member variable is added to the number of classes to
hold the aggregated result field type.
The str_to_date() function's result field type now defaults to the
MYSQL_TYPE_DATETIME.
The agg_field_type() function is added. It aggregates field types with help
of the Field::field_type_merge() function.
The create_table_from_items() function now uses the 
item->tmp_table_field_from_field_type() function to get the proper field
when the item is a function with a STRING result type.


libmysql/libmysql.c:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  The client library now accepts the NEWDATE type as a string.
sql/item_cmpfunc.cc:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  Now the fix_length_and_dec functions of the
  Item_func_ifnull,Item_func_if, Item_func_case, Item_func_coalesce
  classes are use agg_field_type function to find out the type of their 
  result field.
sql/item_cmpfunc.h:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  The cached_field type is added to the Item_func_case, Item_func_if and
  Item_func_coalesce classes.
  The field_type function is added to the Item_func_ifnull, Item_func_if,
  Item_func_coalesce, Item_func_case classes.
sql/item_func.cc:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  The Item_func_min_max::fix_length_and_dec function now uses the agg_field_type
  function to find out the correct type of the result field.
sql/item_func.h:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  The cached_field_type variable is added to the Item_func_min_max class.
sql/item_timefunc.cc:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  The result of the str_to_date function now defaults to the
  DATETIME type.
sql/mysql_priv.h:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  The prototype of the agg_field_type function is added.
sql/protocol.cc:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  The Protocol_simple::store function is now used to store fields of NEWDATE type.
sql/sql_insert.cc:
  Bug#27216: functions with parameters of different date types may return wrong
  type of the result.
  The create_table_from_items function now uses the
  tmp_table_field_from_field_type function to get field for items with the
  STRING result type.
mysql-test/r/date_formats.result:
  A test case result corrected after fixing bug#27216.
mysql-test/r/type_datetime.result:
  Added a test case for the bug#27216: functions with parameters of different
  date types may return wrong type of the result.
mysql-test/t/type_datetime.test:
  Added a test case for the bug#27216: functions with parameters of different
  date types may return wrong type of the result.
2007-09-22 11:49:27 +04:00
unknown
bd8e7fee1f fixed warnings by bug 30639 2007-09-21 12:17:09 +02:00
unknown
92771001b3 fixed type conversion warnings revealed by bug 30639 2007-09-21 10:15:16 +02:00
unknown
f7f1095908 Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
led to creating corrupted index.

While execution of the  CREATE .. SELECT SQL_BUFFER_RESULT statement the 
engine->start_bulk_insert function was called twice. On the first call
On the first call MyISAM disabled all non-unique indexes and on the second
call it decides to not re-enable them because all indexes was disabled.
Due to this no indexes was actually created during CREATE TABLE thus
producing crashed table.

Now the select_inset class has is_bulk_insert_mode flag which prevents
calling the start_bulk_insert function twice.
The flag is set in the select_create::prepare, select_insert::prepare2
functions and the select_insert class constructor.
The flag is reset in the select_insert::send_eof function.


mysql-test/t/insert_select.test:
  A test case is added for the bug#30384: Having SQL_BUFFER_RESULT option in the
  CREATE .. KEY(..) .. SELECT led to creating corrupted index.
mysql-test/r/insert_select.result:
  A test case is added for the bug#30384: Having SQL_BUFFER_RESULT option in the 
  CREATE .. KEY(..) .. SELECT led to creating corrupted index.
sql/sql_class.h:
  Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
  led to creating corrupted index.
  The is_bulk_insert_mode flag is added to the select_insert class.
sql/sql_insert.cc:
  Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
  led to creating corrupted index.
  The is_bulk_insert_mode is set in the select_create::prepare, select_insert::prepare2
  functions and the select_insert class constructor.
  The flag is reset in the select_insert::send_eof function.
2007-09-21 12:09:00 +04:00
unknown
c9f5a087f5 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-09-20 16:28:46 +05:00
unknown
ae270c4210 result fix 2007-09-20 16:27:58 +05:00
unknown
83540130af Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


mysql-test/r/grant.result:
  Auto merged
2007-09-20 14:40:24 +05:00
unknown
ad57f91294 result fix 2007-09-20 14:38:41 +05:00
unknown
d0f7942474 Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


mysql-test/r/alter_table.result:
  Auto merged
mysql-test/r/create.result:
  Auto merged
mysql-test/r/ctype_collate.result:
  Auto merged
mysql-test/r/ctype_recoding.result:
  Auto merged
mysql-test/r/default.result:
  Auto merged
mysql-test/r/gis.result:
  Auto merged
mysql-test/r/grant.result:
  Auto merged
mysql-test/r/information_schema.result:
  Auto merged
mysql-test/r/key.result:
  Auto merged
mysql-test/r/mysql.result:
  Auto merged
mysql-test/r/ps_1general.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/r/type_enum.result:
  Auto merged
mysql-test/r/type_ranges.result:
  Auto merged
mysql-test/r/show_check.result:
  manual merge
mysql-test/t/information_schema.test:
  manual merge
sql/sql_show.cc:
  manual merge
2007-09-20 14:10:05 +05:00
unknown
fac190a28b Bug#27747 database metadata doesn't return sufficient column default info
added get_field_default_value() function which obtains default value from the field
(used in store_create_info() & get_schema_column_record() functions)


mysql-test/r/alter_table.result:
  result fix
mysql-test/r/create.result:
  result fix
mysql-test/r/ctype_collate.result:
  result fix
mysql-test/r/ctype_recoding.result:
  result fix
mysql-test/r/default.result:
  result fix
mysql-test/r/gis.result:
  result fix
mysql-test/r/grant.result:
  result fix
mysql-test/r/information_schema.result:
  result fix
mysql-test/r/key.result:
  result fix
mysql-test/r/mysql.result:
  result fix
mysql-test/r/ps_1general.result:
  result fix
mysql-test/r/show_check.result:
  result fix
mysql-test/r/sp.result:
  result fix
mysql-test/r/type_enum.result:
  result fix
mysql-test/r/type_ranges.result:
  result fix
mysql-test/t/information_schema.test:
  test case
2007-09-20 13:54:46 +05:00
unknown
ff4a94b779 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30639-5.1-opt


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/sql_lex.cc:
  Auto merged
2007-09-19 18:02:59 +03:00
unknown
717dba2422 Bug #30639: limit offset,rowcount wraps when rowcount >= 2^32 in windows
The parser uses ulonglong to store the LIMIT number. This number
 then is stored into a variable of type ha_rows. ha_rows is either
 4 or 8 byte depending on the BIG_TABLES define from config.h
 So an overflow may occur (and LIMIT becomes zero) while storing an
 ulonglong value in ha_rows.
 Fixed by :
  1. Using the maximum possible value for ha_rows on overflow
  2. Defining BIG_TABLES for the windows builds (to match the others) 


include/config-win.h:
  Bug #30639: turn on BIG_TABLES for windows
mysql-test/r/select.result:
  Bug #30639: test case
mysql-test/t/select.test:
  Bug #30639: test case
sql/sql_lex.cc:
  Bug #30639: Use the maximum possible number on overflow 
   of LIMIT. This is valid because there won't be more rows
   anyway.
2007-09-19 17:47:52 +03:00
unknown
ed34aabe65 Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-09-19 14:10:01 +05:00
unknown
0e8d541d58 Merge mysql.com:/home/gluh/MySQL/Merge/5.1
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
  Auto merged
2007-09-19 14:09:23 +05:00
unknown
ffdc5b9302 Merge mysql.com:/home/gluh/MySQL/Merge/5.0
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
2007-09-19 13:50:38 +05:00
unknown
ea04054077 Fixed bug #29985.
Multiple-result processing is required during the execution
of CALL statements for stored procedures, however the mysqlslap
client lacked that processing.



client/mysqlslap.c:
  Fixed bug #29985.
  1. Connection flags have been changed: the CLIENT_MULTI_STATEMENTS
  flag has been added.
  2. The run_task function has been modified to process multiple
  result sets.
mysql-test/t/mysqlslap.test:
  Added test case for bug #29985.
mysql-test/r/mysqlslap.result:
  Added test case for bug #29985.
2007-09-17 21:39:07 +05:00
unknown
95daa4ed71 Many files:
Post-merge fix.


mysql-test/suite/rpl/r/rpl_row_colSize.result:
  Post-merge fix.
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
  Post-merge fix.
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
  Post-merge fix.
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
  Post-merge fix.
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
  Post-merge fix.
2007-09-15 07:39:58 +02:00
unknown
8d8d1118fc Merge devsrv-b.mysql.com:/data0/gshchepa/mysql-5.0-opt
into  devsrv-b.mysql.com:/data0/gshchepa/mysql-5.1-opt


mysql-test/t/select.test:
  Auto merged
2007-09-15 07:08:07 +02:00
unknown
692b686dae select.test:
Post-fix for bug#27695.


mysql-test/t/select.test:
  Post-fix for bug#27695.
2007-09-15 07:04:32 +02:00
unknown
302e82d194 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B31001-5.1-opt
2007-09-14 23:48:23 +03:00
unknown
887b594c18 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  devsrv-b.mysql.com:/data0/gshchepa/mysql-5.1-opt


sql/item.cc:
  Auto merged
2007-09-14 21:17:07 +02:00
unknown
f58cbe3d84 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  devsrv-b.mysql.com:/data0/gshchepa/mysql-5.0-opt
2007-09-14 21:15:43 +02:00
unknown
1684d47db3 Fix compile failure on windows 2007-09-14 21:15:57 +04:00