1. 20 May, 2013 5 commits
  2. 19 May, 2013 4 commits
  3. 17 May, 2013 1 commit
    • Alexander Barkov's avatar
      Bug#MDEV-4518 Server crashes in is_white_space when it's run · 3ef880cb
      Alexander Barkov authored
      with query cache, charset ucs2 and collation ucs2_unicode_ci
      
        @ mysql-test/r/ctype_ucs2_query_cache.result
        @ mysql-test/t/ctype_ucs2_query_cache-master.opt
        @ mysql-test/t/ctype_ucs2_query_cache.test
          Adding tests
      
        @ sql/sql_cache.cc
          Fixing not to use default_character_set->state_map,
          which can point to a non-ASCII character set (utc2, utf16, utf32)
         and thus have state_map undefined.
      3ef880cb
  4. 15 May, 2013 1 commit
    • Michael Widenius's avatar
      - Solaris fixes: · 0fa77299
      Michael Widenius authored
        - Fixed that wait_timeout_func and wait_timeout tests works on solaris
        - We have to compile without NO_ALARM on Solaris as Solaris doesn't support timeouts on sockets with setsockopt(.. SO_RCVTIMEO).
        - Fixed that compile-solaris-amd64-debug works (before that we got a wrong ELF class: ELFCLASS64 on linkage)
      - Fixed some compiler warnings
      - Fixed some failing tests
      
      BUILD/compile-solaris-amd64-debug:
        Fixed that compile-solaris-amd64-debug works (before that we got a wrong ELF class: ELFCLASS64 on linkage)
      configure.cmake:
        We have to compile without NO_ALARM on Solaris as Solaris doesn't support timeouts on sockets with setsockopt(.. SO_RCVTIMEO)
      mysql-test/suite/parts/t/partition_basic_innodb.test:
        Mark test as big test (as otherwise we get timeout on our opensolaris machine in buildbot)
      mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test:
        Remove warning
      0fa77299
  5. 14 May, 2013 4 commits
    • Alexey Botchkov's avatar
      MDEV-4266 Server upgrade via apt-get install does not work. · 19cb1c47
      Alexey Botchkov authored
              Now empty 'highlevel' packages strictly depend on the same versions of files.
              These are mariadb-server, mariadb-client, mariadb-test
      
      per-file comments:
        debian/dist/Debian/control
      MDEV-4266 Server upgrade via apt-get install does not work.
              dependencies on the current version added.
        debian/dist/Ubuntu/control
      MDEV-4266 Server upgrade via apt-get install does not work.
              dependencies on the current version added.
      19cb1c47
    • Alexey Botchkov's avatar
      MDEV-4521 MBRContains, MBRWithin no longer work with geometries of different type. · c2ee0218
      Alexey Botchkov authored
              get_mm_leaf function can store all sorts of spatial features in
              one type of field it receives from an Item_field.
              So we just allow that by setting the type of this field to GEOMETRY.
      
      per-file comments:
        mysql-test/r/gis-rtree.result
              result updated
        mysql-test/t/gis-rtree.test
              test case added.
        sql/opt_range.cc
              set geom_type=GEOMETRY if we got Field_geom.
      c2ee0218
    • Michael Widenius's avatar
      When one does 'REPAIR TABLE', update uuid() to the current system · d0265a63
      Michael Widenius authored
      
      mysql-test/suite/maria/maria-autozerofill.result:
        Updated result
      mysql-test/suite/maria/maria-autozerofill.test:
        Added test that zerofilled table should not give any warnings when table is used
      mysql-test/suite/maria/maria-recovery2.result:
        More tests to make it easier to find bugs
      mysql-test/suite/maria/maria-recovery2.test:
        More tests to make it easier to find bugs
      storage/maria/ha_maria.cc:
        Set create_trid after repair (needed if table was moved from another system)
        Set uuid after repair (needed if table was moved from another system)
      storage/maria/maria_chk.c:
        Reset share->state.create_trid if we reset share->state.create_rename_lsn.
        Make the table moveable
      d0265a63
    • unknown's avatar
      Fix test failure in plugins.unix_socket when running tests as user root. · 97463576
      unknown authored
      (The problem is that if $USER is root, then the authentication will log
      in with the mysqld user root. And then CURRENT_USER() returns a valid
      user, giving .result file difference).
      97463576
  6. 13 May, 2013 4 commits
  7. 12 May, 2013 2 commits
    • Michael Widenius's avatar
      Fixed MDEV-4291: Assertion `trid >= info->s->state.create_trid' failure or... · 66830664
      Michael Widenius authored
      Fixed MDEV-4291: Assertion `trid >= info->s->state.create_trid' failure or data corruption (key points to record
      outside datafile) on INSERT into an Aria table.
      
      The isssue was that the check if a table was moved between systems didn't take into account that create_trid could be bigger than the current max trid on the new system.
      This could only happen if one tried to move a table that one had just done a 'REPAIR TABLE' on.
      Tables that one had run 'aria_chk --zerofill' on worked.
      
      Fixed this by assuming that if create_trid is too big then the table has been moved from one system to another and we have to do an automatic zerofill.
      
      Other fixed:
      
      - Added a check to detect a wrong create_trid in 'check table'.
      - aria_chk -dvv will now write out also the create_trid (to make future error finding easier)
      - aria_chk --zerofill doesn't anymore require a aria_control_file
      - Removed some warnings from safemalloc when using aria_chk, ma_test1 and ma_test2.
      
      
      include/myisamchk.h:
        Removed wrong 'QQ' flags (the flags are used by myisamchk and aria_chk)
      storage/maria/ha_maria.cc:
        maria_chk_status() can now also return an error.
      storage/maria/ma_check.c:
        In maria_chk_status() check if create_trid value is too big.
      storage/maria/ma_open.c:
        Changed check if table is moved so that we can detect wrong create_trid values.
        Don't set STATE_NOT_MOVABLE flag if we are doing repair/check. This was done so that aria_chk can print out the movable flag.
      storage/maria/ma_test1.c:
        Added code to suppress memory leaks from safemalloc
      storage/maria/ma_test2.c:
        Added code to suppress memory leaks from safemalloc
      storage/maria/maria_chk.c:
        Added code to suppress memory leaks from safemalloc.
        Make help text a bit better for --HELP and --zerofill.
        Incresed version number.
        Don't require a control file if we are only doing --zerofill
        Print out 'create_trid' when doing --describe --verbose
      storage/maria/unittest/ma_test_recovery.expected:
        Updated result file
      66830664
    • Michael Widenius's avatar
      MDEV-3999: Valgrind errors 'invalid write' or assorted server crashes on... · 3bd6e4b8
      Michael Widenius authored
      MDEV-3999: Valgrind errors 'invalid write' or assorted server crashes on concurrent flow with partitioned Aria tables
      MDEV-3989: Server crashes on import from MariaDB mysqldump export with partitioned Aria table.
      
      Problem was that bulk insert in aria was not properly protected against concurrent selects.
      
      
      storage/maria/ha_maria.cc:
        Move settings of file->state to _ma_block_start_trans() to ensure that lock_key_trees is not changed by a concurrent bulk_insert.
      storage/maria/ma_check.c:
        Added DBUG_ASSERT()
      storage/maria/ma_open.c:
        Set start_trans to ma_start_trans for default behaviour.
      storage/maria/ma_pagecrc.c:
        Removed test for 'non_transactional' as a now_transactinal could be reset while a flush was happening.
      storage/maria/ma_state.c:
        Moved setting of info->state from external_lock to start_trans to protect against concurrent running bulk inserts.
        This works as the other threads will wait in thr_lock() until bulk_insert is done and keys are re-generated.
      storage/maria/ma_state.h:
        Added _ma_start_trans()
      3bd6e4b8
  8. 11 May, 2013 5 commits
    • Michael Widenius's avatar
      Fixed that SHOW PROCESSLIST and information_schema.processlist uses the right... · 0737932b
      Michael Widenius authored
      Fixed that SHOW PROCESSLIST and information_schema.processlist uses the right length for user names.
      Fixed some failing tests
      
      
      mysql-test/mysql-test-run.pl:
        Removed warning from mysql-test-run
      mysql-test/r/create.result:
        Updated result
      mysql-test/r/log_slow.result:
        Fixed failing test
      mysql-test/suite/funcs_1/r/is_columns_is.result:
        Updated result
      mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result:
        Updated result
      mysql-test/suite/funcs_1/r/processlist_val_no_prot.result:
        Updated result
      mysql-test/t/log_slow.test:
        Ensure variables are properly reset at end of test
      sql/sql_show.cc:
        Fixed max length for user names
      0737932b
    • Michael Widenius's avatar
      Fixed compiler failure on solaris · 3b3f8709
      Michael Widenius authored
      3b3f8709
    • Michael Widenius's avatar
      Fixed compiler warning · 4b9a6c03
      Michael Widenius authored
      4b9a6c03
    • Michael Widenius's avatar
      MDEV-4280: Assertion `empty_size == empty_size_on_page' failure in... · 4e9bf37f
      Michael Widenius authored
      MDEV-4280: Assertion `empty_size == empty_size_on_page' failure in ma_blockrec.c or ER_NOT_KEYFILE on query with DISTINCT and GROUP BY
      This could happen when using Aria for internal temporary files (default case) and using DISTINCT.
      _ma_scan_restore_block_record() didn't work correctly if there was rows inserted, updated or deleted on the handler
      between calls to _ma_scan_remember_block_record() and _ma_scan_restore_block_record().
      The effect was that some DISTINCT queries that used remove_dup_with_compare() could fail.
      
      .bzrignore:
        Ignore sql_yacc.hh
      mysql-test/suite/maria/r/distinct.result:
        Test case for MDEV-4280
      mysql-test/suite/maria/t/distinct.test:
        Test case for MDEV-4280
      mysql-test/t/mysql.test:
        Fixed test suite (we could get error -1 in some cases)
      sql/sql_select.cc:
        Break loop if restart_rnd_next() gives an error
      storage/maria/ha_maria.cc:
        scan_restore_pos() can return disk fault error.
      storage/maria/ma_blockrec.c:
        _ma_scan_remember_block_record() did incorrectly update scan.dir instead of scan_save.dir .
        _ma_scan_restore_block_record() didn't work correctly if there was rows inserted,updated or deleted on the handler
        between calls to _ma_scan_remember_block_record() and _ma_scan_restore_block_record().
        Fixed by adding counters for row changes and reading the current scan page if changes had been made.
      storage/maria/ma_blockrec.h:
        scan_restore_pos() can return disk fault error.
      storage/maria/ma_delete.c:
        Increment row_changes
      storage/maria/ma_scan.c:
        scan_restore_pos() can return disk fault error.
      storage/maria/ma_update.c:
        Increment row_changes
      storage/maria/ma_write.c:
        Increment row_changes
      storage/maria/maria_def.h:
        scan_restore_pos() can return disk fault error.
      4e9bf37f
    • Michael Widenius's avatar
      MDEV-4231: Possible bug in function _ma_apply_undo_row_insert() · 5b31f878
      Michael Widenius authored
      Added comment to clearify the code.
      
      
      storage/maria/ma_blockrec.c:
        Added comment to clearify the code
        In case of out of memory or disk error, mark pages with LSN_IMPOSSIBLE to make it easier to know which pages have wrong information.
      5b31f878
  9. 09 May, 2013 2 commits
  10. 08 May, 2013 5 commits
    • Vladislav Vaintroub's avatar
    • Sergei Golubchik's avatar
      MDEV-4462 mysqld gets SIGFPE when mysql.user table is empty · 4a0f2563
      Sergei Golubchik authored
      avoid divison by zero
      4a0f2563
    • 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
    • Sergei Golubchik's avatar
      da846a15
    • Sergei Golubchik's avatar
      Percona-Server-5.5.30-rel30.2.tar.gz · bcfa90b4
      Sergei Golubchik authored
      bcfa90b4
  11. 07 May, 2013 3 commits
  12. 06 May, 2013 1 commit
    • Michael Widenius's avatar
      If one declared several continue handler for the same condition on different... · d4be9e7b
      Michael Widenius authored
      If one declared several continue handler for the same condition on different level of stored procedures, all of them where executed.
      Now we only execute the innermost of them (the most relevant).
      
      The solution was to add a 'handled' marker to MYSQL_ERROR and mark all elements for which we have executed a condition handler.
      When searching for new conditions, we will ignore any marked element.
      
      
      
      
      .bzrignore:
        Ignore error message file
      mysql-test/r/sp.result:
        Added testcase for continue handlers.
      mysql-test/t/sp.test:
        Added testcase for continue handlers.
      sql/sp_head.cc:
        Mark errors for which we will excute a handler as 'handled'
        Ignore already handled warnings/errors
      sql/sql_error.cc:
        Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled.
      sql/sql_error.h:
        Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled.
      d4be9e7b
  13. 05 May, 2013 3 commits