1. 15 May, 2007 6 commits
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 0e234075
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28272
      
      
      0e234075
    • unknown's avatar
      Bug#28208: Wrong result of a non-const STRING function with a const DATETIME · 9aa67a40
      unknown authored
      function.
      
      A wrong  condition was used to check that the
      Arg_comparator::can_compare_as_dates() function calculated the value of the
      string constant. When comparing a non-const STRING function with a constant
      DATETIME function it leads to saving an arbitrary value as a cached value of
      the DATETIME function.
      
      Now the Arg_comparator::set_cmp_func() function initializes the const_value
      variable to the impossible DATETIME value (-1) and this const_value is
      cached only if it was changed by the Arg_comparator::can_compare_as_dates()
      function.
      
      
      mysql-test/t/type_datetime.test:
        Added a test case for the bug#28208: Wrong result of a non-const STRING function with a const DATETIME function.
      mysql-test/r/type_datetime.result:
        Added a test case for the bug#28208: Wrong result of a non-const STRING function with a const DATETIME function.
      sql/item_cmpfunc.cc:
        Bug#28208: Wrong result of a non-const STRING function with a const DATETIME
        function.
        Now the Arg_comparator::set_cmp_func() function initializes the const_value
        variable to the impossible DATETIME value (-1) and this const_value is
        cached only if it was changed by the Arg_comparator::can_compare_as_dates()
        function.
      9aa67a40
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/dev-opt/mysql-4.1-opt-bug28272 · dfc85a63
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28272
      
      
      mysql-test/r/innodb_mysql.result:
        Auto merged
      mysql-test/t/innodb_mysql.test:
        Auto merged
      sql/sql_select.cc:
        Manual merge
      dfc85a63
    • unknown's avatar
      Fixed bug #28272: crash that occurs when running an EXPLAIN command · 8762539d
      unknown authored
      for a query over an empty table right after its creation. 
      The crash is the result of an attempt made by JOIN::optimize to evaluate
      the WHERE condition when no records have been actually read.
      The added test case can reproduce the crash only with InnoDB tables and
      only with 5.0.x.
       
      
      
      mysql-test/r/innodb_mysql.result:
        Added a test case for bug #28272.
      mysql-test/t/innodb_mysql.test:
        Added a test case for bug #28272.
      sql/sql_select.cc:
        Fixed bug #28272: crash that occurs when running an EXPLAIN command
        for a query over an empty table right after its creation. 
        The crash is the result of an attempt made by JOIN::optimize to evaluate
        the WHERE condition when no records have been actually read.
        Such attempts could be observed only with EXPLAIN commands.
        Now at the optimization phase the WHERE condition is never evaluated if 
        there is no record previously read from the table.
      8762539d
    • unknown's avatar
      Post-merge fix. · 963fae4b
      unknown authored
      963fae4b
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/dev-opt/mysql-4.1-opt-bug27937 · 7a02ef7d
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug27937
      
      
      mysql-test/r/ps.result:
        Manual merge
      mysql-test/t/ps.test:
        Manual merge
      sql/sql_union.cc:
        Manual merge
      7a02ef7d
  2. 14 May, 2007 2 commits
    • unknown's avatar
      Fixed bug #27937: crash for the the second execution of a prepared · fca58c95
      unknown authored
      statement from a UNION query with ORDER BY an expression containing
      RAND().
      The crash happened because the global order by list in the union query
      was not re-initialized for execution.
      (Local order by lists were re-initialized though).
      
      
      
      mysql-test/r/ps.result:
        Added a test case for bug #27937.
      mysql-test/t/ps.test:
        Added a test case for bug #27937.
      sql/sql_union.cc:
        Fixed bug #27937: crash for the the second execution of a prepared
        statement from a UNION query with ORDER BY an expression containing
        RAND().
        The crash happened because the global order by list in the union query
        was not re-initialized for execution.
        (Local order by lists were re-initialized though).
        Added re-initialization of the global order by list in the function
        st_select_lex_unit::init_prepare_fake_select_lex.
      fca58c95
    • unknown's avatar
      Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 879a0a74
      unknown authored
      into  dl145s.mysql.com:/users/mhansson/mysql/autopush/5.0o-5.0o-bug28273
      
      
      879a0a74
  3. 12 May, 2007 2 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/data0/bk/mysql-5.0 · 6e3cff22
      unknown authored
      into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt
      
      
      6e3cff22
    • unknown's avatar
      Fixed bug #28375: a query with an NOT IN subquery predicate may cause · d886ea8f
      unknown authored
      a crash when the left operand of the predicate is evaluated to NULL.
      It happens when the rows from the inner tables (tables from the subquery)
      are accessed by index methods with key values obtained by evaluation of
      the left operand of the subquery predicate. When this predicate is
      evaluated to NULL an alternative access with full table scan is used
      to check whether the result set returned by the subquery is empty or not.
      The crash was due to the fact the info about the access methods used for
      regular key values was not properly restored after a switch back from the
      full scan access method had occurred.
      The patch restores this info properly.
      The same problem existed for queries with IN subquery predicates if they
      were used not at the top level of the queries.
      
      
      mysql-test/r/subselect3.result:
        Added a test case for bug #28375.
      mysql-test/t/subselect3.test:
        Added a test case for bug #28375.
      sql/item_subselect.cc:
        Fixed bug #28375: a query with an NOT IN subquery predicate may cause
        a crash when the left operand of the predicate is evaluated to NULL.
        It happens when the rows from the inner tables (tables from the subquery)
        are accessed by index methods with key values obtained by evaluation of
        the left operand of the subquery predicate. When this predicate is
        evaluated to NULL an alternative access with full table scan is used
        to check whether the result set returned by the subquery is empty or not.
        The crash was due to the fact the info about the access methods used for
        regular key values was not properly restored after a switch back from the
        full scan access method had occurred.
        The patch restores this info properly.
      sql/sql_select.h:
        Fixed bug #28375: a query with an NOT IN subquery predicate may cause
        a crash when the left operand of the predicate is evaluated to NULL.
        In the JOIN_TAB structure two fields have been added to save info about
        index methods used to access the subquery rows. The saved info is used
        after a switch back from the alternative full scan access method has 
        occurred. The full scan is used when the left operand of the subquery
        predicate is evaluated to NULL.
      d886ea8f
  4. 11 May, 2007 9 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 50c5b549
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/27878-bug-5.0-opt-mysql
      
      
      50c5b549
    • unknown's avatar
      grant.result, grant.test: · f0ddabc5
      unknown authored
        Corrected test case for the bug#27878.
      
      
      mysql-test/t/grant.test:
        Corrected test case for the bug#27878.
      mysql-test/r/grant.result:
        Corrected test case for the bug#27878.
      f0ddabc5
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · bd311c0c
      unknown authored
      into  mysql.com:/home/hf/work/27957/my50-27957
      
      
      bd311c0c
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 86dccd92
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/27878-bug-5.0-opt-mysql
      
      
      86dccd92
    • unknown's avatar
      Bug#27878: Unchecked privileges on a view referring to a table from another · 04efdb15
      unknown authored
      database.
      
      If a user has a right to update anything in the current database then the 
      access was granted and further checks of access rights for underlying tables
      wasn't done correctly. The check is done before a view is opened and thus no
      check of access rights for underlying tables can be carried out.
      This allows a user to update through a view a table from another database for
      which he hasn't enough rights.
      
      Now the mysql_update() and the mysql_test_update() functions are forces
      re-checking of access rights after a view is opened.
      
      
      mysql-test/t/grant.test:
        Added a test case for the bug#27878: Unchecked privileges on a view referring to a table from another database.
      mysql-test/r/grant.result:
        Added a test case for the bug#27878: Unchecked privileges on a view referring to a table from another database.
      sql/sql_update.cc:
        Bug#27878: Unchecked privileges on a view referring to a table from another 
        database.
        Now the mysql_update() function forces re-checking of access rights after 
        the view is opened.
      sql/sql_prepare.cc:
        Bug#27878: Unchecked privileges on a view referring to a table from another 
        database.
        Now the mysql_test_update() function forces re-checking of access rights after
        the view is opened.
      04efdb15
    • unknown's avatar
      merging fixes · 8bbe6f23
      unknown authored
      
      mysql-test/r/type_datetime.result:
        result fixed
      mysql-test/t/type_datetime.test:
        testcase fixed
      sql/item_func.cc:
        my_decimal_length_to_precision used
      sql/my_decimal.h:
        merging fix
      8bbe6f23
    • unknown's avatar
      Merge mysql.com:/home/hf/work/27921/my50-27921 · 78ed69c3
      unknown authored
      into  mysql.com:/home/hf/work/27957/my50-27957
      
      
      mysql-test/r/cast.result:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_func.h:
        Auto merged
      sql/my_decimal.h:
        merging
      78ed69c3
    • unknown's avatar
      bug#28273: GROUP_CONCAT and ORDER BY: No warning when result gets truncated. · 10be360e
      unknown authored
      When using GROUP_CONCAT with ORDER BY, a tree is used for the sorting, as 
      opposed to normal nested loops join used when there is no ORDER BY. 
      
      The tree traversal that generates the result counts the lines that have been 
      cut down. (as they get cut down to the field's max_size)
      But the check of that count was before the tree traversal, so no 
      warning was generated if the output is truncated.
      
      Fixed by moving the check to after the tree traversal.
      
      
      mysql-test/r/func_gconcat.result:
        bug#28273: correct result
      mysql-test/t/func_gconcat.test:
        bug#28273: test case
      sql/item_sum.cc:
        bug#28273: the fix
        
        Moved the code that outputs a warning to after temporary table (tree) is traversed.
      10be360e
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 563b1297
      unknown authored
      into  mysql.com:/home/hf/work/27957/my50-27957
      
      
      sql/item_func.cc:
        Auto merged
      563b1297
  5. 10 May, 2007 6 commits
    • unknown's avatar
      Fixed bug #28000. · 36190568
      unknown authored
      Bug occurs in INSERT IGNORE ... SELECT ... ON DUPLICATE KEY UPDATE
      statements, when SELECT returns duplicated values and UPDATE clause
      tries to assign NULL values to NOT NULL fields.
      NOTE: By current design MySQL server treats INSERT IGNORE ... ON
      DUPLICATE statements as INSERT ... ON DUPLICATE with update of
      duplicated records, but MySQL manual lacks this information.
      After this fix such behaviour becomes legalized.
      
      The write_record() function was returning error values even within
      INSERT IGNORE, because ignore_errors parameter of
      the fill_record_n_invoke_before_triggers() function call was
      always set to FALSE. FALSE is replaced by info->ignore.
      
      
      sql/sql_insert.cc:
        Fixed bug #28000:
        The write_record() function was returning error values even within
        INSERT IGNORE, because ignore_errors parameter of
        the fill_record_n_invoke_before_triggers() function call was
        always set to FALSE. FALSE is replaced by info->ignore.
      mysql-test/t/insert_update.test:
        Added test case for bug #28000.
      mysql-test/r/insert_update.result:
        Added test case for bug #28000.
      36190568
    • unknown's avatar
      Merge whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb · 28d9a827
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
      
      
      ndb/src/mgmclient/CommandInterpreter.cpp:
        Auto merged
      28d9a827
    • unknown's avatar
      Fixed bug #28189: in some rare cases optimizer preferred a more expensive · 184cc3b5
      unknown authored
      ref access to a less expensive range access. 
      This occurred only with InnoDB tables.
      
      
      mysql-test/r/innodb_mysql.result:
        Added a test case for bug #28189.
      mysql-test/t/innodb_mysql.test:
        Added a test case for bug #28189.
      184cc3b5
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 47430268
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
      
      
      47430268
    • unknown's avatar
      Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-opt · 27ce25cd
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
      
      
      27ce25cd
    • unknown's avatar
      bug 27921 (Views ignore precision for CAST) · a6da564a
      unknown authored
      test result fixed
      
      
      a6da564a
  6. 09 May, 2007 6 commits
    • unknown's avatar
      Bug #27921 View ignores precision for CAST() · f2a52dd0
      unknown authored
      Item_decimal_typecast::print properly implemented
      
      
      mysql-test/r/view.result:
        Bug #27921 View ignores precision for CAST()
        test result
      mysql-test/t/view.test:
        Bug #27921 View ignores precision for CAST()
        test case
      sql/field.cc:
        zero decimals handling unified
      sql/item_create.cc:
        Bug #27921 View ignores precision for CAST()
        create_func_cast parameters changed, zero precision handling unified
      sql/item_create.h:
        Bug #27921 View ignores precision for CAST()
        create_func_cast parameters changed
      sql/item_func.cc:
        Bug #27921 View ignores precision for CAST() 
        Item_decimal_typecast::print properly implemented
      sql/item_func.h:
        Bug #27921 View ignores precision for CAST()
        max_length counting fixed
      sql/my_decimal.h:
        Bug #27921 View ignores precision for CAST()
        my_decimal_trim() implemented to unify zero precision handling
      sql/sql_yacc.yy:
        Bug #27921 View ignores precision for CAST()
        create_func_cast calls simplified
      f2a52dd0
    • unknown's avatar
      enable setting api reg req frequency to be higher than heartbeat setting to... · 198a7991
      unknown authored
      enable setting api reg req frequency to be higher than heartbeat setting to ensure we have reasonably up-to-date info from ndb nodes
      + do this for management server
      
      
      
      198a7991
    • unknown's avatar
      Bug #28287 Sign problem in test "ndb_restore_print" · 7ef22d8d
      unknown authored
        - corrected previous patch
        - some platforms do strange things with char... use Int8 to be sure of signedness
      
      
      7ef22d8d
    • unknown's avatar
      Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect · 82b7c543
      unknown authored
      Missing check for overflow added to the Item_decimal_typecast::val_decimal
      
      
      include/decimal.h:
        Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
        decimal_intg() declaration
      mysql-test/r/cast.result:
        Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
        result fixed
      mysql-test/r/type_newdecimal.result:
        Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
        test result
      mysql-test/t/type_newdecimal.test:
        Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
        test case added
      sql/item_func.cc:
        Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
        now we check for possible ovreflow in Item_decimal_typecast::val_decimal
      sql/my_decimal.h:
        Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
        my_decimal_intg() implemented
      strings/decimal.c:
        Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
        decimal_intg() implemented
      82b7c543
    • unknown's avatar
      loaddata.result, loaddata.test: · ba9657bc
      unknown authored
        A test case is corrected.
      
      
      mysql-test/t/loaddata.test:
        A test case is corrected.
      mysql-test/r/loaddata.result:
        A test case is corrected.
      ba9657bc
    • unknown's avatar
      Bug #28287 Sign problem in test "ndb_restore_print" · 643cb9b8
      unknown authored
      - some platforms do strange things with char... use Int8 to be sure of signedness
      
      
      643cb9b8
  7. 08 May, 2007 9 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · c863f1ee
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/27670-bug-5.0-opt-mysql
      
      
      c863f1ee
    • unknown's avatar
      Bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP default value for a · 80788a34
      unknown authored
      TIMESTAMP field when no value has been provided.
      
      The LOAD DATA sets the current time in the TIMESTAMP field with
      CURRENT_TIMESTAMP default value when the field is detected as a null.
      But when the LOAD DATA command loads data from a file that doesn't contain
      enough data for all fields then the rest of fields are simply set to null
      without any check. This leads to no value being inserted to such TIMESTAMP
      field.
      
      Now the read_sep_field() and the read_fixed_length() functions set current
      time to the TIMESTAMP field with CURRENT_TIMESTAMP default value in all cases
      when a NULL value is loaded to the field.
      
      
      mysql-test/t/loaddata.test:
        Added a test case for the bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP
        default value for a TIMESTAMP field when no value has been provided.
      mysql-test/r/loaddata.result:
        Added a test case for the bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP
        default value for a TIMESTAMP field when no value has been provided.
      sql/sql_load.cc:
        Bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP default value for a
        TIMESTAMP field when no value has been provided.
        Now the read_sep_field() and the read_fixed_length() functions set current
        time to the TIMESTAMP field with CURRENT_TIMESTAMP default value in all cases
        when a NULL value is loaded to the field.
      80788a34
    • unknown's avatar
    • unknown's avatar
      Merge perch.ndb.mysql.com:/home/jonas/src/50-work · beacbfda
      unknown authored
      into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb
      
      
      ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        Auto merged
      beacbfda
    • unknown's avatar
      ndb - bug#27437 · c02934a5
      unknown authored
        redo extra verification code so that tupkeyref is reset just before tupkeyreq
      
      
      ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        redo extra verification code so that tupkeyref is reset just before tupkeyreq
      c02934a5
    • unknown's avatar
      Merge perch.ndb.mysql.com:/home/jonas/src/50-work · 4d108ce7
      unknown authored
      into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb
      
      
      mysql-test/r/ndb_basic.result:
        Auto merged
      mysql-test/t/ndb_basic.test:
        Auto merged
      ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
        Auto merged
      ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        Auto merged
      ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
        Auto merged
      4d108ce7
    • unknown's avatar
      ndb - bug#27437 · 3962e2d4
      unknown authored
        bug in interpretedupdate (used for auto-increment) that made TUPKEYREF be sent twice
        this was however "normally" shadowed, but made LQH crash when LCP was about to start
      
      
      mysql-test/r/ndb_basic.result:
        testcase
      mysql-test/t/ndb_basic.test:
        testcase
      ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
        add extra variable to make sure TUPKEYREF is not received twice (VM_TRACE)
      ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        add extra variable to make sure TUPKEYREF is not received twice (VM_TRACE)
      ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
        make sure TUPKEYREF is not sent twice in case of "error" in interpreted program
      3962e2d4
    • unknown's avatar
      Merge dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-4.1/mysql-4.1-ndb-bj · 6aa333d9
      unknown authored
      into  dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-4.1/mysql-4.1-ndb
      
      
      6aa333d9
    • unknown's avatar
      Merge dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.0/mysql-5.0-ndb-bj · 90ae0c35
      unknown authored
      into  dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.0/mysql-5.0-ndb
      
      
      sql/ha_ndbcluster.h:
        Auto merged
      sql/set_var.cc:
        Auto merged
      90ae0c35