1. 19 Jul, 2007 4 commits
  2. 18 Jul, 2007 3 commits
    • unknown's avatar
      Fixed bug #28524. · 00bb9cfa
      unknown authored
      For each view the mysqldump utility creates a temporary table
      with the same name and the same columns as the view 
      in order to satisfy views that depend on this view.
      After the creation of all tables, mysqldump drops all
      temporary tables and creates actual views.
      However, --skip-add-drop-table and --compact flags disable
      DROP TABLE statements for those temporary tables. Thus, it was
      impossible to create the views because of existence of the
      temporary tables with the same names.
      
      
      client/mysqldump.c:
        Fixed bug #28524.
        The mysqldump utility has been modified to unconditionally drop
        temporary tables before the creation of views.
      mysql-test/t/mysqldump.test:
        Updated test case for bug #28524 and updated result of previous tests.
      mysql-test/r/mysqldump.result:
        Updated test case for bug #28524 and updated result of previous tests.
      00bb9cfa
    • unknown's avatar
      Bug #29325: create table overwrites .MYD file of other · 640868be
      unknown authored
      table (datadir)
      Set errno when retunring an error in my_create_with_symlink.
      
      
      mysys/my_symlink2.c:
        Bug #29325: set errno when retunring 
        an error in my_create_with_symlink
      640868be
    • unknown's avatar
      Mark deadcode for gcov · 67b1e409
      unknown authored
      67b1e409
  3. 17 Jul, 2007 5 commits
  4. 16 Jul, 2007 5 commits
  5. 15 Jul, 2007 5 commits
    • unknown's avatar
      item_cmpfunc.cc: · d1dd69f5
      unknown authored
        A typo fixed.
      
      
      sql/item_cmpfunc.cc:
        A typo fixed.
      d1dd69f5
    • unknown's avatar
      item_cmpfunc.cc: · cb6cac53
      unknown authored
        Fixed compiler warning.
      
      
      sql/item_cmpfunc.cc:
        Fixed compiler warning.
      cb6cac53
    • unknown's avatar
      item_cmpfunc.cc: · 5f2a94b8
      unknown authored
        A comment changed.
      
      
      sql/item_cmpfunc.cc:
        A comment changed.
      5f2a94b8
    • unknown's avatar
      Extended fix for the bug#29555. · 376073e1
      unknown authored
      The get_time_value function is added. It is used to obtain TIME values both
      from items the can return time as an integer and from items that can return
      time only as a string.
      The Arg_comparator::compare_datetime function now uses pointer to a getter
      function to obtain values to compare. Now this function is also used for
      comparison of TIME values.
      The get_value_func variable is added to the Arg_comparator class.
      It points to a getter function for the DATE/DATETIME/TIME comparator.
      
      
      mysql-test/t/type_time.test:
        Extended test case for the bug#29555.
      mysql-test/r/type_time.result:
        Extended test case for the bug#29555.
      sql/item_cmpfunc.cc:
        Extended fix for the bug#29555.
        The get_time_value function is added. It is used to obtain TIME values both
        from items the can return time as an integer and from items that can return
        time only as a string.
        The Arg_comparator::compare_datetime function now uses pointer to a getter
        function to obtain values to compare. Now this function is also used for
        comparison of TIME values.
      sql/item_cmpfunc.h:
        Extended fix for the bug#29555.
        The get_value_func variable is added to the Arg_comparator class.
        It points to a getter function for the DATE/DATETIME/TIME comparator.
      376073e1
    • unknown's avatar
      Add a teste case for Bug#27296 "Assertion in ALTER TABLE SET DEFAULT in · 1ddd9c17
      unknown authored
      Linux Debug build (possible deadlock)"
      
      The bug is not repeatable any more.
      
      
      mysql-test/r/innodb_mysql.result:
        Update test results (Bug#27296)
      mysql-test/t/innodb_mysql.test:
        Add a teste case for Bug#27296 "Assertion in ALTER TABLE SET DEFAULT in 
        Linux Debug build (possible deadlock)"
      1ddd9c17
  6. 14 Jul, 2007 9 commits
  7. 13 Jul, 2007 4 commits
  8. 12 Jul, 2007 5 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 2fad81ad
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
      
      
      sql/sql_prepare.cc:
        Auto merged
      2fad81ad
    • unknown's avatar
      Apply community contributed fix for Bug#13326 SQLPS statement logging is · a217e997
      unknown authored
      incomplete in 5.0 (and review fixes).
      
      When in 5.0.13 I introduced class Prepared_statement and methods
      ::prepare and ::execute, general logging was left out of this class.
      This was good for stored procedures, since in stored procedures
      we do not log sub-statements, but introduced a regression in case of SQL
      syntax for prepared statements, as previously we would log the actual
      statements to the log, and after the change we would log only
      COM_QUERY text.
      
      Restore the old behavior, but still suppress logging if inside a stored 
      procedure.
      
      Based on a community contributed patch from Vladimir Shebordaev.
      
      No test case since we do not have a mechanism to test output
      of the general log.
      
      
      sql/sql_prepare.cc:
        Apply community contributed fix for Bug#13326 SQLPS statement logging is 
        incomplete in 5.0 (and review fixes).
      a217e997
    • unknown's avatar
      Bug#29739: Incorrect time comparison in BETWEEN. · 793e4442
      unknown authored
      Time values were compared by the BETWEEN function as strings. This led to a
      wrong result in cases when some of arguments are less than 100 hours and other
      are greater.
      
      Now if all 3 arguments of the BETWEEN function are of the TIME type then
      they are compared as integers.
      
      
      mysql-test/t/type_time.test:
        Added a tes tcase for the bug#29739: Incorrect time comparison in BETWEEN.
      mysql-test/r/type_time.result:
        Added a tes tcase for the bug#29739: Incorrect time comparison in BETWEEN.
      sql/item_cmpfunc.cc:
        Bug#29739: Incorrect time comparison in BETWEEN.
        Now if all 3 arguments of the BETWEEN function are of the TIME type then
        they are compared as integers.
      793e4442
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · f68c4164
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-26141-final
      
      
      sql/sql_yacc.yy:
        Auto merged
      f68c4164
    • unknown's avatar
      A fix and a test case for Bug#26141 mixing table types in trigger · cfa185e0
      unknown authored
      causes full table lock on innodb table.
      Also fixes Bug#28502 Triggers that update another innodb table 
      will block on X lock unnecessarily (duplciate).
      Code review fixes.
      
      Both bugs' synopses are misleading: InnoDB table is
      not X locked. The statements, however, cannot proceed concurrently, 
      but this happens due to lock conflicts for tables used in triggers,
      not for the InnoDB table. 
      
      If a user had an InnoDB table, and two triggers, AFTER UPDATE and 
      AFTER INSERT, competing for different resources (e.g. two distinct
      MyISAM tables), then these two triggers would not be able to execute
      concurrently. Moreover, INSERTS/UPDATES of the InnoDB table would
      not be able to run concurrently. 
      The problem had other side-effects (see respective bug reports).
      
      This behavior was a consequence of a shortcoming of the pre-locking
      algorithm, which would not distinguish between different DML operations
      (e.g. INSERT and DELETE) and pre-lock all the tables
      that are used by any trigger defined on the subject table.
      
      The idea of the fix is to extend the pre-locking algorithm to keep track,
      for each table, what DML operation it is used for and not
      load triggers that are known to never be fired.
      
      
      mysql-test/r/trigger-trans.result:
        Update results (Bug#26141)
      mysql-test/r/trigger.result:
        Update results (Bug#28502)
      mysql-test/t/trigger-trans.test:
        Add a test case for Bug#26141 mixing table types in trigger causes 
        full table lock on innodb table.
      mysql-test/t/trigger.test:
        Add a test case for Bug#28502 Triggers that update another innodb 
        table will block echo on X lock unnecessarily. Add more test 
        coverage for triggers.
      sql/item.h:
        enum trg_event_type is needed in table.h
      sql/sp.cc:
        Take into account table_list->trg_event_map when determining
        what tables to pre-lock. 
        
        After this change, if we attempt to fire a 
        trigger for which we had not pre-locked any tables, error
        'Table was not locked with LOCK TABLES' will be printed.
        This, however, should never happen, provided the pre-locking
        algorithm has no programming bugs.
        
        Previously a trigger key in the sroutines hash was based on the name 
        of the table the trigger belongs to. This was possible because we would
        always add to the pre-locking list all the triggers defined for a table when
        handling this table.
        Now the key is based on the name of the trigger, owing
        to the fact that a trigger name must be unique in the database it
        belongs to.
      sql/sp_head.cc:
        Generate sroutines hash key in init_spname(). This is a convenient
        place since there we have all the necessary information and can
        avoid an extra alloc.
        
        Maintain and merge trg_event_map when adding and merging elements
        of the pre-locking list.
      sql/sp_head.h:
        Add ,m_sroutines_key member, used when inserting the sphead for a
        trigger into the cache of routines used by a statement.
        Previously the key was based on the table name the trigger belonged
        to, since for a given table we would add to the sroutines list
        all the triggers defined on it.
      sql/sql_lex.cc:
        Introduce a new lex step: set_trg_event_type_for_tables().
        It is called when we have finished parsing but before opening
        and locking tables. Now this step is used to evaluate for each
        TABLE_LIST instance which INSERT/UPDATE/DELETE operation, if any,
        it is used in.
        In future this method could be extended to aggregate other information
        that is hard to aggregate during parsing.
      sql/sql_lex.h:
        Add declaration for set_trg_event_type_for_tables().
      sql/sql_parse.cc:
        Call set_trg_event_type_for_tables() after MYSQLparse(). Remove tabs.
      sql/sql_prepare.cc:
        Call set_trg_event_type_for_tables() after  MYSQLparse().
      sql/sql_trigger.cc:
        Call set_trg_event_type_for_tables() after MYSQLparse().
      sql/sql_trigger.h:
        Remove an obsolete member.
      sql/sql_view.cc:
        Call set_trg_event_type_for_tables() after MYSQLparse().
      sql/sql_yacc.yy:
        Move assignment of sp_head::m_type before calling sp_head::init_spname(), 
        one is now used inside another.
      sql/table.cc:
        Implement TABLE_LIST::set_trg_event_map() - a method that calculates
        wh triggers may be fired on this table when executing a statement.
      sql/table.h:
        Add missing declarations.
        Move declaration of trg_event_type from item.h (it will be needed for 
        trg_event_map bitmap when we start using Bitmap template instead
        of uint8).
      cfa185e0