1. 11 Jan, 2011 2 commits
    • Davi Arnaut's avatar
      Bug#42054: SELECT CURDATE() is returning bad value · 644f0c1d
      Davi Arnaut authored
      The problem from a user point of view was that on Solaris the
      time related functions (e.g. NOW(), SYSDATE(), etc) would always
      return a fixed time.
      
      This bug was happening due to a logic in the time retrieving
      wrapper function which would only call the time() function every
      half second. This interval between calls would be calculated
      using the gethrtime() and the logic relied on the fact that time
      returned by it is monotonic.
      
      Unfortunately, due to bugs in the gethrtime() implementation,
      there are some cases where the time returned by it can drift
      (See Solaris bug id 6600939), potentially causing the interval
      calculation logic to fail.
      
      The solution is to retrieve the correct time whenever a drift in
      the time returned by gethrtime() is detected. That is, do not
      use the cached time whenever the values (previous and current)
      returned by gethrtime() are not monotonically increasing.
      
      mysys/my_getsystime.c:
        Do not used the cached time if gethrtime is not monotonic.
      644f0c1d
    • Jan Wedvik's avatar
      Fix for bug#58553, "Queries with pushed conditions causes 'explain extended' · 7f09ed8d
      Jan Wedvik authored
      to crash mysqld". 
            
      handler::pushed_cond was not always properly reset when table objects where
      recycled via the table cache.
            
      handler::pushed_cond is now set to NULL in handler::ha_reset(). This should 
      prevent pushed conditions from (incorrectly) re-apperaring in later queries.
      7f09ed8d
  2. 10 Jan, 2011 2 commits
  3. 08 Jan, 2011 2 commits
  4. 07 Jan, 2011 6 commits
  5. 06 Jan, 2011 3 commits
  6. 05 Jan, 2011 4 commits
  7. 04 Jan, 2011 3 commits
    • unknown's avatar
      43818 - Patch for mysql-5.1-innodb · 4aef2023
      unknown authored
      Avoid handler::info() call for three Information Schema tables;
      TABLE_CONSTRAINTS, KEY_COLUMN_USAGE, & REFERENTIAL_CONTRAINTS
      4aef2023
    • Jon Olav Hauglid's avatar
      Bug #50619 assert in handler::update_auto_increment · 2bbc6f38
      Jon Olav Hauglid authored
      This assert could be triggered if -1 was inserted into
      an auto increment column by a statement writing more than
      one row.
      
      Unless explicitly given, an interval of auto increment values
      is generated when a statement first needs an auto increment
      value. The triggered assert checks that the auto increment
      counter is equal to or higher than the lower bound of this
      interval.
      
      Generally, the auto increment counter starts at 1 and is
      incremented by 1 each time it is used. However, inserting an
      explicit value into the auto increment column, sets the auto
      increment counter to this value + 1 if this value is higher
      than the current value of the auto increment counter.
      
      This bug was triggered if the explicit value was -1. Since the
      value was converted to unsigned before any comparisons were made,
      it was found to be higher than the current vale of the auto
      increment counter and the counter was set to -1 + 1. This value
      was below the reserved interval and caused the assert to be
      triggered the next time the statement tried to write a row.
      
      With the patch for Bug#39828, this bug is no longer repeatable.
      Now, -1 + 1 is detected as an "overflow" which causes the auto
      increment counter to be set to ULONGLONG_MAX. This avoids hitting
      the assert for the next insert and causes a new interval of
      auto increment values to be generated. This resolves the issue.
      
      This patch therefore only contains a regression test and no code
      changes. Test case added to auto_increment.test.
      2bbc6f38
    • Mattias Jonsson's avatar
      merge · 2eba1e8b
      Mattias Jonsson authored
      2eba1e8b
  8. 31 Dec, 2010 1 commit
  9. 29 Dec, 2010 4 commits
    • Alexander Nozdrin's avatar
      Empty merge from mysql-5.0. · 664dd08e
      Alexander Nozdrin authored
      664dd08e
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.1-bugteam. · 7983590d
      Alexander Nozdrin authored
      7983590d
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.0-bugteam. · a218c24f
      Alexander Nozdrin authored
      a218c24f
    • unknown's avatar
      Bug #50914 mysqlbinlog not handling drop of current default database · b15f216c
      unknown authored
      mysqlbinlog only prints "use $database" statements to its output stream
      when the active default database changes between events. This will cause
      "No Database Selected" error when dropping and recreating that database.
      
      To fix the problem, we clear print_event_info->db when printing an event
      of CREATE/DROP/ALTER database statements, so that the Query_log_event
      after such statements will be printed with the use 'db' anyway except
      transaction keywords.
      
      mysql-test/r/mysqlbinlog.result:
        Test result for Bug#50914.
      mysql-test/t/mysqlbinlog.test:
        Added test to verify if the approach of the mysqlbinlog prints
        "use $database" statements to its output stream will cause
        "No Database Selected" error when dropping and recreating
        that database.
      sql/log_event.cc:
        Updated code to clear print_event_info->db when printing an event
        of CREATE/DROP/ALTER database statements, so that the Query_log_event
        after such statements will be printed with the use 'db' anyway except
        transaction keywords.
      b15f216c
  10. 28 Dec, 2010 3 commits
    • Kent Boortz's avatar
      Merge · bdd5d1ec
      Kent Boortz authored
      bdd5d1ec
    • Kent Boortz's avatar
      - Added/updated copyright headers · a1a90798
      Kent Boortz authored
      - Removed files specific to compiling on OS/2
      - Removed files specific to SCO Unix packaging
      - Removed "libmysqld/copyright", text is included in documentation
      - Removed LaTeX headers for NDB Doxygen documentation
      - Removed obsolete NDB files
      - Removed "mkisofs" binaries
      - Removed the "cvs2cl.pl" script
      - Changed a few GPL texts to use "program" instead of "library"
      a1a90798
    • Calvin Sun's avatar
      Fix a build error on Windows, introduced by revision-id: · 729df260
      Calvin Sun authored
      marko.makela@oracle.com-20101221112722-1yxxzzgqtem8bcm7
      
      The fix was suggested by Jimmy.
      729df260
  11. 27 Dec, 2010 1 commit
  12. 24 Dec, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#57810 case/when/then : Assertion failed: length || !scale · 86d448a9
      Sergey Glukhov authored
      ASSERT happens due to improper calculation of the max_length
      in Item_func_div object, if dividend has max_length == 0 then
      Item_func_div::max_length is set to 0 under some circumstances.
      The fix:
      If decimals == NOT_FIXED_DEC then set
      Item_func_div::max_length to max possible
      DOUBLE length value.
      
      
      mysql-test/r/func_math.result:
        test case
      mysql-test/t/func_math.test:
        test case
      sql/item_func.cc:
        The fix:
        If decimals == NOT_FIXED_DEC then set
        Item_func_div::max_length to max possible
        DOUBLE length value.
      86d448a9
  13. 22 Dec, 2010 2 commits
    • Mattias Jonsson's avatar
      Bug#54483: valgrind errors when making warnings for · 93dc62c3
      Mattias Jonsson authored
      multiline inserts into partition
      Bug#57071: EXTRACT(WEEK from date_col) cannot be
      allowed as partitioning function
      
      Renamed function according to reviewers comments.
      
      sql/item.h:
        better name of processor function
      sql/item_func.h:
        better name of processor function
      sql/item_timefunc.h:
        better name of processor function
      sql/sql_partition.cc:
        better name of processor function
        Updated comment.
      93dc62c3
    • Mattias Jonsson's avatar
      Bug#54483: valgrind errors when making warnings for multiline inserts into partition · 969e729a
      Mattias Jonsson authored
      Bug#57071: EXTRACT(WEEK from date_col) cannot be allowed as partitioning function
      
      There were functions allowed as partitioning functions
      that implicit allowed cast. That could result in unacceptable
      behaviour.
      
      Solution was to check that the arguments of date and time functions
      have allowed types (field and date/datetime/time depending on function).
      
      mysql-test/r/partition.result:
        Updated result
      mysql-test/r/partition_error.result:
        Updated result
      mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc:
        disabled test with not allowed arguments.
      mysql-test/suite/parts/r/part_supported_sql_func_innodb.result:
        Updated result
      mysql-test/suite/parts/r/part_supported_sql_func_myisam.result:
        Updated result
      mysql-test/t/partition.test:
        Fixed typo in bug number and removed non allowed function (bad argument)
      mysql-test/t/partition_error.test:
        Added tests to verify correct type of argument.
      sql/item.h:
        Renamed processor since it is no longer only for timezone
      sql/item_func.h:
        Added help functions for checking date/time/datetime arguments.
      sql/item_timefunc.h:
        Added processors for argument correctness
      sql/sql_partition.cc:
        renamed the processor for checking arguments.
      969e729a
  14. 21 Dec, 2010 6 commits
    • Sergey Glukhov's avatar
      automerge · ab2f1fdc
      Sergey Glukhov authored
      ab2f1fdc
    • Sergey Glukhov's avatar
      test case fix · 18c28c47
      Sergey Glukhov authored
      18c28c47
    • Sven Sandberg's avatar
      BUG#59084: rpl_do_grant started to fail on FreeBSD (presumably after BUG#49978) · 165b3240
      Sven Sandberg authored
      Problem: master executed a statement that would fail on slave
      (namely, DROP USER 'create_rout_db'@'localhost').
      Then the test did:
        --let $rpl_only_running_threads= 1
        --source include/rpl_reset.inc
      rpl_reset.inc calls rpl_sync.inc, which first checks which of
      the threads are running and then syncs those threads that are
      running. If the SQL thread fails after the check, the sync will
      fail. So there was a race in the test and it failed on some
      slow hosts.
      Fix: Don't replicate the failing statement.
      165b3240
    • Sergey Glukhov's avatar
      Bug#58030 crash in Item_func_geometry_from_text::val_str · 8246b5a4
      Sergey Glukhov authored
      Item_sum_max/Item_sum_min incorrectly set null_value flag and
      attempt to get result in parent functions leads to crash.
      This happens due to double evaluation of the function argumet.
      First evaluation happens in the comparator and second one
      happens in Item_cache::cache_value().
      The fix is to introduce new Item_cache object which
      holds result of the argument and use this cached value
      as an argument of the comparator.
      
      mysql-test/r/func_group.result:
        test case
      mysql-test/t/func_group.test:
        test case
      sql/item.cc:
        added assertion that ether we have some result or result is NULL.
      sql/item_sum.cc:
        introduce new Item_cache object which
        holds result of the argument and use this cached value
        as an argument of the comparator.
      sql/item_sum.h:
        introduce new Item_cache object which
        holds result of the argument and use this cached value
        as an argument of the comparator.
      8246b5a4
    • Marko Mäkelä's avatar
      Bug #55284 Double BLOB free due to lock wait while updating PRIMARY KEY · 20bfda19
      Marko Mäkelä authored
      This bug fix requires that Bug #58912 be fixed as well (bzr revision id
      marko.makela@oracle.com-20101221093919-mcmmgd4zpse9567d). Otherwise,
      another double BLOB free could occur when InnoDB would try to perform
      an update-in-place as delete-and-insert-by-update-in-place.
      
      row_upd_clust_rec_by_insert(): Do not disown the externally stored
      columns from the old record (btr_cur_mark_extern_inherited_fields())
      until after checking the foreign key constraints and successfully
      inserting the updated record. If a lock wait timeout occurs between
      the delete-marking of the old record and the insertion of the updated
      record, mark the columns inherited before retrying the insert.
      Distinguish the state UPD_NODE_INSERT_BLOB from
      UPD_NODE_INSERT_CLUSTERED.
      
      btr_cur_del_mark_set_clust_rec(): Replace the cursor with
      block,rec,index,offsets so that the offsets need not be recalculated.
      Assert that rec is on a clustered index leaf page.
      
      btr_cur_disown_inherited_fields(): Renamed from
      btr_cur_mark_extern_inherited_fields(). Use
      upd_get_field_by_field_no(). Assert that there are externally stored
      columns. Assert that a mini-transaction is passed. Remove the return
      status. (The only caller, row_upd_clust_rec_by_insert(), will have
      determined that some fields have changed ownership.)
      
      btr_cur_mark_dtuple_inherited_extern(): Rename to
      row_upd_clust_rec_by_insert_inherit_func() and declare as static. Add
      the debug parameters rec, offsets. When rec is given, assert that the
      off-page columns match those in the inesrt tuple and that the off-page
      columns are owned by the record. Assert that the non-updated off-page
      columns in the insert tuple are owned, and mark them inherited.
      
      row_upd_clust_rec_by_insert_inherit(): A wrapper macro for
      row_upd_clust_rec_by_insert_inherit_func().
      
      row_undo_mod_upd_exist_sec(): Adjust a comment about
      row_upd_clust_rec_by_insert().
      
      rb:508 approved by Jimmy Yang
      20bfda19
    • Marko Mäkelä's avatar
      Bug#58912 InnoDB unnecessarily avoids update-in-place on column prefix indexes · d0c5c8f5
      Marko Mäkelä authored
      row_upd_changes_ord_field_binary(): Do not return TRUE if the update
      vector changes a column that is covered by a prefix index, but does
      not change the column prefix. Add the row_ext_t parameter for
      determining whether the prefixes of externally stored columns match.
      
      dfield_datas_are_binary_equal(): Add the parameter len, for comparing
      column prefixes when len > 0.
      
      innodb.test: Add a test case where the patch of Bug #55284 failed
      without this fix.
      
      rb:537 approved by Jimmy Yang
      d0c5c8f5