1. 28 Feb, 2006 1 commit
    • unknown's avatar
      Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was · ddbf62ca
      unknown authored
      used
      
      In a simple queries a result of the GROUP_CONCAT() function was always of 
      varchar type.
      But if length of GROUP_CONCAT() result is greater than 512 chars and temporary
      table is used during select then the result is converted to blob, due to
      policy to not to store fields longer than 512 chars in tmp table as varchar
      fields.
      
      In order to provide consistent behaviour, result of GROUP_CONCAT() now
      will always be converted to blob if it is longer than 512 chars.
      Item_func_group_concat::field_type() is modified accordingly.
      
      
      sql/item_sum.h:
        Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was 
        used
        The Item_func_group_concat::field_type() now returns FIELD_TYPE_BLOB if the result is longer than 512 chars.
      tests/mysql_client_test.c:
        Added test case for bug#14169: type of group_concat() result changed to blob if tmp_table was used
      ddbf62ca
  2. 21 Feb, 2006 4 commits
    • unknown's avatar
      Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 387ae4ab
      unknown authored
      into  mysql.com:/home/cps/mysql/devel/im/5.0-im-fix-race
      
      
      server-tools/instance-manager/instance_map.cc:
        Auto merged
      387ae4ab
    • unknown's avatar
      Fix race condition: instance map wasn't locked for the · 21aa5867
      unknown authored
      duration of the whole 'flush instances'. As a consequence,
      it was possible to query instance map, while it is in the
      inconsistent state. The patch was reworked after review.
      
      
      server-tools/instance-manager/guardian.cc:
        do not lock instance map in Guardian_thread::init()
      server-tools/instance-manager/instance_map.cc:
        Eliminate race condition: lock instance map and guardian
        for the duration of the whole "FLUSH INSTANCES" execution.
      server-tools/instance-manager/instance_map.h:
        add new method. cleanup interface. add comments.
      server-tools/instance-manager/manager.cc:
        use instance_map.flush_instances instead of instance_map.load() and guardian_thread.init()
      21aa5867
    • unknown's avatar
      Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 0a970b12
      unknown authored
      into  mysql.com:/home/cps/mysql/devel/im/5.0-im-add-error-message
      
      
      0a970b12
    • unknown's avatar
      Fix for Bug #12674 "Instance Manager: IM doesn't handle client · 8a1dd17b
      unknown authored
      connections correctly".
      Recommit with the max timeout value in sync with the comment.
      
      
      server-tools/instance-manager/options.cc:
        add new option to set wait timeout
      server-tools/instance-manager/priv.h:
        add a const for max wait timeout
      8a1dd17b
  3. 20 Feb, 2006 5 commits
  4. 18 Feb, 2006 6 commits
    • unknown's avatar
      In previous push, a DROP TABLE at the end of test was missing. · 34d8c572
      unknown authored
      
      mysql-test/r/mix_innodb_myisam_binlog.result:
        result update
      mysql-test/t/mix_innodb_myisam_binlog.test:
        cleanup in the end
      34d8c572
    • unknown's avatar
      Fix for BUG#13897 "failure to do SET SQL_MODE=N where N is a number > 31" (the... · 8dc567db
      unknown authored
      Fix for BUG#13897 "failure to do SET SQL_MODE=N where N is a number > 31" (the original bug's title isn't the simplest
      symptom). sys_var::check_set() was wrong. mysqlbinlog makes use of such SET SQL_MODE=N
      (where N is interpreted like if SQL_MODE was a field of type SET), so
      this bug affected recovery from binlogs if the server was running with certain SQL_MODE values,
      for example the default values on Windows (STRICT_TRANS_TABLES); to work around this bug people
      had to edit mysqlbinlog's output.
      
      
      mysql-test/r/sql_mode.result:
        result update
      mysql-test/t/sql_mode.test:
        test for various numeric SQL_MODE values
      sql/set_var.cc:
        For a set, it does not make sense to test if the supplied argument exceeds the number of elements in the set
        (such test would make sense for an enum), but rather to check if it exceeds 2^this (to verify
        that only reasonable bits are set).
      8dc567db
    • unknown's avatar
      Fix for BUG#14769 "Function fails to replicate if fails half-way (slave stops)": · 8470ae9c
      unknown authored
      if the function, invoked in a non-binlogged caller (e.g. SELECT, DO), failed half-way on the master,
      slave would stop and complain that error code between him and master mismatch. 
      To solve this, when a stored function is invoked in a non-binlogged caller (e.g. SELECT, DO), we binlog the function
      call as SELECT instead of as DO (see revision comment of sp_head.cc for more).
      And: minor wording change in the help text.
      This cset will cause conflicts in 5.1, I'll merge.
      
      
      mysql-test/r/rpl_sp.result:
        result update
      mysql-test/t/rpl_sp-slave.opt:
        bug just fixed so option not needed
      mysql-test/t/rpl_sp.test:
        test for more half-failed functions with DO and SELECT, to test the bug of this changeset.
        cleanup at the end.
      sql/mysqld.cc:
        function -> stored function (change suggested by Paul)
      sql/sp_head.cc:
        When a function updates data and is called from a non-binlogged statement (SELECT, DO), we binlog it 
        as SELECT myfunc(), and not DO myfunc() like before.
      8470ae9c
    • unknown's avatar
      Fix for BUG#16559 "Replication Problems with Non transactional tables inside... · cefc0b6d
      unknown authored
      Fix for BUG#16559 "Replication Problems with Non transactional tables inside an interrupted trans.":
      problem was: when a connection disconnects having an open transaction affecting MyISAM and InnoDB, the ROLLBACK event stored in the binary log
      contained a non-zero error code (1053 because of the disconnection), so when slave applied the transaction, slave complained that its ROLLBACK succeeded
      (error_code=0) while master's had 1053, so slave stopped. But internally generated binlog events such as this ROLLBACK
      should always have 0 as error code, as is true in 4.1 and was accidentally broken in 5.0,
      so that there is no false alarm.
      
      
      mysql-test/r/mix_innodb_myisam_binlog.result:
        result update
      mysql-test/t/mix_innodb_myisam_binlog.test:
        test for BUG#16559
      sql/log.cc:
        Internally generated binlog events should always have an error code of zero (like in 4.1; in 5.0 this was accidentally broken).
      cefc0b6d
    • unknown's avatar
      --help option added to mysql_upgrade script · 1d96eadd
      unknown authored
      
      scripts/mysql_upgrade.sh:
        --help option implemented
      1d96eadd
    • unknown's avatar
      Add a shift in the parser. Forgotten in the previous commit. · 187aab97
      unknown authored
      
      server-tools/instance-manager/parse.cc:
        shift the second value for the log
      187aab97
  5. 17 Feb, 2006 8 commits
  6. 16 Feb, 2006 9 commits
  7. 15 Feb, 2006 7 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 2974245c
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      
      libmysql/libmysql.c:
        Auto merged
      tests/mysql_client_test.c:
        Auto merged
      2974245c
    • unknown's avatar
      Merge mysql.com:/home/jimw/my/mysql-4.1-clean · 5d6985c4
      unknown authored
      into  mysql.com:/home/jimw/my/mysql-5.0-clean
      
      
      5d6985c4
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0 · 9849b248
      unknown authored
      into  mysql.com:/home/jimw/my/mysql-5.0-clean
      
      
      9849b248
    • unknown's avatar
      Fix bug #15706 find_field_in_tables() returns field from outer select · de0c65dd
      unknown authored
      If item->cached_table is set, find_field_in_tables() returns found field
      even if it doesn't belong to current select. Because Item_field::fix_fields
      doesn't expect such behaviour, reported bug occurs.
      
      Item_field::fix_fields() was modifed to detect when find_field_in_tables() 
      can return field from outer select and process such fields accordingly.
      In order to ease this code which was searching and processing outed fields was
      moved into separate function called Item_field::fix_outer_field().
      
      
      sql/item_subselect.h:
        Fixed bug #15706: find_field_in_tables() returns field from outer select
        Item_field::fix_outer_field() was marked as friend to Item_subselect class.
      sql/item.h:
        Fixed bug #15706: find_field_in_tables() returns field from outer select
        fix_outer_field() function is added to the Item_field class.
      sql/item.cc:
        Fixed bug #15706: find_field_in_tables() returns field from outer select
        
        Item_ref::fix_fields() and Item_field::fix_fields() were modifed to detect when
        find_field_in_tables() can return field from outer select and process such
        fields accordingly.
        In order to ease this, code Item_field::fix_fields() which was searching and
        processing outer fields was moved into separate function called
        Item_field::fix_outer_field().
        To the Item_field::fix_field() added a loop for finding context for found field.
      mysql-test/t/disabled.def:
        Fixed bug #15706: find_field_in_tables() returns field from outer select
        Enable subselect test
      de0c65dd
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-4.1 · a7abbd91
      unknown authored
      into  mysql.com:/home/jimw/my/mysql-4.1-clean
      
      
      a7abbd91
    • unknown's avatar
      Bug#16143 mysql_stmt_sqlstate returns an empty string instead of '00000' · 69ede4d9
      unknown authored
       - Init sql_state in mysql_stmt_init
      
      
      libmysql/libmysql.c:
        Init sql_state to not_error_sql_state in mysql_init
      tests/mysql_client_test.c:
        Add test for mysql_stmt_sqlstate after mysql_stmt_init
      69ede4d9
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 02091fd5
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      
      02091fd5