An error occurred fetching the project authors.
  1. 18 Oct, 2013 15 commits
  2. 17 Oct, 2013 1 commit
  3. 05 Oct, 2013 1 commit
  4. 13 Sep, 2013 1 commit
    • Sergey Vojtovich's avatar
      MDEV-4911 - add KILL query id, and add query id information to processlist · 1a2a9d74
      Sergey Vojtovich authored
      It is now possible to kill query by query id. KILL syntax was extended to:
      KILL [HARD | SOFT] [CONNECTION | QUERY [ID query_id]] [thread_id | USER user_name]
      
      Added QUERY_ID column to INFORMATION_SCHEMA.PROCESSLIST.
      
      Fixed tests affected by this change:
      - added PROCESSLIST.QUERY_ID column
      - ID is now keyword and is quoted in SHOW CREATE TABLE output
      - PFS statement digest is calculated basing on token id
        (not token text). Token id has shifted for keywords residing
        after ID in keywords array.
      1a2a9d74
  5. 30 Aug, 2013 1 commit
    • Sergey Vojtovich's avatar
      MDEV-4902 - sql_yacc.yy incompatible with bison 3 · 6fc98018
      Sergey Vojtovich authored
      - YYPARSE_PARAM and YYLEX_PARAM are removed in Bison 3.0. Deprecated
        since Bison 1.875 in favor of %lex-param, %parse-param.
      - %parse-param adds an argument to yyerror() as well, updated
        MYSQLerror() accordingly.
      - %parse-param allows to declare proper type for argument. That's
        what 99% of this patch is about.
      6fc98018
  6. 06 Aug, 2013 1 commit
  7. 04 Jul, 2013 1 commit
  8. 24 Jun, 2013 2 commits
    • Sergei Golubchik's avatar
      MDEV-4660 SHUTDOWN command · 31a1934c
      Sergei Golubchik authored
      Based on James Briggs contribution.
      31a1934c
    • Sujatha Sivakumar's avatar
      Bug#16753869:INCORRECT TRUNCATION OF LONG SET EXPRESSION IN · ce29ca8b
      Sujatha Sivakumar authored
      LOAD DATA CAN CAUSE SQL INJECTION
      
      Problem:
      =======
      A long SET expression in LOAD DATA is incorrectly truncated
      when written to the binary log.
      
      Analysis:
      ========
      LOAD DATA statements are reconstructed once again before
      they are written to the binary log. When SET clauses are
      specified as part of LOAD DATA statement, these SET clause
      user command strings need to be stored as it is inorder to
      reconstruct the original user command.  At present these
      strings are stored as part of SET clause item tree's
      top most Item node's name itself which is incorrect. As an
      Item::name can be of MAX_ALIAS_NAME (256) size. Hence the
      name will get truncated to "255".
      
      Because of this the rewritten LOAD DATA statement will be
      terminated incorrectly.  When this statment is read back by
      the mysqlbinlog tool it reads a starting single quote and
      continuos to read till it finds an ending quote. Hence any
      statement written post ending quote will be considered as
      a new statement.
      
      Fix:
      ===
      As name field has length restriction the string value
      should not be stored in Item::name.  A new String list is
      maintained to store the SET expression values and this list
      is read during reconstrution.
      
      sql/sql_lex.cc:
        Clear the load data set string list during each query 
        execution.
      sql/sql_lex.h:
        Added a new String list to store the load data operation's
        SET clause user command strings.
      sql/sql_load.cc:
        Read the SET clause user command strings from load data
        set string list.
      sql/sql_yacc.yy:
        Store the SET caluse user command string as part of load
        data set string list.
      ce29ca8b
  9. 15 Jun, 2013 1 commit
  10. 24 May, 2013 1 commit
    • Maitrayi Sabaratnam's avatar
      4371 Maitrayi Sabaratnam 2013-05-23 · baca6688
      Maitrayi Sabaratnam authored
            Bug#13116514 - CREATE LOGFILE GROUP INITIAL_SIZE & UNDO_BUFFER_SIZE FAILS
            
            Fixing parser to accept the syntax: to give a size with suffix 'M', eg. undo_buffer_size=10M (M for mega bytes), in 'create logfile group' command.
      baca6688
  11. 22 May, 2013 1 commit
    • unknown's avatar
      MDEV-26: Global transaction ID. · 1cd6eb5f
      unknown authored
      Change of user interface to be more logical and more in line with expectations
      to work similar to old-style replication.
      
      User can now explicitly choose in CHANGE MASTER whether binlog position is
      taken into account (master_gtid_pos=current_pos) or not (master_gtid_pos=
      slave_pos) when slave connects to master.
      
      @@gtid_pos is replaced by three separate variables @@gtid_slave_pos (can
      be set by user, replicated GTIDs only), @@gtid_binlog_pos (read only), and
      @@gtid_current_pos (a combination of the two, most recent GTID within each
      domain). mysql.rpl_slave_state is renamed to mysql.gtid_slave_pos to match.
      
      This fixes MDEV-4474.
      1cd6eb5f
  12. 15 May, 2013 1 commit
    • unknown's avatar
      MDEV-26: Global transaction ID. · 9fae9930
      unknown authored
      Implement START SLAVE UNTIL master_gtid_pos = "<GTID position>".
      
      Add test cases, including a test showing how to use this to promote
      a new master among a set of slaves.
      9fae9930
  13. 08 May, 2013 1 commit
    • Alexander Barkov's avatar
      The bug · e013bf9f
      Alexander Barkov authored
      MDEV-4489 "Replication of big5, cp932, gbk, sjis strings makes wrong values on slave"
      has been fixed.
      
      Problem:
      String constants of some Asian charsets (big5,cp932,gbk,sjis)
      can have backslash '\' (0x5C) in the second byte of multi-byte characters.
      Replicating of such constants using the standard '\'-escaping is dangerous.
      Therefore, constants of these charsets are replicated using hex notation:
      INSERT INTO t1 (a) VALUES (0x815C);
      
      However, 0xHHHH constants do not work well in some cases,
      because they can behave as strings and as numbers, depending on context
      (for example, depending on the data type of the column in an INSERT statement).
      
      This SQL script was not replicated correctly with statement-based replication:
      
      SET NAMES gbk;
      PREPARE STMT FROM 'INSERT INTO t1 (a) VALUES (?)';
      SET @A = '1';
      EXECUTE STMT USING @A;
      
      The INSERT statement was replicated as:
      INSERT INTO t1 (a) VALUES (0x31);
      
      '1' was correctly converted to the number 1 on master.
      But the 0x31 constant was treated as number 49 on slave.
      
      Fix:
      
      1. Binary log now uses X'HHHH' instead of 0xHHHH constants.
      2. The X'HHHH' constants now work always as strings, in all contexts.
      This is the SQL standard compliant behaviour.
      
      After the fix, the above statement is replicated as:
      INSERT INTO t1 (a) VALUES (X'31');
      X'31' is treated as string '1' on slave, and is correctly converted to 1.
      
      
      modified:
        @ mysql-test/r/ctype_cp932_binlog_stm.result
        @ mysql-test/r/select.result
        @ mysql-test/r/select_jcl6.result
        @ mysql-test/r/select_pkeycache.result
        @ mysql-test/r/user_var-binlog.result
        @ mysql-test/r/varbinary.result
        @ mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result
        @ mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
        @ mysql-test/suite/rpl/r/rpl_charset_sjis.result
        @ mysql-test/suite/rpl/r/rpl_mdev382.result
        @ mysql-test/suite/rpl/t/rpl_charset_sjis.test
        @ mysql-test/t/ctype_cp932_binlog_stm.test
        @ mysql-test/t/select.test
        @ mysql-test/t/varbinary.test
          Adding and updating tests
      
        @ sql/item.cc
        @ sql/item.h
        @ sql/sql_yacc.yy
        @ sql/sql_lex.cc
          Splitting the implementations of X'HH' and 0xHH constants into two
          separate classes. Fixing the parser to distinguish the two syntaxes.
      
        @ sql/log_event.cc
          Using X'HH' instead of 0xHH for binary logging for string constants
          of the "dangerous" charsets.
      
        @ sql/sql_string.h
          Adding a helped method String::append_hex().
      e013bf9f
  14. 18 Apr, 2013 1 commit
  15. 14 Apr, 2013 1 commit
    • Chaithra Gopalareddy's avatar
      Bug#16347426:ASSERTION FAILED: (SELECT_INSERT && · 2d836633
      Chaithra Gopalareddy authored
                   !TABLES->NEXT_NAME_RESOLUTION_TABLE) || !TAB
            
      Problem:
      The context info of select query gets corrupted when a query
      with group_concat having order by is present in an order by
      clause of the select query. As a result, server crashes with
      an assert.
            
      Analysis:
      While parsing order by for group_concat, it is presumed that
      it is always present before the actual order by for the
      select query.
      As a result, parser uses select->order_list to populate the
      order by items of group_concat and creates a select->gorder_list
      to which select->order_list is copied onto. Once this is done,
      it empties the select->order_list.
      In the case presented in the bugpage, as order by is already
      parsed when group_concat's order by is encountered, parser
      presumes that it is the second order by in the select query
      and creates fake_lex_unit which results in the change of
      context info.
            
      Solution:
      Make group_concat's order by parsing independent of the select
      
      
      sql/item_sum.cc:
        Change the argument as, select->gorder_list is not pointer anymore
      sql/item_sum.h:
        Change the argument as, select->gorder_list is not pointer anymore
      sql/mysql_priv.h:
        Parsing for group_concat's order by is made independent.
        As a result, add_order_to_list cannot be used anymore.
      sql/sql_lex.cc:
        Parsing for group_concat's order by is made independent.
        As a result, add_order_to_list cannot be used anymore.
      sql/sql_lex.h:
        Parsing for group_concat's order by is made independent.
        As a result, add_order_to_list cannot be used anymore.
      sql/sql_yacc.yy:
         Make group_concat's order by parsing independent of the select
        queries order by.
      2d836633
  16. 13 Apr, 2013 1 commit
    • Alexey Botchkov's avatar
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). · d8dccde6
      Alexey Botchkov authored
               Syntax modified to allow statements:
                     ALTER TABLE ADD/DROP COLUMN
                     ALTER TABLE ADD/DROP INDEX
                     ALTER TABLE ADD/DROP FOREIGN KEY
                     ALTER TABLE ADD/DROP PARTITION
                     ALTER TABLE CHANGE COLUMN
                     ALTER TABLE MODIFY COLUMN
                     DROP INDEX
               to have IF (NOT) EXISTS options.
               Appropriate implementations added to mysql_alter_table().
            
            per-file comments:
              mysql-test/r/alter_table.result
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    test result updated.
              mysql-test/r/fulltext.result
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              mysql-test/r/partition.result
                    test result updated.
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              mysql-test/t/alter_table.test
                    tests added.
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              mysql-test/t/fulltext.test
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    tests added.
              mysql-test/t/partition.test
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    tests added.
              sql/field.cc
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    create_if_not_exists field added.
              sql/field.h
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    create_if_not_exists field added.
              sql/partition_info.h
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    has_unique_name made public.
              sql/sp_head.cc
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              sql/sql_class.cc
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    create_if_not_exists inited.
              sql/sql_class.h
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    create_if_not_exists inited.
              sql/sql_lex.cc
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    check_exists inited.
              sql/sql_lex.h
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    check_exists inited.
              sql/sql_parse.cc
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              check_exists inited.
              sql/sql_table.cc
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    handle_if_exists_options() added.
                    it's called in mysql_alter_table().
              sql/sql_trigger.cc
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    check_exists instead of drop_if_exists.
              sql/sql_view.cc
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    check_exists instead of drop_if_exists.
              sql/sql_yacc.yy
            MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
                    sintax modified.
      d8dccde6
  17. 09 Apr, 2013 1 commit
  18. 07 Apr, 2013 1 commit
  19. 05 Apr, 2013 1 commit
    • unknown's avatar
      MDEV-26: Global transaction ID. · b7363eb4
      unknown authored
      Replace CHANGE MASTER TO ... master_gtid_pos='xxx' with a new system
      variable @@global.gtid_pos.
      
      This is more logical; @@gtid_pos is global, not per-master, and it is not
      affected by RESET SLAVE.
      
      Also rename master_gtid_pos=AUTO to master_use_gtid=1, which again is more
      logical.
      b7363eb4
  20. 19 Mar, 2013 1 commit
    • Tor Didriksen's avatar
      Bug#16359402 CRASH WITH AGGREGATES: ASSERTION FAILED: N < M_SIZE · 3d10d7d1
      Tor Didriksen authored
      Post push fix:
      setup_ref_array() now uses n_sum_items to determine size of ref_pointer_array.
      The problem was that n_sum_items kept growing, it wasn't reset for each query.
      
      A similar memory leak was fixed with the patch for:
      Bug 14683676 ENDLESS MEMORY CONSUMPTION IN SETUP_REF_ARRAY WITH MAX IN SUBQUERY
      
      
      sql/sql_yacc.yy:
        Reset parsing_place when we're done parsing SHOW commands, 
        to prevent Item::Item incrementing select_n_having_items
        (which is also used in setup_ref_array())
      3d10d7d1
  21. 18 Mar, 2013 1 commit
  22. 17 Mar, 2013 1 commit
    • Michael Widenius's avatar
      Patch by Hartmut Holzgraefe · 8b047ac5
      Michael Widenius authored
      STRAIGHT_JOIN couldn't be combined with NATURAL or USING(), 
      INNER JOIN not with NATURAL (MDEV-4271, MySQL Bug #35268)
      
      Separate rules existed for "natural" (non-outer) joins and
      for STRAIGHT_JOIN, with the only difference code wise being 
      that with STRAIGHT_JOIN the "straight" property of the right
      side table was set before calling the appropriate add_...()
      function.
      
      The "natural_join" parser rule has now been extended to also
      accept STRAIGHT_JOIN, and the rule result value is set to
      1 for straight joins, 0 otherwise, so acting as a "straight"
      flag that can directly be assigned to the "straight" property
      of the right side table.
      
      The rule parsing NATURAL JOIN was hard coded to accept just
      this keyword combination, without support for either 
      STRAIGHT_JOIN or the optional INNER.
      
      The "natural_join" rule has now been split up in an inner
      "inner_join" rule that matches the JOIN, INNER JOIN and
      STRAIGHT_JOIN cases while "natural_join" also matches
      CROSS JOIN. 
      
      The NATURAL rule has been changed to accept "inner_join"
      instead of just JOIN, so now NATURAL STRAIGHT_JOIN and
      NATURAL INNER JOIN also work as expected.
      
      As a side effect the removal of the duplciated rules
      for STRAIGHT_JOIN handling has reduced the shift/reduce
      conflict count by one.
      
      mysql-test/r/join.result:
        Added new test cases
      mysql-test/t/join.test:
        Added new test cases
      sql/sql_yacc.yy:
        The "natural_join" parser rule was extended to also accept STRAIGHT_JOIN
        NATURAL STRAIGHT_JOIN and NATURAL INNER JOIN also now work as expected
      8b047ac5
  23. 14 Mar, 2013 1 commit
    • Michael Widenius's avatar
      OPTION is now a valid identifier (not a reserved word) · de5d2550
      Michael Widenius authored
      mysql-test/r/keywords.result:
        Test that option works as table/column/variable
      mysql-test/suite/funcs_1/r/storedproc.result:
        OPTION is now a valid identifier
      mysql-test/suite/funcs_1/t/storedproc.test:
        OPTION is now a valid identifier
      mysql-test/t/keywords.test:
        Test that option works as table/column/variable
      sql/sql_yacc.yy:
        OPTION is now a valid identifier
      de5d2550
  24. 25 Feb, 2013 1 commit
  25. 12 Feb, 2013 1 commit