1. 16 Jul, 2007 8 commits
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · d3c68163
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      sql/sql_parse.cc:
        Manual merge.
      d3c68163
    • unknown's avatar
      Bug#29050 Creation of a legal stored procedure fails if a database is not · de208926
      unknown authored
      selected prior: ensure the fix also works for information_schema
      tables.
      
      
      sql/sql_parse.cc:
        Ensure the fix for Bug#29050 works for information_schema tables.
      de208926
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · 9562c54a
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      mysql-test/r/trigger.result:
        Auto merged
      mysql-test/t/query_cache.test:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      mysql-test/t/trigger.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sp_head.h:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_db.cc:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_trigger.h:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      storage/myisam/ha_myisam.h:
        Auto merged
      mysql-test/include/mix1.inc:
        Manual merge.
      mysql-test/r/information_schema.result:
        Manual merge.
      mysql-test/r/innodb_mysql.result:
        Manual merge.
      mysql-test/r/query_cache.result:
        Manual merge.
      mysql-test/r/sp.result:
        Manual merge.
      mysql-test/t/information_schema.test:
        Manual merge.
      sql/handler.h:
        Manual merge.
      sql/sp.cc:
        Manual merge.
      sql/sp_head.cc:
        Manual merge.
      sql/sql_prepare.cc:
        Manual merge.
      sql/sql_trigger.cc:
        Manual merge.
      sql/sql_yacc.yy:
        Manual merge.
      sql/table.h:
        Manual merge.
      storage/myisam/ha_myisam.cc:
        Manual merge.
      9562c54a
    • unknown's avatar
      Fix ndb_cache* test failures in the -runtime tree. · b6c0fb60
      unknown authored
      Do not try to acquire structure_guard_mutex for the second time
      when invalidating a table from send_result_to_client.
      
      
      sql/sql_cache.cc:
        Do not try to acquire mutex when invalidating a table
        from send_result_to_client().
        A follow up patch for the patch for Bug#21074.
        Reuse code by moving locking-independent invalidation functionality
        into invalidate_table_internal.
      sql/sql_cache.h:
        Add a new declaration.
      b6c0fb60
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1 · 146b0e14
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      client/mysqldump.c:
        Auto merged
      mysql-test/r/show_check.result:
        Auto merged
      mysql-test/t/show_check.test:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_cache.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      mysql-test/r/events_bugs.result:
        Manual merge.
      146b0e14
    • unknown's avatar
      A follow up after the fix for Bug#21074 - fix NDB tests breaking on · 02a832df
      unknown authored
      asserts.
      The patch for Bug#21074 replaces acquisition of the global LOCK_open lock
      with exclusive locks on table names in such operations ad DROP TABLE
      and RENAME TABLE.
      Unfortunately, NDB internally assumes that LOCK_open is acquired and
      tries to release it.
      This dependency should be fixed by a separate (and significant in size)
      patch. For now we just satisfy it - after all, the original
      goal of the patch for Bug#21074 was to move query_cache_invalidate
      outside of the scope of LOCK_open, and we still can do that.
      
      This fixes some failing NDB tests in the runtime tree.
      
      
      sql/sql_rename.cc:
        Move release of LOCK_open after ha_ndbcluster::rename_tables to
        satisfy an assert in ndb_log_schema_op.
      02a832df
    • unknown's avatar
      Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0 · 67e3dbc3
      unknown authored
      into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1
      
      
      67e3dbc3
    • unknown's avatar
      Raise version number after cloning 5.0.46 · 7d3cecca
      unknown authored
      7d3cecca
  2. 15 Jul, 2007 2 commits
    • unknown's avatar
      Add a teste case for Bug#27296 "Assertion in ALTER TABLE SET DEFAULT in · 8023d919
      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)"
      8023d919
    • unknown's avatar
      A fix for Bug#27406 Events: failure only causes a warning. Update test · 7416224c
      unknown authored
      results.
      When executing a CREATE EVENT statement with ON COMPLETION NOT PRESERVE 
      clause (explicit or implicit) and completion date in the past, we do not 
      create the event. Or, put it differently, we create it and then drop 
      immediately.
      A warning is issued in this case, not an error -- we want to load 
      successfully old database dumps, and such dumps may contain events
      that are no longer valid.
      
      Update the warning text to not imply an erroneous condition. 
      
      
      mysql-test/r/events_bugs.result:
        Update the test results (Bug#27406)
      sql/share/errmsg.txt:
        Fix Bug#27406 "Events: failure only causes a warning" -- update the error
        message to not imply that there was a failure.
      7416224c
  3. 14 Jul, 2007 2 commits
  4. 13 Jul, 2007 1 commit
    • unknown's avatar
      A follow up after the patch for Bug#21074 - even though · 31ea7d04
      unknown authored
      we now have exclusive name lock on the table name in mysql_rm_table_part2,
      we still should keep LOCK_open - some storage engines are not
      ready for locking scope change and assume that LOCK_open is kept.
      Still, the binary logging and query cache invalidation calls
      moved out of LOCK_open scope.
      Fixes some of the broken 5.1-runtime tests (tests break on asserts).
      
      
      sql/ha_ndbcluster.cc:
        Do not lock LOCK_open for mysql_rm_table_part2 - it does that
        for us now.
      sql/mysql_priv.h:
        Remove an unused flag.
      sql/sql_class.h:
        Fix an unrelated compiler warning.
      sql/sql_db.cc:
        Adjust to the changed signature.
      sql/sql_table.cc:
        mysql_rm_table_part2: we need to keep LOCK_open while calling
        storage engine functions, even though now 
        we have an exclusive lock on the table name. Some of them assume that it's 
        kept and attempt to unlock it.
      31ea7d04
  5. 12 Jul, 2007 8 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 42a41896
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
      
      
      sql/sql_prepare.cc:
        Auto merged
      42a41896
    • unknown's avatar
      Apply community contributed fix for Bug#13326 SQLPS statement logging is · 0e2bb8dd
      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).
      0e2bb8dd
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 1d40659c
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-26141-final
      
      
      sql/sql_yacc.yy:
        Auto merged
      1d40659c
    • unknown's avatar
      A fix and a test case for Bug#26141 mixing table types in trigger · 9dc3088f
      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).
      9dc3088f
    • unknown's avatar
      Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 5529b14f
      unknown authored
      into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
      
      
      5529b14f
    • unknown's avatar
      Merge adventure.(none):/home/thek/Development/cpp/bug28249/my50-bug28249 · 5ee37c14
      unknown authored
      into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
      
      
      mysql-test/t/query_cache.test:
        Auto merged
      sql/ha_myisam.cc:
        Auto merged
      sql/handler.h:
        Auto merged
      mysql-test/r/query_cache.result:
        SCCS merged
      5ee37c14
    • unknown's avatar
      Bug#28249 Query Cache returns wrong result with concurrent insert / certain lock · 30810f80
      unknown authored
      A race condition in the integration between MyISAM and the query cache code 
      caused the query cache to fail to invalidate itself on concurrently inserted
      data.
      
      This patch fix this problem by using the existing handler interface which, upon
      each statement cache attempt, compare the size of the table as viewed from the 
      cache writing thread and with any snap shot of the global table state. If the
      two sizes are different the global table size is unknown and the current
      statement can't be cached.
      
      
      mysql-test/r/query_cache.result:
        Added test case
      mysql-test/t/query_cache.test:
        Added test case
      sql/ha_myisam.cc:
        - Implemented handler interface for ha_myisam class to dermine if the table
         belonging to the currently processed statement can be cached or not.
      sql/ha_myisam.h:
        - Implemented handler interface for ha_myisam class to dermine if the table
         belonging to the currently processed statement can be cached or not.
      sql/handler.h:
        - Documented register_query_cache_table method in the handler interface.
      30810f80
    • unknown's avatar
      Fix for 5.1 for BUG#10491: Server returns data as charset binary · 6ba23b0a
      unknown authored
      SHOW CREATE TABLE or SELECT FROM I_S.
      
      This is the last patch for this bug, which depends on the big
      CS patch and was pending.
      
      The problem was that SHOW CREATE statements returned original
      queries in the binary character set. That could cause the query
      to be unreadable.
      
      The fix is to use original character_set_client when sending
      the original query to the client. In order to preserve the query
      in mysqldump, 'binary' character set results should be set when
      issuing SHOW CREATE statement. If either source or destination
      character set is 'binary' , no conversion is performed.
      The idea is that since the source character set is no longer
      'binary', we fix the destination character set to still produce
      valid dumps.
      
      
      client/mysqldump.c:
        Switch character_set_results of mysqldump-connection before
        calling SHOW CREATE statements for the objects.
      mysql-test/r/show_check.result:
        Result file.
      mysql-test/t/show_check.test:
        Add test case for the part of BUG#10491.
      sql/events.cc:
        Send original query in the original character set.
      sql/sp_head.cc:
        Send original query in the original character set.
      sql/sql_show.cc:
        Send original query in the original character set.
      6ba23b0a
  6. 11 Jul, 2007 1 commit
    • unknown's avatar
      A fix and a test case for Bug#25859 ALTER DATABASE works w/o parameters. · 0bc3e69f
      unknown authored
      Fix the parser to make the database options not optional.
      
      
      mysql-test/r/information_schema.result:
        Update results (Bug#25859)
      mysql-test/t/information_schema.test:
        Add a test case for Bug#25859 "ALTER DATABASE works w/o parameters"
      sql/sql_yacc.yy:
        Fix Bug#25859 ALTER DATABASE works w/o parameters - require
        parameters in the parser.
      0bc3e69f
  7. 10 Jul, 2007 4 commits
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.1-maint · 22531a8e
      unknown authored
      into  mysql.com:/home/ram/work/mysql-5.1-maint
      
      
      22531a8e
    • unknown's avatar
      Fix for bug #29652: csv.test failure: two changes conflict after merge · 29ca25a6
      unknown authored
      Problem: we don't take into account the length of the data written
      to the temporary data file during update on a CSV table.
      
      Fix: properly calculate the data file length during update.
      
      
      mysql-test/r/csv.result:
        Fix for bug #29652: csv.test failure: two changes conflict after merge
          - test result adjusted.
      storage/csv/ha_tina.cc:
        Fix for bug #29652: csv.test failure: two changes conflict after merge
          - adjust local_saved_data_file_length in case of update as well.
      storage/csv/ha_tina.h:
        Fix for bug #29652: csv.test failure: two changes conflict after merge
          - adjust local_saved_data_file_length in case of update as well.
      29ca25a6
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new-maint · c9e01795
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-maint
      
      
      mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
        Auto merged
      c9e01795
    • unknown's avatar
      Bug #29570 · 20beacc9
      unknown authored
      - correct result files
      
      
      20beacc9
  8. 09 Jul, 2007 14 commits