An error occurred fetching the project authors.
  1. 08 Feb, 2008 1 commit
  2. 13 Dec, 2007 1 commit
    • unknown's avatar
      Fix broken embedded build (broken by the patch for Bug#12713, first part). · 37a2c459
      unknown authored
      client/mysqltest.c:
        Remove a call to my_message() (server call) in case of a client error.
        It asserts in the embedded build now, since is called after send_ok().
      libmysqld/emb_qcache.cc:
        Use net_send_eof (embedded implementation) in embedded query cache/
        send result to client, since send_eof currently does not
        send anything.
      libmysqld/emb_qcache.h:
        Declare net_send_eof.
      libmysqld/lib_sql.cc:
        Fix the main loop of the embedded server to use the new Diagnostics_area
        API.
      sql/log.cc:
        Silence errors of open_performance_schema_table. This function
        is called for general logging, and it happens after the error
        has been sent to the client, and thus triggers an assert.
      storage/myisam/ha_myisam.cc:
        Remove an old hack that broke repair.test in embedded build:
        unless we clear an error here, the server attempts to send OK after
        ERROR. This currently asserts.
      37a2c459
  3. 06 Dec, 2007 1 commit
    • unknown's avatar
      Bug#31752: check strmake() bounds · 08053848
      unknown authored
      post-fixes: prevent semi-related overflow, additional comments
      
      
      mysys/mf_pack.c:
        extra comments
      sql/log.cc:
        prevent overflow (length parameter of strmake() should
        never become < 0)
      sql/sql_show.cc:
        additional comments
      sql/unireg.cc:
        additional comments
      08053848
  4. 26 Nov, 2007 1 commit
    • unknown's avatar
      Bug#31752: check strmake() bounds · a905ac34
      unknown authored
      strmake() calls are easy to get wrong. Add checks in extra
      debug mode to identify possible exploits.
      
      Remove some dead code.
      
      Remove some off-by-one errors identified with new checks.
      
      
      sql/log.cc:
        fix off-by-one buffer-length argument to prevent stack smashing
      sql/repl_failsafe.cc:
        fix off-by-one buffer-length argument to prevent stack smashing
      sql/set_var.cc:
        fix off-by-one buffer-length argument to prevent stack smashing
        (already approved, backports #31588)
      sql/sql_show.cc:
        misdimensioned buffers: functions further down the callstack
        expect bufsize of FN_REFLEN
      sql/unireg.cc:
        When EXTRA_DEBUG is enabled, strmake() will write funny patterns to
        buffers it operates on to identify possibly overflows. This leads to
        badness in mysql_create_frm(), so we explicitly put any unused bytes
        (back) into a defined state. Not a bug-fix, but part of the strmake()
        bug detector.
      strings/strmake.c:
        strmake() takes maximum string length rather than buffer-length
        (string length + 1 to accomodate \0 terminator) as argument.
        Since this is easy to get wrong, add extra debug code to identify
        off-by-ones so we can prevent stack smashing.
        
        Alternative "BAD_STRING_COMPILER" removed after checking
        with Monty.
      a905ac34
  5. 05 Nov, 2007 1 commit
    • unknown's avatar
      Bug #28597 Replication doesn't start after upgrading to 5.1.18 · b7cdb978
      unknown authored
      Since bug@20166, which replaced the binlog file name generating to base
      on pidfile_name instead of the previous glob_hostname, the binlog file
      name suddenly started to be stored solely in the absolute path format,
      including a case when --log-bin option meant a relative path.
      What's more serious, the path for binlog file can lead unrequestedly 
      to pid-file directory so that after any proper fix for this bug
      there might be similar to the bug report consequences for one who
      upgrades from post-fix-bug@20166-pre-fix-bug@28597 to post-fix-bug@28597.
      
      Fixed with preserving`pidfile_name' (intr.by bug@20166) but stripping
      off its directory part. This restores the original logics of storing
      the names in compatible with --log-bin option format and with the
      requirement for --log-bin ralative path to corresond to the data directory.
      Side effects for this fix:
      
      effective fixing bug@27070, refining its test;
      ensuring no overrun for buff can happen anymore (Bug#31836 
      insufficient space reserved for the suffix of relay log file name);
      bug#31837  --remove_file $MYSQLTEST_VARDIR/tmp/bug14157.sql missed
      in rpl_temporary.test;
      fixes Bug@28603  Invalid log-bin default location;
      
      
      mysql-test/t/rpl_dual_pos_advance.test:
        After correcting the logics of log file name composing workaround for
        
          Bug #27070 server logs are created unrequested and in wrong directory
        
        is removed.
      mysql-test/t/rpl_temporary.test:
        remaining temp file of the test removed
      sql/log.cc:
        stripping off the directory part of `pidfile_name' for binlog name
        generating (which fixes two more bugs on wrong binlog file location);
        ensuring no overrun for buff can happen anymore (Bug #31836 
        insufficient space reserved for the suffix of relay log file name);
      b7cdb978
  6. 30 Oct, 2007 1 commit
    • unknown's avatar
      In ha_delete_table, use a standard mechanism to intercept the error message · 8365a74e
      unknown authored
      and convert it to a warning instead of direct manipulation with the
      thread error stack.
      Fix a bug in handler::print_erorr when a garbled message was
      printed for HA_ERR_NO_SUCH_TABLE.
      This is a pre-requisite patch for the fix for Bug#12713 Error in a stored
      function called from a SELECT doesn't cause ROLLBACK of statem
      
      
      sql/handler.cc:
        Use a standard mechanism to intercept the error message, instead
        of direct manipulation with thread error stack. 
        Fix a bug when for HA_ERR_NO_SUCH_TABLE handler::print_error() would
        print a garbled message.
      sql/log.cc:
        Extend internal error handler interface to carry the message text.
      sql/mysqld.cc:
        Extend internal error handler interface to carry the message text.
      sql/sql_base.cc:
        Extend internal error handler interface to carry the message text.
      sql/sql_class.cc:
        Extend internal error handler interface to carry the message text.
      sql/sql_class.h:
        Extend internal error handler interface to carry the message text.
      sql/sql_error.cc:
        Extend internal error handler interface to carry the message text.
      8365a74e
  7. 19 Oct, 2007 1 commit
    • unknown's avatar
      Rename: query_error -> is_slave_error. · 079ae230
      unknown authored
      Add comments.
      
      
      sql/ha_ndbcluster_binlog.cc:
        query_error -> slave_error
      sql/handler.cc:
        query_error -> slave_error
      sql/log.cc:
        query_error -> slave_error
      sql/log_event.cc:
        query_error -> slave_error
      sql/log_event_old.cc:
        query_error -> slave_error
      sql/mysqld.cc:
        query_error -> slave_error
      sql/protocol.cc:
        query_error -> slave_error
      sql/slave.cc:
        query_error -> slave_error
      sql/sp_head.cc:
        query_error -> slave_error
      sql/sql_class.cc:
        query_error -> slave_error
      sql/sql_class.h:
        Rename: query_error -> is_slave_error, to avoid confusion.
        Add commenta.
      sql/sql_connect.cc:
        Rename: query_error -> is_slave_error, to avoid confusion.
        Originally it was the same code to handle init-connect and init-slave 
        mysqld options. Then init-connect implementation forked off,
        but the one who copy-pasted the code didn't change it to not
        use a replication-specific variable.
      079ae230
  8. 18 Oct, 2007 1 commit
    • unknown's avatar
      Bug#21557 entries in the general query log truncated at 1000 characters. · b9b481ec
      unknown authored
      The general log write function (general_log_print) uses printf style
      arguments which need to be pre-processed, meaning that the all arguments
      are copied to a single buffer and the problem is that the buffer size is
      constant (1022 characters) but queries can be much larger then this.
      
      The solution is to introduce a new log write function that accepts a
      buffer and it's length as arguments. The function is to be used when
      a formatted output is not required, which is the case for almost all
      query write-to-log calls.
      
      This is a incompatible change with respect to the log format of prepared
      statements.
      
      
      mysql-test/r/log_tables.result:
        Add test case result for Bug#21557
      mysql-test/t/log_tables.test:
        Add test case for Bug#21557
      sql/log.cc:
        Introduce the logger function general_log_write which is similar to
        general_log_print but accepts a single buffer and the buffer length.
        The function doesn't perform any formatting and sends the buffer
        directly to the underlying log handlers.
      sql/log.h:
        Introduce the logger function general_log_write.
      sql/log_event.cc:
        Pass the query buffer directly to the logger function, formatting
        is not required on this case.
      sql/mysql_priv.h:
        Prototype for the logger function general_log_write.
      sql/sp_head.cc:
        Pass the query buffer directly to the logger function, formatting
        is not required on this case.
      sql/sql_parse.cc:
        Pass the buffer directly to the logger function when formatting
        is not required.
      sql/sql_prepare.cc:
        Don't log the statement id, it avoids making a extra copy of the query
        and the query is not truncated anymore if it exceeds the limit.
      b9b481ec
  9. 11 Oct, 2007 3 commits
    • unknown's avatar
      Bug#27858 (Failing to log to a log table doesn't log anything to error log) · 3df1613f
      unknown authored
      Before this patch, failures to write to the log tables (mysql.slow_log
      and mysql.general_log) were improperly printed (the time was printed twice),
      or not printed at all.
      
      With this patch, failures to write to the log tables is reported in the
      error log, for all cases of failures.
      
      
      mysql-test/r/log_tables.result:
        Bug#27858 (Failing to log to a log table doesn't log anything to error log)
      mysql-test/t/log_tables.test:
        Bug#27858 (Failing to log to a log table doesn't log anything to error log)
      sql/log.cc:
        Bug#27858 (Failing to log to a log table doesn't log anything to error log)
      3df1613f
    • unknown's avatar
      Doxygenization of comments. · d43c15b0
      unknown authored
      d43c15b0
    • unknown's avatar
      BUG#29549 (Endians: test failures on Solaris): · 06fb8c2d
      unknown authored
      Refactoring code to add parameter to pack() and unpack() functions with
      purpose of indicating if data should be packed in little-endian or
      native order. Using new functions to always pack data for binary log
      in little-endian order. The purpose of this refactoring is to allow
      proper implementation of endian-agnostic pack() and unpack() functions.
      
      Eliminating several versions of virtual pack() and unpack() functions
      in favor for one single virtual function which is overridden in
      subclasses.
      
      Implementing pack() and unpack() functions for some field types that
      packed data in native format regardless of the value of the
      st_table_share::db_low_byte_first flag.
      
      The field types that were packed in native format regardless are:
      Field_real, Field_decimal, Field_tiny, Field_short, Field_medium,
      Field_long, Field_longlong, and Field_blob.
      
      Before the patch, row-based logging wrote the rows incorrectly on
      big-endian machines where the storage engine defined its own
      low_byte_first() to be FALSE on big-endian machines (the default
      is TRUE), while little-endian machines wrote the fields in correct
      order. The only known storage engine that does this is NDB. In effect,
      this means that row-based replication from or to a big-endian
      machine where the table was using NDB as storage engine failed if the
      other engine was either non-NDB or on a little-endian machine.
      
      With this patch, row-based logging is now always done in little-endian
      order, while ORDER BY uses the native order if the storage engine
      defines low_byte_first() to return FALSE for big-endian machines.
      
      In addition, the max_data_length() function available in Field_blob
      was generalized to the entire Field hierarchy to give the maximum
      number of bytes that Field::pack() will write.
      
      
      mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
        Sorting by columns that produces deterministic order.
      mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
        Result change.
      mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
        Result change.
      mysql-test/suite/rpl/r/rpl_row_extraColmaster_ndb.result:
        Result change.
      mysql-test/suite/rpl/t/disabled.def:
        Enabling tests.
      mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test:
        Adding missing sync_slave_with_master causing slave to keep tables
        after shutdown.
      mysql-test/suite/rpl_ndb/t/disabled.def:
        Enabling tests.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt:
        Adding --new option
      mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test:
        Adding have_log_bin.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt:
        Adding --new option
      mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test:
        Adding have_log_bin
      mysql-test/t/partition.test:
        Adding have_archive, since that is used in the test.
      sql/field.cc:
        Eliminating all two-argument pack() and unpack() functions and moving
        functionality into the four-argument version. The four argument version
        is introduced so that it is possible to avoid using the storage engine
        default when writing and reading the packed format (the unpacked format
        still uses the storage engine's default). This is used by row-based
        replication to write the fields in a storage engine- and endian-agnostic
        format.
        
        Packing integral and floating-point numbers in little-endian format
        (if requested).
        
        Using pad_char for the field instead of spaces (0x20) when unpacking.
        
        Adding some Doxygen documentation.
        ---
        Adding max_data_length() to denote the maximum number of bytes that
        pack() will write.
        
        Adding casts to remove warnings for debug printouts.
      sql/field.h:
        Eliminating all virtual pack() and unpack() functions except the four-
        argument version, which now is the function that shall be overridden.
        The two-argument versions are convenience functions, to prevent changes
        to code that uses these.
        
        Adding code to pack integer numbers and floating-point numbers in
        little-endian format, if requested.
        ---
        Adding max_data_length() to denote the maximum number of bytes that
        pack() will write.
      sql/log.cc:
        Removing debug printout causing crash when starting NDB on Solaris.
      sql/log_event.cc:
        Adding missing #ifndef causing compile failure. Adding debug printouts.
      sql/rpl_record.cc:
        Debriding code. Using new pack() and unpack() functions to always pack
        fields little-endian. Adding debug printouts.
        ---
        Using max_data_length() when packing field into row.
        
        Adding casts to debug printouts.
      sql/sql_show.cc:
        Adding code that causes crash on Solaris machines since printf() cannot
        handle NULL values for strings properly.
      mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result:
        New BitKeeper file ``mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result''
      mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result:
        New BitKeeper file ``mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result''
      06fb8c2d
  10. 31 Aug, 2007 1 commit
    • unknown's avatar
      Never access thd->ha_data directly, use getters/setters from the plugin · ee040ef2
      unknown authored
      API instead.
      This is a pre-requisite of the fix for Bug 12713, which changes the
      data type of thd->ha_data from void * to struct Ha_data.
      
      
      include/mysql/plugin.h:
        Provide accessors to thd->ha_data for simple and robust code.
      sql/ha_ndbcluster_binlog.h:
        Use getters/setters of thd->ha_data, instead of direct access.
      sql/handler.cc:
        Use a getter of thd->ha_data instead of direct access.
      sql/log.cc:
        Use getters/setters of thd->ha_data, instead of direct access.
      sql/rpl_utility.h:
        Fix a compilation warning (declaration order must match initialization
        order in constructor).
      storage/federated/ha_federated.cc:
        Use interface accessors to thd->ha_data, instead of direct access.
      ee040ef2
  11. 30 Aug, 2007 1 commit
    • unknown's avatar
      Bug#30712 (open_performance_schema_table() cause an open table leak on · d480d0ec
      unknown authored
      failures)
      
      Fixed open_performance_schema_table() and close_performance_schema_table()
      implementation and callers, to always execute balanced calls to:
        thd->reset_n_backup_open_tables_state(backup);
        thd->restore_backup_open_tables_state(backup);
      
      
      
      sql/log.cc:
        Balanced calls to reset_n_backup_open_tables_state() / restore_backup_open_tables_state()
      sql/sql_base.cc:
        Balanced calls to reset_n_backup_open_tables_state() / restore_backup_open_tables_state()
      d480d0ec
  12. 16 Aug, 2007 1 commit
    • unknown's avatar
      Renaming RELAY_LOG_INFO and st_relay_log_info to follow coding standards · 044a4a3e
      unknown authored
      (and be more friendly to Doxygen by removing unnecessary typedefs).
      
      
      sql/log.cc:
        Renaming struct st_relay_log_info to class Relay_log_info.
      sql/log.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
      sql/log_event.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/log_event.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/log_event_old.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/log_event_old.h:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_mi.h:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_record.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_record.h:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_record_old.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_record_old.h:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_rli.cc:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_rli.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/rpl_utility.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/rpl_utility.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/slave.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/slave.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/sql_binlog.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      sql/sql_class.h:
        Renaming struct st_relay_log_info to class Relay_log_info.
        Renaming RELAY_LOG_INFO to Relay_log_info.
        Removing typedef RELAY_LOG_INFO.
      sql/sql_repl.cc:
        Renaming RELAY_LOG_INFO to Relay_log_info.
      044a4a3e
  13. 14 Aug, 2007 1 commit
    • unknown's avatar
      Fixed problem that Start_log_event_v3::created was not set properly · 3593bb4f
      unknown authored
      (This is becasue 'when' is not anymore set in constructor)
      
      
      client/mysqlbinlog.cc:
        strcpy -> strmov
      sql/log.cc:
        Added flag dont_set_created
      sql/log_event.cc:
        Moved time handling to inline function.
        Moved setting of 'created' to ::write() function.
        Added flag dont_set_created to define if 'created' should be set or not.
        This was needed as 'when' is not set in Log_event() anymore.
        Fixed some missed thd -> thd_arg
      sql/log_event.h:
        Indentation fixed
        Added inline get_time() function.
        Added dont_set_created flag to Start_log_event_v3
      3593bb4f
  14. 13 Aug, 2007 1 commit
    • unknown's avatar
      Fixed a lot of compiler warnings and errors detected by Forte C++ on Solaris · 09a53f28
      unknown authored
      Faster thr_alarm()
      Added 'Opened_files' status variable to track calls to my_open()
      Don't give warnings when running mysql_install_db
      Added option --source-install to mysql_install_db
      
      I had to do the following renames() as used polymorphism didn't work with Forte compiler on 64 bit systems
      index_read()      -> index_read_map()
      index_read_idx()  -> index_read_idx_map()
      index_read_last() -> index_read_last_map()
      
      
      BUILD/compile-solaris-sparc-forte:
        Updated script to current Solaris installations
        Now we compile by default for 64 bits
      client/mysql.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      client/mysql_upgrade.c:
        Fixed compiler warning (on Forte)
      client/mysqladmin.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      client/mysqlcheck.c:
        Fixed compiler warning (on Forte)
      client/mysqldump.c:
        Fixed compiler warning (on Forte)
      client/mysqlslap.c:
        Fixed compiler warning (on Forte)
      client/mysqltest.c:
        Fixed compiler warning (on Forte)
      client/sql_string.cc:
        Avoid compiler warnings when using C function pointers in C++
      configure.in:
        Added detection of mtmalloc and ieeefp.h
      extra/replace.c:
        Fixed compiler warning (on Forte)
      include/m_ctype.h:
        Added some typedef's to make it easy to use C function pointers in C++
      include/my_sys.h:
        Added my_file_total_opened (counter for calls to my_open())
      include/myisam.h:
        Fixed compiler warning (on Forte)
      libmysql/libmysql.c:
        Fixed compiler warning (on Forte) by adding casts and change types
      libmysql/manager.c:
        Fixed compiler warning (on Forte) by adding casts and change types
      mysql-test/r/ctype_cp932_binlog_stm.result:
        Updated positions
        (Needed because we didn't before correctly restore collation_database after running stored procedure
      mysys/my_fopen.c:
        Count number of opened files
      mysys/my_open.c:
        Count number of opened files
      mysys/my_static.c:
        Count number of opened files
      mysys/thr_alarm.c:
        Optimization to do less alarm() and pthread_sigmask() calls.
        Idea is to remember time for next pending alarm and not reschedule a new alarm if it's after the current one.
        Before we only did this if there was other pending alarms.
        We don't have to use pthread_sigmask() in case of 'USE_ONE_SIGNAL_HAND' as the alarm()
        signal will be blocked for the calling thread anyway and no other thread will have the alarm() signal enabled to call process_alarm()
      regex/regcomp.c:
        Fixed compiler warning (on Forte) by adding casts and change types
      scripts/mysql_install_db.sh:
        Added option --source-install to allow one to create a mysql database from the source tree without installing MySQL
        Don't give (unnecessary) warnings
      server-tools/instance-manager/angel.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      server-tools/instance-manager/thread_registry.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/event_db_repository.cc:
        index_read() -> index_read_map()
      sql/event_queue.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/field.cc:
        Fixed compiler warnings about hidden fields
      sql/ha_partition.cc:
        Fixed compiler warnings about hidden fields
        index_read() -> index_read_map()
      sql/ha_partition.h:
        index_read() -> index_read_map()
      sql/handler.cc:
        Added PAGE option to row types (to prepare for future)
        index_read() -> index_read_map()
      sql/handler.h:
        Added ROW_TYPE_PAGE (for future)
        Added flag to signal if table was to be created transactionally
        I had to do the following renames() as used polymorphism didn't work with Forte compiler on 64 bit systems
        index_read()      -> index_read_map()
        index_read_idx()  -> index_read_idx_map()
        index_read_last() -> index_read_last_map()
      sql/item.cc:
        Fixed indentation
        Renamed local variable to avoid hiding class variable
      sql/item_cmpfunc.cc:
        Renamed local variable to avoid hiding class variable
      sql/item_cmpfunc.h:
        Removed not used variable
      sql/item_func.cc:
        Renamed local variable to avoid hiding class variable
      sql/item_strfunc.cc:
        Moved functions from Item_strfunc.cc
      sql/item_strfunc.h:
        Move functions to item_strfunc.cc
        Use C function pointer type to avoid compiler warnings (with Forte)
      sql/item_subselect.cc:
        index_read() -> index_read_map()
      sql/item_xmlfunc.cc:
        Renamed local variable to avoid hiding class variable
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/key.cc:
        Fixed indentation
      sql/log.cc:
        Renamed local variable to avoid hiding class variable
      sql/log_event.cc:
        Removed call to my_time() when creating class instance of Log_event() as this may have static instances.
        (One can't call my_time() before my_init())
        index_read() -> index_read_map()
        Renamed local variable to avoid hiding class variable
      sql/log_event_old.cc:
        Renamed local variable to avoid hiding class variable
      sql/mysql_priv.h:
        Made all create_backup_ctx() declarations identical.
        This lifted up a bug where wrong create_backup_ctx() was called in some cases.
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/mysqld.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
        Fixed indentation
        Don't call end_thr_alarm() when calling unireg_abort() as unireg_abort() already calls end_thr_alarm()
        Added variable 'Opened_files' (number of calls to my_open() or my_fopen())
        Don't print 'loose' warnings when using --bootstrap (to avoid warnings when running mysql_install_db)
        Fixed compiler warnings
      sql/opt_range.cc:
        index_read() -> index_read_map()
      sql/opt_sum.cc:
        index_read() -> index_read_map()
      sql/partition_info.cc:
        Renamed local variable to avoid hiding class variable
      sql/rpl_filter.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/set_var.cc:
        Renamed local variable to avoid hiding class variable
        Added 'process_key_cache_t' type to avoid compiler warning (on Forte)
      sql/set_var.h:
        Added 'process_key_cache_t' type to avoid compiler warning (on Forte)
      sql/sp.cc:
        More debugging
        index_read() -> index_read_map()
      sql/sp_cache.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/sp_head.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
        Moved 'saved_creation_ctx' higher up to be able to free objects allocated by create_backup_ctx()
      sql/sql_acl.cc:
        index_read() -> index_read_map()
      sql/sql_class.cc:
        Renamed local variable to avoid hiding class variable
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/sql_class.h:
        Renamed local variable to avoid hiding class variable
      sql/sql_db.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      sql/sql_delete.cc:
        Renamed local variable to avoid hiding class variable
      sql/sql_handler.cc:
        index_read() -> index_read_map()
      sql/sql_help.cc:
        index_read() -> index_read_map()
      sql/sql_insert.cc:
        index_read() -> index_read_map()
        Renamed local variable to avoid hiding class variable
      sql/sql_lex.cc:
        Renamed local variable to avoid hiding class variable
      sql/sql_plugin.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
        index_read() -> index_read_map()
        Don't give warnings about not used plugins if we are using --warnings=0
      sql/sql_select.cc:
        index_read() -> index_read_map()
      sql-common/client.c:
        Fixed compiler warning (on Forte)
      sql-common/my_time.c:
        Removed never accessed code
        Fixed compiler warning (on Forte)
      sql/sql_servers.cc:
        index_read() -> index_read_map()
      sql/sql_show.cc:
        Added TRANSACTIONAL to SHOW CREATE
        Fixed ROW_TYPE_PAGE
      sql/sql_string.cc:
        Avoid compiler warnings when using C function pointers in C++
      sql/sql_table.cc:
        Set create_info->transactional if we used TRANSACTIONAL=1
      sql/sql_udf.cc:
        index_read() -> index_read_map()
      sql/sql_yacc.yy:
        Added TRANSACTIONAL=0|1 to CREATE (for future)
        Added row type PAGE (was only partionally handled before)
      sql/strfunc.cc:
        Avoid compiler warnings when using C function pointers in C++
      sql/table.cc:
        More DBUG statements
        Declare all create_backup_ctx() functions identically
        Remember if table was created with TRANSACTIONAL flag or not (future safe)
        Renamed local variable to avoid hiding class variable
      sql/table.h:
        Remember if table was created with TRANSACTIONAL=1
      sql/tztime.cc:
        index_read() -> index_read_map()
      sql-common/pack.c:
        Fixed compiler warning (on Forte)
      storage/archive/archive_reader.c:
        Fixed compiler warning (on Forte)
      storage/archive/azio.c:
        Fixed compiler warning (on Forte)
      storage/blackhole/ha_blackhole.cc:
        index_read() -> index_read_map()
      storage/blackhole/ha_blackhole.h:
        index_read() -> index_read_map()
      storage/csv/ha_tina.cc:
        Declare functions sent to C code with extern "C" to avoid compiler warnings (on Forte)
      storage/example/ha_example.cc:
        index_read() -> index_read_map()
      storage/example/ha_example.h:
        index_read() -> index_read_map()
      storage/heap/ha_heap.cc:
        index_read() -> index_read_map()
      storage/heap/ha_heap.h:
        index_read() -> index_read_map()
      storage/heap/hp_test1.c:
        Fixed compiler warning (on Forte)
      storage/heap/hp_test2.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ft_boolean_search.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ft_nlq_search.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ft_parser.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ft_stopwords.c:
        Fixed compiler warning (on Forte)
      storage/myisam/ha_myisam.cc:
        index_read() -> index_read_map()
      storage/myisam/ha_myisam.h:
        index_read() -> index_read_map()
      storage/myisam/mi_check.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_delete.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_dynrec.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_extra.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_key.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_keycache.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_locking.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_log.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_open.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_packrec.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_page.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_rkey.c:
        Added comment
      storage/myisam/mi_search.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_statrec.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_test1.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_test2.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_test3.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_update.c:
        Fixed compiler warning (on Forte)
      storage/myisam/mi_write.c:
        Fixed compiler warning (on Forte)
      storage/myisam/myisamdef.h:
        Fixed that file_read/file_write returns type size_t
        Changed some functions to use uchar * as argument/return value instead of char*
        This fixed some compiler warnings on Forte
      storage/myisam/myisamlog.c:
        Fixed compiler warning (on Forte)
      storage/myisam/myisampack.c:
        Fixed compiler warning (on Forte)
      storage/myisam/rt_test.c:
        Fixed compiler warning (on Forte)
      storage/myisam/sort.c:
        Fixed compiler warning (on Forte) by adding casts or changing variables to uchar*
      storage/myisam/sp_test.c:
        Fixed compiler warning (on Forte) by adding casts or changing variables to uchar*
      storage/myisammrg/ha_myisammrg.cc:
        index_read() -> index_read_map()
      storage/myisammrg/ha_myisammrg.h:
        index_read() -> index_read_map()
      storage/myisammrg/myrg_create.c:
        Fixed compiler warning (on Forte) by adding casts or changing variable types
      storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
        Tdummy -> align  (as in other part of cluster code)
      storage/ndb/src/kernel/vm/DynArr256.cpp:
        Removed not used variable
      storage/ndb/src/ndbapi/Ndb.cpp:
        Removed not used variable
      strings/strtod.c:
        Include ieeefp.h to avoid compiler warning
      tests/bug25714.c:
        Fixed compiler warning
      tests/mysql_client_test.c:
        Remove not used variable
        Fixed indentation
        Removed never reached code
        Fixed compiler warning (on Forte) by adding casts or changing variable types
      vio/viosocket.c:
        Fixed compiler warning (on Forte) by adding casts or changing variable types
      09a53f28
  15. 03 Aug, 2007 1 commit
  16. 02 Aug, 2007 2 commits
    • unknown's avatar
      Simplify logging code a bit (to make code smaller and faster) · 720ea404
      unknown authored
      Moved duplicated code to inline function store_timestamp()
      Save thd->time_zone_used when logging to table as CSV internally cases it to be changed
      Added MYSQL_LOCK_IGNORE_FLUSH to log tables to avoid deadlock in case of flush tables.
      Mark log tables with TIMESTAMP_NO_AUTO_SET to avoid automatic timestamping
      Set TABLE->no_replicate on open
      
      
      
      client/mysqlbinlog.cc:
        Fixed several memory leaks (most in case of error situations)
      mysql-test/r/events_logs_tests.result:
        Made long_query_timeout smaller to ensure next query comes into log
      mysql-test/r/variables.result:
        Make it safe to run test with --log
      mysql-test/t/events_logs_tests.test:
        Made long_query_timeout smaller to ensure next query comes into log
      mysql-test/t/variables.test:
        Make it safe to run test with --log
      sql/field.cc:
        Moved duplicated code to inline function store_timestamp()
      sql/field.h:
        Moved duplicated code to inline function store_timestamp()
      sql/handler.cc:
        Reorder checks in likely order
        Simplify checks if we should do binary logging
        (no_replicate is set once and for all when table is opened)
      sql/log.cc:
        Save thd->time_zone_used as CVS internally cases it to be changed
        Use Field_timestamp->store_timestamp instead of automatic timestamps.
        This gives us correct timestamp even if thd->set_time() is not called (in case
        of connect) and we don't have to store thd->query_start_used anymore.
      sql/sql_base.cc:
        Removed not needed comment
        Moved LINT_INIT() to after declaration
        Renamed temporary variable to avoid compiler warning
        Added MYSQL_LOCK_IGNORE_FLUSH to log tables to avoid deadlock in case of flush tables.
        Mark log tables with TIMESTAMP_NO_AUTO_SET to avoid automatic timestamping
      sql/table.cc:
        Set TABLE->no_replicate on open
      720ea404
    • unknown's avatar
      Don't save & restore time fields from thd when it's not needed. · dcf1fd73
      unknown authored
      Added back setting of 'some_tables_deleted' to not cause deadlocks in mysql_lock_table()
      
      
      BitKeeper/etc/ignore:
        added tests/bug25714
      sql/lock.cc:
        Added comment
      sql/log.cc:
        Don't save & restore time fields from thd when it's not needed.
        Fix that we properly detect if open table failed
      sql/sql_base.cc:
        Added back setting of 'some_tables_deleted' to not cause deadlocks in
        mysql_lock_table()
      dcf1fd73
  17. 31 Jul, 2007 1 commit
  18. 30 Jul, 2007 4 commits
    • unknown's avatar
      handler::ha_write_row_no_binlog() hack removed, · d9037b26
      unknown authored
      existing table->no_replicate code is used instead
      
      
      d9037b26
    • unknown's avatar
      (pushing for Andrei) · 1307d3b8
      unknown authored
      Bug #27417 thd->no_trans_update.stmt lost value inside of SF-exec-stack
        
      Once had been set the flag might later got reset inside of a stored routine 
      execution stack.
      The reason was in that there was no check if a new statement started at time 
      of resetting.
      The artifact affects most of binlogable DML queries. Notice, that multi-update 
      is wrapped up within
        bug@27716 fix, multi-delete bug@29136.
        
      Fixed with saving parent's statement flag of whether the statement modified 
      non-transactional table, and unioning (merging) the value with that was gained 
      in mysql_execute_command.
        
      Resettling thd->no_trans_update members into thd->transaction.`member`;
      Asserting code;
      Effectively the following properties are held.
        
      1. At the end of a substatement thd->transaction.stmt.modified_non_trans_table
         reflects the fact if such a table got modified by the substatement.
         That also respects THD::really_abort_on_warnin() requirements.
      2. Eventually thd->transaction.stmt.modified_non_trans_table will be computed as
         the union of the values of all invoked sub-statements.
         That fixes this bug#27417;
      
      Computing of thd->transaction.all.modified_non_trans_table is refined to base to 
      the stmt's value for all the case including insert .. select statement which 
      before the patch had an extra issue bug@28960.
      Minor issues are covered with mysql_load, mysql_delete, and binloggin of insert in
      to temp_table select. 
        
      The supplied test verifies limitely, mostly asserts. The ultimate testing is defered
      for bug@13270, bug@23333.
      
      
      mysql-test/r/mix_innodb_myisam_binlog.result:
        results changed
      mysql-test/t/mix_innodb_myisam_binlog.test:
        regression test incl the related bug#28960.
      sql/ha_ndbcluster.cc:
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      sql/handler.cc:
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      sql/handler.h:
        new member added
      sql/log.cc:
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      sql/set_var.cc:
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      sql/sp_head.cc:
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
        
        and saving and merging stmt's flag at the end of a substatement.
      sql/sql_class.cc:
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      sql/sql_class.h:
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      sql/sql_delete.cc:
        correcting basic delete incl truncate branch and multi-delete queries to set
        stmt.modified_non_trans_table;
        optimization to set the flag at the end of per-row loop;
        multi-delete still has an extra issue similar to bug#27716 of multi-update 
        - to be address with bug_29136 fix.
      sql/sql_insert.cc:
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      sql/sql_load.cc:
        eliminating a separate issue where the stmt flag was saved and re-stored after 
        write_record that actually could change it and the change would be lost but 
        should remain permanent;
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      sql/sql_parse.cc:
        initialization to transaction.stmt.modified_non_trans_table at the common part 
        of all types of statements processing - mysql_execute_command().
      sql/sql_table.cc:
        moving the reset up to the mysql_execute_command() caller
      sql/sql_update.cc:
        correcting update query case (multi-update part of the issues covered by other 
        bug#27716 fix)
        thd->transaction.{all,stmt}.modified_non_trans_table
        instead of
        thd->no_trans_update.{all,stmt}
      1307d3b8
    • unknown's avatar
      Moved the DBUG_ASSERT from bug 28983 to · b9097abf
      unknown authored
      a place where it would not obstruct
      correct multithreading.
      
      
      b9097abf
    • unknown's avatar
      Slow query log to file now displays queries with microsecond precission · b59217eb
      unknown authored
      --long-query-time is now given in seconds with microseconds as decimals
      --min_examined_row_limit added for slow query log
      long_query_time user variable is now double with 6 decimals
      Added functions to get time in microseconds
      Added faster time() functions for system that has gethrtime()  (Solaris)
      We now do less time() calls.
      Added field->in_read_set() and field->in_write_set() for easier field manipulation by handlers
      set_var.cc and my_getopt() can now handle DOUBLE variables.
      All time() calls changed to my_time()
      my_time() now does retry's if time() call fails.
      Added debug function for stopping in mysql_admin_table() when tables are locked
      Some trivial function and struct variable renames to avoid merge errors.
      Fixed compiler warnings
      Initialization of some time variables on windows moved to my_init() 
      
      
      include/my_getopt.h:
        Added support for double arguments
      include/my_sys.h:
        Fixed wrong type to packfrm()
        Added new my_time functions
      include/mysql/plugin.h:
        Added support for DOUBLE
      libmysql/CMakeLists.txt:
        Added new time functions
      libmysql/Makefile.shared:
        Added new time functions
      mysql-test/r/variables.result:
        Testing of long_query_time
      mysql-test/t/variables.test:
        Testing of long_query_time
      mysys/charset.c:
        Fixed compiler warnings
      mysys/default_modify.c:
        Fixed compiler warnings
      mysys/hash.c:
        Fixed compiler warnings
      mysys/mf_getdate.c:
        Use my_time()
      mysys/mf_iocache2.c:
        Fixed compiler warnings
      mysys/mf_pack.c:
        Fixed compiler warnings
      mysys/mf_path.c:
        Fixed compiler warnings
      mysys/my_append.c:
        Fixed compiler warnings
      mysys/my_compress.c:
        Fixed compiler warnings
      mysys/my_copy.c:
        Fixed compiler warnings
      mysys/my_gethwaddr.c:
        Fixed compiler warnings
      mysys/my_getopt.c:
        Added support for double arguments
      mysys/my_getsystime.c:
        Added functions to get time in microseconds.
        Added faster time() functions for system that has gethrtime()  (Solaris)
        Moved windows initialization code to my_init()
      mysys/my_init.c:
        Added initializing of variables needed for windows time functions
      mysys/my_static.c:
        Added variables needed for windows time functions
      mysys/my_static.h:
        Added variables needed for windows time functions
      mysys/my_thr_init.c:
        Added THR_LOCK_time, used for faster my_time()
      mysys/mysys_priv.h:
        Added THR_LOCK_time, used for faster my_time()
      mysys/thr_alarm.c:
        time() -> my_time()
      sql/event_data_objects.cc:
        end_time() -> set_current_time()
      sql/event_queue.cc:
        end_time() -> set_current_time()
      sql/event_scheduler.cc:
        Fixed compiler warnings
      sql/field.h:
        Added field->in_read_set() and field->in_write_set() for easier field manipulation by handlers
      sql/item.h:
        Added decimal to Item_float(double)
      sql/item_cmpfunc.h:
        Added decimal to Item_float(double)
      sql/item_timefunc.cc:
        time() -> my_time()
      sql/item_xmlfunc.cc:
        Fixed compiler warning
      sql/lock.cc:
        lock_time() -> set_time_after_lock()
      sql/log.cc:
        Timing in slow query log to file is now done in microseconds
        Changed some while() loops to for() loops.
        Fixed indentation
        time() -> my_time()
      sql/log.h:
        Slow query logging is now done based on microseconds
      sql/log_event.cc:
        time() -> my_time()
        Fixed arguments to new Item_float()
      sql/mysql_priv.h:
        Fixed compiler warnings
        Added opt_log_slow_slave_statements
      sql/mysqld.cc:
        Added --log_slow_slave_statements and --min_examined_row_limit
        --long-query-time now takes a double argument with microsecond resolution
        Don't write shutdown message when using --help
        Removed not needed \n
        Thread create time and connect time is now done in microseconds
        time() -> my_time()
        Avoid some time() calls
      sql/net_serv.cc:
        Fixed compiler warnings
      sql/parse_file.cc:
        time() -> my_time()
      sql/set_var.cc:
        Added support for DOUBLE variables
        Added support for variables that are given in seconds with microsecond resolution
      sql/set_var.h:
        Added support for variables that are given in seconds with microsecond resolution
      sql/slave.cc:
        Allow logging of slave queries to slow query log if 'opt_log_slow_slave_statements' is given
        time() -> my_time()
      sql/sql_cache.h:
        Fixed compiler warning()
      sql/sql_class.cc:
        Initialize new THD variables
      sql/sql_class.h:
        long_query_time is now in microseconds
        Added min_examined_row_limit
        Reordered some THD elements for higher efficency
        Added timers in microseconds (connect_utime, thr_create_utime, start_utime and utime_after_lock)
        Start of query is now recorded both in seconds and in microseconds.
        Following renames was made for more clarity and avoid merge problems from earlier versions:
        connect_time -> connect_utime
        thr_create_time -> thr_create_utime
        end_time()  -> set_current_time()
        lock_time() -> set_time_after_lock()
        
        Added THD::start_utime, which is start of query in microseconds from some arbitary time
        Added function THD::current_utime()
        
        Removed safe_time() as retry's are handled in my_time()
      sql/sql_connect.cc:
        User resources are now using microsecond resolution
      sql/sql_insert.cc:
        end_time() -> set_current_time()
      sql-common/client.c:
        time() -> my_time()
      sql/sql_parse.cc:
        Testing if we should print to slow_query_log() is now done with microsecond precission.
        If min_examined_row_limit is given, only log queries to slow query log that has examined more rows than this.
      sql/sql_select.cc:
        Simplify code now that Item_float() takes decimals as argument
      sql/sql_show.cc:
        time() -> my_time()
        Added support for SYS_DOUBLE
      sql/sql_table.cc:
        Added debug function for stopping in mysql_admin_table() when tables are locked
      sql/structs.h:
        intime -> reset_utime
      b59217eb
  19. 27 Jul, 2007 2 commits
    • unknown's avatar
      Code review changes · cc5b3745
      unknown authored
      cc5b3745
    • unknown's avatar
      WL#3984 (Revise locking of mysql.general_log and mysql.slow_log) · 4462578a
      unknown authored
      Bug#25422 (Hang with log tables)
      Bug 17876 (Truncating mysql.slow_log in a SP after using cursor locks the
                thread)
      Bug 23044 (Warnings on flush of a log table)
      Bug 29129 (Resetting general_log while the GLOBAL READ LOCK is set causes
                 a deadlock)
      
      Prior to this fix, the server would hang when performing concurrent
      ALTER TABLE or TRUNCATE TABLE statements against the LOG TABLES,
      which are mysql.general_log and mysql.slow_log.
      
      The root cause traces to the following code:
      in sql_base.cc, open_table()
        if (table->in_use != thd)
        {
          /* wait_for_condition will unlock LOCK_open for us */
          wait_for_condition(thd, &LOCK_open, &COND_refresh);
        }
      The problem with this code is that the current implementation of the
      LOGGER creates 'fake' THD objects, like
      - Log_to_csv_event_handler::general_log_thd
      - Log_to_csv_event_handler::slow_log_thd
      which are not associated to a real thread running in the server,
      so that waiting for these non-existing threads to release table locks
      cause the dead lock.
      
      In general, the design of Log_to_csv_event_handler does not fit into the
      general architecture of the server, so that the concept of general_log_thd
      and slow_log_thd has to be abandoned:
      - this implementation does not work with table locking
      - it will not work with commands like SHOW PROCESSLIST
      - having the log tables always opened does not integrate well with DDL
      operations / FLUSH TABLES / SET GLOBAL READ_ONLY
      
      With this patch, the fundamental design of the LOGGER has been changed to:
      - always open and close a log table when writing a log
      - remove totally the usage of fake THD objects
      - clarify how locking of log tables is implemented in general.
      
      See WL#3984 for details related to the new locking design.
      
      Additional changes (misc bugs exposed and fixed):
      
      1)
      
      mysqldump which would ignore some tables in dump_all_tables_in_db(),
       but forget to ignore the same in dump_all_views_in_db().
      
      2)
      
      mysqldump would also issue an empty "LOCK TABLE" command when all the tables
      to lock are to be ignored (numrows == 0), instead of not issuing the query.
      
      3)
      
      Internal errors handlers could intercept errors but not warnings
      (see sql_error.cc).
      
      4)
      
      Implementing a nested call to open tables, for the performance schema tables,
      exposed an existing bug in remove_table_from_cache(), which would perform:
        in_use->some_tables_deleted=1;
      against another thread, without any consideration about thread locking.
      This call inside remove_table_from_cache() was not required anyway,
      since calling mysql_lock_abort() takes care of aborting -- cleanly -- threads
      that might hold a lock on a table.
      This line (in_use->some_tables_deleted=1) has been removed.
      
      
      sql/handler.cc:
        Moved logic for system / log tables in the SQL layer.
      sql/handler.h:
        Moved logic for system / log tables in the SQL layer.
      sql/lock.cc:
        Revised locking of log tables
      sql/log.cc:
        Major cleanup: changed how log tables are locked / written to.
      sql/log.h:
        Major cleanup: changed how log tables are locked / written to.
      sql/mysql_priv.h:
        performance schema helpers
      sql/slave.cc:
        open_ltable() lock flags
      sql/sp.cc:
        open_ltable() lock flags
      sql/sql_acl.cc:
        open_ltable() lock flags
      sql/sql_class.h:
        performance schema helpers
      sql/sql_delete.cc:
        log tables cleanup in TRUNCATE
      sql/sql_error.cc:
        Internal handlers can also intercept warnings
      sql/sql_insert.cc:
        open_ltable() lock flags
      sql/sql_parse.cc:
        performance schema helpers
      sql/sql_plugin.cc:
        open_ltable() lock flags
      sql/sql_rename.cc:
        log tables cleanup in RENAME
      sql/sql_servers.cc:
        open_ltable() lock flags
      sql/sql_show.cc:
        Move INFORMATION_SCHEMA_NAME to table.cc
      sql/sql_table.cc:
        log tables cleanup (admin operations, ALTER TABLE)
      sql/sql_udf.cc:
        open_ltable() lock flags
      sql/table.cc:
        Implemented TABLE_CATEGORY.
      sql/share/errmsg.txt:
        Changed the wording and name of ER_CANT_READ_LOCK_LOG_TABLE
      sql/table.h:
        Implemented TABLE_CATEGORY.
      storage/csv/ha_tina.cc:
        Moved logic for system / log tables in the SQL layer.
      storage/csv/ha_tina.h:
        Moved logic for system / log tables in the SQL layer.
      storage/myisam/ha_myisam.cc:
        Moved logic for system / log tables in the SQL layer.
      storage/myisam/ha_myisam.h:
        Moved logic for system / log tables in the SQL layer.
      client/mysqldump.c:
        Don't lock tables in the ignore list.
        Don't issue empty LOCK TABLES queries.
      sql/sql_base.cc:
        log tables cleanup
        performance schema helpers
      mysql-test/r/ps.result:
        Adjust test results
      mysql-test/r/show_check.result:
        Adjust test results
      mysql-test/r/status.result:
        Adjust test results
      mysql-test/t/log_state.test:
        Added tests for Bug#29129
      mysql-test/t/ps.test:
        Make the test output deterministic
      mysql-test/t/show_check.test:
        Make the test output deterministic
      mysql-test/r/log_state.result:
        Changed the default location of the log output to LOG_FILE,
        for backward compatibility with MySQL 5.0
        ---
        Adjust test results
      mysql-test/r/log_tables.result:
        cleanup for -ps-protocol
      mysql-test/t/log_tables.test:
        cleanup for -ps-protocol
      sql/set_var.cc:
        Changed the default location of the log output to LOG_FILE,
        for backward compatibility with MySQL 5.0
        ---
        log tables cleanup
      4462578a
  20. 09 Jul, 2007 1 commit
    • unknown's avatar
      Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB · 82ac7891
      unknown authored
      dollin' it up for Guilhem ;) -- test streamlined,
      better comments, faster code, add'l assert.
      
      
      mysql-test/r/binlog.result:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        streamlined test
      mysql-test/t/binlog.test:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        streamlined test
      sql/log.cc:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        comment clarified
      82ac7891
  21. 04 Jul, 2007 1 commit
    • unknown's avatar
      WL#3914: Additonal accessors required to compile InnoDB as a plugin storage engine · bd8b9746
      unknown authored
      Add more accessors to MySQL internals in mysql/plugin.h, for storage
      engine plugins.
      
      Add some accessors specific to the InnoDB storage engine, to allow
      InnoDB to be compiled as a plugin (without MYSQL_SERVER).  InnoDB
      has additional requirements, due to its foreign key support, etc.
      
      
      include/m_string.h:
        Add structure tag to LEX_STRING definition, so that it can be referred
        to by forward declarations.  Allow struct st_mysql_lex_string to be
        defined here, or in mysql/plugin.h.
      include/my_global.h:
        Define INNODB_COMPATIBILITY_HOOKS unconditionally; it brackets
        some definitions needed for the InnoDB storage engine plugin
        which do not belong in our general plugin interface.
      include/mysql/plugin.h:
        Additional accessors for MySQL internals:
         
        - Full definition of MYSQL_LEX_STRING (identical to LEX_STRING from
          m_string.h)
        - Full definition of MYSQL_XID (binary compatible with XID from
          handler.h)
        - mysql_tmpfile(), creates a temporary file in mysqld's tmpdir
        - thd_killed(), to check killed state of connection
        - thd_alloc() and similar allocation functions
        - thd_get_xid(), to get XID of connection's transaction
        - mysql_query_cache_invalidate4, to invalidate a table's query cache entries
      sql/handler.h:
        Use MYSQL_XIDDATASIZE definition from mysql/plugin.h, to avoid redundant
        definitions
      sql/log.cc:
        Add definitions for two InnoDB compatibility hooks:
        - mysql_bin_log_file(), to get log filename
        - mysql_bin_log_file_pos, to get position in file
          
        These are defined only if INNODB_COMPATIBILITY_HOOKS is defined;
        they are needed by the InnoDB plugin, but aren't part of the general
        plugin interface.  They are declared in ha_innodb.h for InnoDB's
        use.
      sql/mysql_priv.h:
        Expose some server internals when INNODB_COMPATIBILITY_HOOKS is
        defined, so that InnoDB can be built as a plugin when MYSQL_SERVER
        is not defined.
          
        Move make_lex_string inside THD class.
      sql/sql_cache.cc:
        Add definiton of mysql_query_cache_invalidate4(), a part of the
        plugin API (mysql/plugin.h).
      sql/sql_class.cc:
        Add definitions for several accessor functions which form part
        of the plugin API (mysql/plugin.h):
        - mysql_tmpfile()
        - thd_alloc() and friends
        - thd_make_lex_string()
        - thd_get_xid()
         
        Add definitons for accessor functions which InnoDB requires,
        but which are not part of the plugin interface:
        - thd_charset()
        - thd_query()
        - thd_slave_thread()
        - thd_non_transactional_update()
        - thd_binlog_format()
         
        Move definition of make_lex_string() from sql_show.cc into THD class
      sql/sql_class.h:
        Remove LEX_STRING_make(), and move make_lex_string() from sql_show.cc inside THD
        class.
      sql/sql_parse.cc:
        Use thd->make_lex_string() instead of thd->LEX_STRING_make()
      sql/sql_show.cc:
        Move make_lex_string() inside THD class
      storage/innobase/handler/ha_innodb.cc:
        Call thd_make_lex_string() instead of make_lex_string().
      bd8b9746
  22. 03 Jul, 2007 1 commit
  23. 02 Jul, 2007 1 commit
    • unknown's avatar
      Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB · 68e1f851
      unknown authored
      minor fixes to appease pushbuild.
      
      
      mysql-test/r/binlog.result:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        make test portable so it will work on servers with
        funny names.
      mysql-test/t/binlog.test:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        make test portable so it will work on servers with
        funny names.
      sql/log.cc:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        change type to uchar * so it's the same as in 5.1.
      68e1f851
  24. 30 Jun, 2007 2 commits
    • unknown's avatar
      Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB · fc17829b
      unknown authored
      previous correction didn't. make sure "tail" is fixed up
      when filling cache several times; rework formulae.
      ---
      Merge sin.intern.azundris.com:/home/tnurnberg/22540/50-22540
      into  sin.intern.azundris.com:/home/tnurnberg/22540/51-22540
      
      
      mysql-test/extra/binlog_tests/binlog.test:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that fix for absolute end_log_pos in binlog also
        works when cache is read several times and headers are
        split across that boundary
        
        show that end_log_pos in SHOW BINLOG EVENTS is correct even in transactions.
        show that SHOW MASTER STATUS returns correct values while in transactions
        (so that mysqldump --master-data will work correctly).
        also remove bdb dependency.
      mysql-test/r/binlog_row_binlog.result:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that fix for absolute end_log_pos in binlog also
        works when cache is read several times and headers are
        split across that boundary
        
        show that end_log_pos in SHOW BINLOG EVENTS is correct even in transactions.
        show that SHOW MASTER STATUS returns correct values while in transactions
        (so that mysqldump --master-data will work correctly).
        also remove bdb dependency.
      mysql-test/r/binlog_stm_binlog.result:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that fix for absolute end_log_pos in binlog also
        works when cache is read several times and headers are
        split across that boundary
        
        show that end_log_pos in SHOW BINLOG EVENTS is correct even in transactions.
        show that SHOW MASTER STATUS returns correct values while in transactions
        (so that mysqldump --master-data will work correctly).
        also remove bdb dependency.
      mysql-test/r/rpl_row_create_table.result:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        expect corrent end_log_pos in binlog
      sql/log.cc:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        previous correction didn't. make sure "tail" is fixed up
        when filling cache several times; rework formulae.
      fc17829b
    • unknown's avatar
      Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB · 59ab2d46
      unknown authored
      previous correction didn't. make sure "tail" is fixed up
      when filling cache several times; rework formulae.
      
      
      mysql-test/r/binlog.result:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that fix for absolute end_log_pos in binlog also
        works when cache is read several times and headers are
        split across that boundary
      mysql-test/t/binlog.test:
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that fix for absolute end_log_pos in binlog also
        works when cache is read several times and headers are
        split across that boundary
      59ab2d46
  25. 27 Jun, 2007 5 commits
    • unknown's avatar
      6e3bed6a
    • unknown's avatar
      5d7082e1
    • unknown's avatar
      56b463a9
    • unknown's avatar
      4fa62524
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint · 3a42a50f
      unknown authored
      into  mysql.com:/home/ram/work/b29079/b29079.5.0
      ---
      Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
      
      fix binlog-writing so that end_log_pos is given correctly even
      within transactions for both SHOW BINLOG and SHOW MASTER STATUS,
      that is as absolute values (from log start) rather than relative
      values (from transaction's start).
      ---
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
      into  sin.intern.azundris.com:/home/tnurnberg/22540/50-22540
      ---
      Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
      
      end_log_pos data within a transaction are relative to
      the start of the transaction rather than absolute.
      we fix those groups in situ before writing the log out.
      
      additional comments and handling for groups with very
      large single events, as suggested by Guilhem.
      ---
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
      into  amd64.(none):/src/bug24732/my50-bug24732
      ---
      Merge maint1.mysql.com:/data/localhome/tsmith/bk/50
      into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/50
      ---
      Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
       
      end_log_pos data within a transaction are relative to
      the start of the transaction rather than absolute.
      we fix those groups in situ before writing the log out.
       
      additional comments and handling for groups with very
      large single events, as suggested by Guilhem.
      ---
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
      into  sin.intern.azundris.com:/home/tnurnberg/22540/50-22540
      ---
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
      into  sin.intern.azundris.com:/home/tnurnberg/22540/51-22540
      ---
      Merge sin.intern.azundris.com:/home/tnurnberg/22540/50-22540
      into  sin.intern.azundris.com:/home/tnurnberg/22540/51-22540
      
      
      mysql-test/r/rpl_truncate_7ndb.result:
        Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        fix output for SHOW BINLOG EVENTS so that end_log_pos is given correctly
        even within transactions. do this by rewriting the commit-buffer in place.
        ---
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        end_log_pos data within a transaction are relative to
        the start of the transaction rather than absolute.
        we fix those groups in situ before writing the log out.
        
        additional comments and handling for groups with very
        large single events, as suggested by Guilhem.
        ---
        Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
         
        end_log_pos data within a transaction are relative to
        the start of the transaction rather than absolute.
        we fix those groups in situ before writing the log out.
         
        additional comments and handling for groups with very
        large single events, as suggested by Guilhem.
        ---
        manual merge
      sql/log.cc:
        Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that output for SHOW BINLOG EVENTS is no correct
        even within transactions.
      3a42a50f
  26. 25 Jun, 2007 3 commits
    • unknown's avatar
      Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB · fa6ae59d
      unknown authored
      end_log_pos data within a transaction are relative to
      the start of the transaction rather than absolute.
      we fix those groups in situ before writing the log out.
      
      additional comments and handling for groups with very
      large single events, as suggested by Guilhem.
      
      
      fa6ae59d
    • unknown's avatar
      Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB · afa96081
      unknown authored
      fix binlog-writing so that end_log_pos is given correctly even
      within transactions for both SHOW BINLOG and SHOW MASTER STATUS,
      that is as absolute values (from log start) rather than relative
      values (from transaction's start).
      ---
      Merge sin.intern.azundris.com:/home/tnurnberg/22540/50-22540
      into  sin.intern.azundris.com:/home/tnurnberg/22540/51-22540
      ---
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
      into  sin.intern.azundris.com:/home/tnurnberg/22540/51-22540
      
      
      mysql-test/extra/binlog_tests/binlog.test:
        Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that end_log_pos in SHOW BINLOG EVENTS is correct even in transactions.
        show that SHOW MASTER STATUS returns correct values while in transactions
        (so that mysqldump --master-data will work correctly).
        also remove bdb dependency.
        
        manual merge
      mysql-test/r/binlog_stm_binlog.result:
        Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that end_log_pos in SHOW BINLOG EVENTS is correct even in transactions.
        show that SHOW MASTER STATUS returns correct values while in transactions
        (so that mysqldump --master-data will work correctly).
        also remove bdb dependency.
        
        manual merge
      sql/log.cc:
        Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        fix output for SHOW BINLOG EVENTS so that end_log_pos is given correctly
        even within transactions. do this by rewriting the commit-buffer in place.
        
        manual merge
      afa96081
    • unknown's avatar
      Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB · 279529c1
      unknown authored
      fix binlog-writing so that end_log_pos is given correctly even
      within transactions for both SHOW BINLOG and SHOW MASTER STATUS,
      that is as absolute values (from log start) rather than relative
      values (from transaction's start).
      ---
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
      into  sin.intern.azundris.com:/home/tnurnberg/22540/50-22540
      
      
      mysql-test/r/binlog.result:
        Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that end_log_pos in SHOW BINLOG EVENTS is correct even in transactions.
        show that SHOW MASTER STATUS returns correct values while in transactions
        (so that mysqldump --master-data will work correctly).
        also remove bdb dependency.
        ---
        manual merge
      mysql-test/t/binlog.test:
        Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        show that end_log_pos in SHOW BINLOG EVENTS is correct even in transactions.
        show that SHOW MASTER STATUS returns correct values while in transactions
        (so that mysqldump --master-data will work correctly).
        also remove bdb dependency.
      sql/log.cc:
        Bug #22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
        
        fix output for SHOW BINLOG EVENTS so that end_log_pos is given correctly
        even within transactions. do this by rewriting the commit-buffer in place.
      279529c1