1. 28 Sep, 2007 2 commits
    • unknown's avatar
      Merge mhansson@bk-internal:/home/bk/mysql-5.1-opt · b034267f
      unknown authored
      into  dl145s.mysql.com:/data0/mhansson/my51-bug30665
      
      
      sql/sql_select.cc:
        Auto merged
      b034267f
    • unknown's avatar
      Bug#30665: Inconsistent optimization of IGNORE INDEX FOR {ORDER BY|GROUP BY} · 5a177308
      unknown authored
      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
      5a177308
  2. 27 Sep, 2007 9 commits
  3. 26 Sep, 2007 5 commits
    • unknown's avatar
      Merge gshchepa@bk-internal.mysql.com:/users/gshchepa/5.1-opt-31075 · 4f665896
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.1-opt
      
      
      4f665896
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/5.1-opt-29985 · fbe3a0d1
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.1-opt
      
      
      fbe3a0d1
    • unknown's avatar
      merge of the fix for bug 27802 & 27216 to 5.1-opt · bc25c6ca
      unknown authored
      
      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
      bc25c6ca
    • unknown's avatar
      merged bug 28702 5.0-opt->5.1-opt · c89bc705
      unknown authored
      
      mysql-test/r/view.result:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      sql/table.h:
        Auto merged
      c89bc705
    • unknown's avatar
      Fixed bug #31075. · 2dc837e6
      unknown authored
      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.
      2dc837e6
  4. 24 Sep, 2007 4 commits
    • unknown's avatar
      Merge sunlight.local:/local_work/27216-bug-5.0-opt-mysql · e4cbbcf8
      unknown authored
      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
      e4cbbcf8
    • unknown's avatar
      Bug #28702: VIEWs defined with USE/FORCE KEY ignore that request · ca448acc
      unknown authored
      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.
      ca448acc
    • unknown's avatar
      merging bug 28701 to 5.1-opt · c2c760bd
      unknown authored
      c2c760bd
    • unknown's avatar
      merge of bug 28701 5.0-opt -> 5.1-opt · ea1a4ae2
      unknown authored
      
      sql/sql_view.cc:
        Auto merged
      ea1a4ae2
  5. 22 Sep, 2007 4 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 5d59c1e8
      unknown authored
      into  macbook.local:/Users/kgeorge/mysql/autopush/B28701-merged-5.0-opt
      
      
      5d59c1e8
    • unknown's avatar
      Merge macbook.local:/Users/kgeorge/mysql/work/B28701-5.0-opt · 18397a5d
      unknown authored
      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
      18397a5d
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 17df0d64
      unknown authored
      into  sunlight.local:/local_work/27216-bug-5.0-opt-mysql
      
      
      sql/sql_insert.cc:
        Auto merged
      17df0d64
    • unknown's avatar
      Bug#27216: functions with parameters of different date types may return wrong · ebaa05ef
      unknown authored
      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.
      ebaa05ef
  6. 21 Sep, 2007 3 commits
    • unknown's avatar
      fixed warnings by bug 30639 · bd8e7fee
      unknown authored
      bd8e7fee
    • unknown's avatar
      92771001
    • unknown's avatar
      Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT · f7f10959
      unknown authored
      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.
      f7f10959
  7. 20 Sep, 2007 6 commits
    • unknown's avatar
      Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt · c9f5a087
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
      
      
      c9f5a087
    • unknown's avatar
      result fix · ae270c42
      unknown authored
      ae270c42
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt · 83540130
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
      
      
      mysql-test/r/grant.result:
        Auto merged
      83540130
    • unknown's avatar
      result fix · ad57f912
      unknown authored
      ad57f912
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt · d0f79424
      unknown authored
      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
      d0f79424
    • unknown's avatar
      Bug#27747 database metadata doesn't return sufficient column default info · fac190a2
      unknown authored
      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
      fac190a2
  8. 19 Sep, 2007 5 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt · ff4a94b7
      unknown authored
      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
      ff4a94b7
    • unknown's avatar
      Bug #30639: limit offset,rowcount wraps when rowcount >= 2^32 in windows · 717dba24
      unknown authored
       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.
      717dba24
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt · ed34aabe
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
      
      
      ed34aabe
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.1 · 0e8d541d
      unknown authored
      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
      0e8d541d
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.0 · ffdc5b93
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
      
      
      ffdc5b93
  9. 17 Sep, 2007 1 commit
    • unknown's avatar
      Fixed bug #29985. · ea040540
      unknown authored
      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.
      ea040540
  10. 15 Sep, 2007 1 commit
    • unknown's avatar
      Many files: · 95daa4ed
      unknown authored
        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.
      95daa4ed