1. 16 May, 2007 1 commit
    • unknown's avatar
      BUG#25712 - insert delayed and check table run together report crashed · e1e83a8b
      unknown authored
                  tables
      
      In case system doesn't have native pread/pwrite calls (e.g. Windows)
      and there is CHECK TABLE runs concurrently with another statement that
      reads from a table, the table may be reported as crashed.
      
      This is fixed by locking file descriptor when my_seek is executed on
      MyISAM index file and emulated pread/pwrite may be executed concurrently.
      
      Affects MyISAM tables on platforms that do not have native
      pread/pwrite calls (e.g. Windows).
      
      No deterministic test case for this bug.
      
      
      myisam/mi_check.c:
        Key file descriptor is shared among threads and mixed set of
        my_pread/my_pwrite and my_seek calls is possible. This is not
        a problem on systems that have native pread/pwrite calls.
        
        In case system doesn't have native pread/pwrite calls (e.g. Windows)
        we must ensure that my_pread/my_pwrite are not executed at the same
        time with my_seek. This is done by passing MY_THREADSAFE flag to
        my_seek.
      mysys/my_seek.c:
        On platforms that do not have native pread/pwrite calls (e.g. Windows)
        these calls are emulated as follow: lock fd, lseek, read, unlock fd.
        
        In case file descriptor is shared among threads, where one thread
        executes my_pread and another thread executes my_seek, we may read
        from a wrong position. This may happen because my_seek doesn't lock
        fd and thus may be executed by another thread after emulated pread
        has done lseek and before it has done read.
        
        To fix problem mentioned above we introduce new flag MY_THREADSAFE to
        my_seek, which is meaningful only in case pread/pwrite calls are
        emulated. If this flag is set, lseek operation is performed as follow:
        lock fd, seek, unlock fd.
      e1e83a8b
  2. 28 Apr, 2007 1 commit
    • unknown's avatar
      BUG#27998 - mysqld crashed when executing INSERT DELAYED · 0eaf9739
      unknown authored
                  on a BLACKHOLE table
      
      Using INSERT DELAYED on BLACKHOLE tables could lead to server
      crash.
      
      This happens because delayed thread wants to upgrade a lock,
      but BLACKHOLE tables do not have locks at all.
      
      This patch rejects attempts to use INSERT DELAYED on MERGE
      tables.
      
      
      mysql-test/r/blackhole.result:
        A test case for BUG#27998.
      mysql-test/t/blackhole.test:
        A test case for BUG#27998.
      sql/ha_blackhole.h:
        Removed HA_CAN_INSERT_DELAYED flag from table_flags().
        The insert delayed thread upgrades the lock. Hence it is
        incapable to handle BLACKHOLE tables, which do not have
        locks at all.
      0eaf9739
  3. 26 Apr, 2007 2 commits
  4. 24 Apr, 2007 2 commits
  5. 23 Apr, 2007 2 commits
  6. 20 Apr, 2007 1 commit
    • unknown's avatar
      Bug#27704: incorrect comparison of rows with NULL components · a8f639fc
      unknown authored
      Support for NULL components was incomplete for row comparison,
      fixed.  Added support for abort_on_null at compare_row() like
      in 5.x
      
      
      sql/item_cmpfunc.h:
        Bug#27704: incorrect comparison of rows with NULL components
        Added support for abort_on_null at Item_bool_func2
        like in 5.x
      sql/item_cmpfunc.cc:
        Bug#27704: incorrect comparison of rows with NULL components
        Support for NULL components was incomplete for row comparison,
        fixed. Added support for abort_on_null at compare_row() like
        in 5.x
      mysql-test/t/row.test:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      mysql-test/r/row.result:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      mysql-test/r/subselect.result:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      a8f639fc
  7. 19 Apr, 2007 1 commit
  8. 18 Apr, 2007 1 commit
  9. 17 Apr, 2007 3 commits
    • unknown's avatar
      Merge siva.hindu.god:/home/tsmith/m/bk/41 · 4e387d6c
      unknown authored
      into  siva.hindu.god:/home/tsmith/m/bk/maint/41
      
      
      4e387d6c
    • unknown's avatar
      Merge trift2.:/MySQL/M41/test-help-4.1 · f7fae982
      unknown authored
      into  trift2.:/MySQL/M41/push-4.1
      
      
      f7fae982
    • unknown's avatar
      Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE · 50e15840
      unknown authored
      Added missed DROP privilege check on the original table for RENAME TABLE command.
      
      
      mysql-test/r/grant.result:
        Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE
          - test result.
      mysql-test/t/grant.test:
        Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE
          - test case.
      sql/sql_parse.cc:
        Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE
          - added DROP privilege check on the original table for RENAME TABLE command.
      50e15840
  10. 14 Apr, 2007 1 commit
  11. 12 Apr, 2007 2 commits
    • unknown's avatar
      BUG#25951 - ignore/use index does not work with fulltext · 202f34e2
      unknown authored
      IGNORE/USE/FORCE INDEX hints were honored when choosing FULLTEXT
      index.
      
      With this fix these hints are ignored. For regular indexes we may
      perform table scan instead of index lookup when IGNORE INDEX was
      specified. We cannot do this for FULLTEXT in NLQ mode.
      
      
      mysql-test/r/fulltext.result:
        A test case for bug#25951.
      mysql-test/t/fulltext.test:
        A test case for bug#25951.
      sql/item_func.cc:
        IGNOR/USE/FORCE INDEX hints should not be honored when choosing FULLTEXT
        index.
        
        Use proper bitmap, that is not modified by IGNORE/USE/FORCE INDEX hints.
      202f34e2
    • unknown's avatar
      Merge whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb · 70d753c6
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-opt
      
      
      70d753c6
  12. 11 Apr, 2007 4 commits
  13. 10 Apr, 2007 9 commits
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · cb8f4d40
      unknown authored
      into  mysql.com:/home/kent/bk/tmp3/mysql-4.1-build
      
      
      cb8f4d40
    • unknown's avatar
      BUG#24342 - Incorrect results with query over MERGE table · 6866ca00
      unknown authored
      MERGE engine may return incorrect values when several representations
      of equal keys are present in the index. For example "groß" and "gross"
      or "gross" and "gross " (trailing space), which are considered equal,
      but have different lengths.
      
      The problem was that key length was not recalculated after key lookup.
      
      Only MERGE engine is affected.
      
      
      myisam/mi_rkey.c:
        info->lastkey gets rewritten by mi_search. Later we recalculate found lastkey
        length. This is done to make sure that mi_rnext_same gets true, found (not
        searched) lastkey length. Searched and found key lengths may be different,
        for example in case searched key is "groß" and found is "gross" or in case
        a key has trailing spaces.
        
        Unfortunately we recalculate found lastkey length only for first
        underlying table. To recalculate found key length for non-first underlying
        table we need to know how much key segments were used to create this key.
        
        When mi_rkey is called for first underlying table of a merge table, store
        offset to last used key segment.
        
        Restore last_used_keyseg variable when mi_rkey is called for non-first
        underlying table.
      myisam/myisamdef.h:
        Added last_used_keyseg variable to MI_INFO. It is used by merge engine to calculate
        key length.
      myisammrg/myrg_rkey.c:
        Pass last used key segment returned by first table key read to other
        table key reads.
      mysql-test/r/merge.result:
        A test case for bug#24342.
      mysql-test/t/merge.test:
        A test case for bug#24342.
      6866ca00
    • unknown's avatar
      Update result(which mysterioulsy got lost) · 247c3a81
      unknown authored
      247c3a81
    • unknown's avatar
      da43360e
    • unknown's avatar
      Init dying to 1 just after passing the guard · 3120134a
      unknown authored
      3120134a
    • unknown's avatar
      Add OPT_LOG_DIR · 3f96702b
      unknown authored
      3f96702b
    • unknown's avatar
      Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1 · 76f5c73b
      unknown authored
      into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
      
      
      76f5c73b
    • unknown's avatar
      Add --logdir option ot mysqltest · 5565d329
      unknown authored
      5565d329
    • unknown's avatar
      Merge 192.168.0.4:mysql/mysql-4.1-maint · 8163d5ec
      unknown authored
      into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
      
      
      client/mysqltest.c:
        Auto merged
      mysql-test/r/mysqltest.result:
        Auto merged
      mysql-test/t/mysqltest.test:
        Auto merged
      8163d5ec
  14. 07 Apr, 2007 2 commits
  15. 05 Apr, 2007 3 commits
    • unknown's avatar
      Add "query_sorted" command to mysqltest · e3e600bc
      unknown authored
      Usage:
        query_sorted <query>;
      
      
      client/mysqltest.c:
        Add query_sorted command to mysqltest
      mysql-test/r/mysqltest.result:
        Update result
      mysql-test/t/mysqltest.test:
        Add tests for query_sorted
      e3e600bc
    • unknown's avatar
      Protect against dying twice · 390a0ede
      unknown authored
      Cleanup exit handling
      
      
      390a0ede
    • unknown's avatar
      Deleted reject files accidently checked in · f76ab0c4
      unknown authored
        configure.in.rej
        include/my_global.h.rej
        BUILD/SETUP.sh.rej
        mysys/thr_alarm.c.rej
        include/my_pthread.h.rej
      
      
      BitKeeper/deleted/.del-SETUP.sh.rej:
        Delete: BUILD/SETUP.sh.rej
      BitKeeper/deleted/.del-configure.in.rej:
        Delete: configure.in.rej
      BitKeeper/deleted/.del-my_global.h.rej:
        Delete: include/my_global.h.rej
      BitKeeper/deleted/.del-my_pthread.h.rej:
        Delete: include/my_pthread.h.rej
      BitKeeper/deleted/.del-thr_alarm.c.rej:
        Delete: mysys/thr_alarm.c.rej
      f76ab0c4
  16. 04 Apr, 2007 4 commits
  17. 03 Apr, 2007 1 commit
    • unknown's avatar
      Fixed bug #27532: wrong results with ORDER/GROUP BY queries containing · 0ee34b1c
      unknown authored
      IN/BETWEEN predicates in sorting expressions.
      Wrong results may occur when the select list contains an expression
      with IN/BETWEEN predicate that differs from a sorting expression by
      an additional NOT only.
       
      Added the method Item_func_opt_neg::eq to compare correctly expressions
      containing [NOT] IN/BETWEEN.
      The eq method inherited from the Item_func returns TRUE when comparing
      'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.  
      
      
      mysql-test/r/order_by.result:
        Added a test case for bug #27532.
      mysql-test/t/order_by.test:
        Added a test case for bug #27532.
      sql/item_cmpfunc.cc:
        Fixed bug #27532.
        Added the method Item_func_opt_neg::eq to compare correctly expressions
        containing [NOT] IN/BETWEEN.
        The eq method inherited from the Item_func returns TRUE when comparing
        'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
      sql/item_cmpfunc.h:
        Added the method Item_func_opt_neg::eq to compare correctly expressions
        containing [NOT] IN/BETWEEN.
        The eq method inherited from the Item_func returns TRUE when comparing
        'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
      0ee34b1c