An error occurred fetching the project authors.
  1. 27 May, 2006 1 commit
    • unknown's avatar
      sql_class.cc, mysql_priv.h: · fed043a8
      unknown authored
        Added accessor to handler data.
      
      
      sql/mysql_priv.h:
        Added accessor to handler data.
      sql/sql_class.cc:
        Added accessor to handler data.
      fed043a8
  2. 22 May, 2006 1 commit
    • unknown's avatar
      fix for bug #17619 Scheduler race conditions · f4781a7e
      unknown authored
      - Scheduler is either initialized at server start or never.
        Starting & stopping is now suspending & resuming.
      - The scheduler has clear OO interface
      - Now all calls to the scheduler are synchronous
      - GLOBAL event_scheduler uses thd::sys_var_tmp (see set_var.cc)
      - External API is encapsulated into class Events
      - Includes fixes for all comments of Kostja's review of 19.05.2005
      
      Starting to merge into 5.1-release (5.1.10) and push
      
      
      BitKeeper/etc/ignore:
        Added libmysqld/event_scheduler.cc to the ignore list
      libmysqld/Makefile.am:
        executor -> scheduler
      mysql-test/r/events.result:
        update result
      mysql-test/r/events_bugs.result:
        update result
      mysql-test/r/events_logs_tests.result:
        update result
      mysql-test/r/events_microsec.result:
        update result
      mysql-test/r/events_scheduling.result:
        update result
      mysql-test/r/events_stress.result:
        update result
      mysql-test/t/disabled.def:
        enable these tests
      mysql-test/t/events.test:
        optimize the test a bit for speed, save some seconds runtime
        remove FULL from SHOW EVENTS
        mostly use I_S.EVENTS
      mysql-test/t/events_bugs.test:
        Skip irrelevant for the current design tests - all events are loaded
        on server startup. Change in mysql.event will be visible on next server start.
        Don't use numeric error codes.
      mysql-test/t/events_logs_tests.test:
        optimize the test a bit for speed
      mysql-test/t/events_microsec.test:
         Skip irrelevant for the current design tests - all events are loaded
            on server startup. Change in mysql.event will be visible on next server start.
            Don't use numeric error codes.
      mysql-test/t/events_scheduling.test:
        broader test
      mysql-test/t/events_stress.test:
        Rework the test to the new architecture of suspending/resuming.
        Use less events, no need for thousands, hundreds is still ok.
      sql/Makefile.am:
        executor -> scheduler
      sql/cmakelists.txt:
        executor -> scheduler
      sql/event.cc:
        - remove todo comments
        - remove unneded evex_queue abstraction functions
        - move events_init() and events_shutdown() from event_executor.cc to here
        - export db_create_event
        - remove evex_load_and_compile_event, part of class Event_scheduler
        - integrate the public interface found in event.h and used by sql_parse.cc
          to use the new class Event_scheduler.
      sql/event.h:
        - add COND_finished so if one thread kills a running event it waits on this
        - export callback event_timed_definer_equal, event_timed_identifier_equal(),
          event_timed_name_equal and event_timed_db_equal()
          to be used by Event_scheduler::drop_matching_events()
        - cleanup event.h
        - encapsulated all external interface into class Events
      sql/event_executor.cc:
        make it empty, will delete after that
      sql/event_priv.h:
        - more things in the private header
        - remove event queue abstraction functions. tightly bind to QUEUE
        - export privately db_drop_event, db_find_event, db_create_event()
        - made change_security_context() and restore_security_context() free functions
      sql/event_timed.cc:
        - fix calculation of time when ENDS is set (STARTS is always set)
        - during Event_timed::compile() set the right Security_ctx. Prevents a crash
              during Event_scheduler::load_events_from_db()
        - add Event_timed::kill_thread()
        - implement event_timed_*_equal()
        - made change_security_context() and restore_security_context() free functions.
        - Comments cleanups
      sql/lex.h:
        new word scheduler for SHOW SCHEDULER STATUS (available only debug builds)
      sql/log.cc:
        move these from event_scheduler.cc
      sql/mysql_priv.h:
        refactor kill_one_thread
        export sql_print_message_func and sql_print_message_handlers
      sql/mysqld.cc:
        In close_connections, called by kill_server() skip the main scheduler
        thread and use events_shutdown() for shutting down the scheduler, in the same
        manner it's done for RPL.
        Add a new value to --event-scheduler :
        0 <- No scheduler available
        1 <- Start with scheduler enabled
        2 <- Start with scheduler suspended
      sql/repl_failsafe.cc:
        refactor thd::system_thread to be an enum
      sql/set_var.cc:
        move sys_var_event_executor::update() to set_var.cc
        executor -> scheduler
        use thd::sys_var_tmp
      sql/set_var.h:
        executor -> scheduler
      sql/share/errmsg.txt:
        3 new error messages
      sql/sql_class.cc:
        refactor thd::system_thread to be an enum . more type-safety
      sql/sql_class.h:
        refactor thd::system_thread to be an enum . more type-safety
      sql/sql_db.cc:
        get the error from evex_drop_schema_events
      sql/sql_error.h:
        export warning_level_names
      sql/sql_lex.h:
        new command SHOW SCHEDULER STATUS, available only in debug build and
        for debug purposes.
      sql/sql_parse.cc:
        refactor kill_one_thread() -> does the *dirty* work, and sql_kill
        just the reporting.
        add handler for SQLCOM_SHOW_SCHEDULER_STATUS
      sql/sql_show.cc:
        fix verbosity handling (this will be obsoleted anyway by the fix for 17394).
      sql/sql_yacc.yy:
        remove FULL from SHOW EVENTS
        add SHOW SCHEDULER STATUS in debug builds
      sql/table.cc:
        Fix valgrind warning.
      f4781a7e
  3. 18 May, 2006 1 commit
  4. 15 May, 2006 1 commit
    • unknown's avatar
      BUG#14157: utf8 encoding in binlog without set character_set_client: e.g DROP temporary · b6c7f5f2
      unknown authored
      specific to 5.0 version of the patch is motivated by the fact that a wrapper over 
      MYSQLLOG::write can not help in 5.0 where query's charset is embedded into event instance in the constructor.
      
      
      sql/mysql_priv.h:
        this 4.1 specific code does not help in 5.0
      sql/sql_base.cc:
        No wrapper similar to 4.1's version is done since Query_log_event constructor
        takes care of encodings in 5.0 whereas log::write method does it in 4.1.
        We can introduce an additional constuctor for Query_log_event to pass desired
        (i.e system_character_info) charset different from THD's version.
        But I am delaying this while there are not more bugs similar to this one reported.
      b6c7f5f2
  5. 14 May, 2006 1 commit
  6. 12 May, 2006 1 commit
    • unknown's avatar
      BUG#19188: incorrect temporary table name of DROP query in replication · c212cb25
      unknown authored
        A pattern to generate binlog for DROPped temp table in close_temporary_tables
        was buggy: could not deal with a grave-accent-in-name table.
      
        The fix exploits `append_identifier()' for quoting and duplicating accents.
      
      
      mysql-test/r/rpl_temporary.result:
        results changed
      mysql-test/t/rpl_temporary.test:
        more correct internal table emulation; typo of @@session in bug#17263.
      sql/mysql_priv.h:
        bool is_user_table(TABLE * table) 
        is added to answer wheather temporary table was created explicitly.
      sql/sql_base.cc:
        Utilizing `append_identifier' to quote. `close_temporary_tables' once again recoded
        I hope to become much simplier than previously. No-binlog branch is separated completely the
        rest that adopts String's methods.
      c212cb25
  7. 09 May, 2006 2 commits
    • unknown's avatar
      BUG#14157: utf8 encoding in binlog without set character_set_client e.g DROP temporary · c23c38fa
      unknown authored
      Binlog lacks encoding info about DROPped temporary table.
      
      Idea of the fix is to switch temporary to system_charset_info when a temporary table
      is DROPped for binlog. Since that is the server, that automatically, but not the client, who generates the query
      the binlog should be updated on the server's encoding for the coming DROP.
      The `write_binlog_with_system_charset()' is introduced to replace similar problematic places in the code.
      
      
      mysql-test/r/drop_temp_table.result:
        results changed
      mysql-test/r/mix_innodb_myisam_binlog.result:
        results changed
      mysql-test/r/mysqlbinlog.result:
        results changed
      mysql-test/r/rpl_temporary.result:
        results changed
      mysql-test/t/mysqlbinlog.test:
        Check roll-forward recovery from binlog where there are DROP temporary tables created
        in koi8r.
      mysql-test/t/rpl_temporary.test:
        Check slave digests binlog with DROP temporary tables created in koi8r.
      sql/mysql_priv.h:
        `write_binlog_with_system_charset()' is added to be called when a binlog event
        is created "implicitly" like DROP temporary table is case of closing connection.
      sql/sql_base.cc:
        Idea of the fix is to switch temporary to system_charset_info when a temporary table
        is DROPped for binlog. Since that is the server, not the client, who generates the query
        the binlog should be updated on server's encoding for the coming DROP.
      c23c38fa
    • unknown's avatar
      Fix for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which explicitly · 4f15a043
      unknown authored
      or implicitly uses stored function gives "Table not locked" error'
      
      CREATE TABLE ... SELECT ... statement which was explicitly or implicitly
      (through view) using stored function gave "Table not locked" error.
      
      The actual bug resides in the current locking scheme of CREATE TABLE SELECT
      code, which first opens and locks tables of the SELECT statement itself,
      and then, having SELECT tables locked, creates the .FRM, opens the .FRM and
      acquires lock on it. This scheme opens a possibility for a deadlock, which
      was present and ignored since version 3.23 or earlier. This scheme also
      conflicts with the invariant of the prelocking algorithm -- no table can
      be open and locked while there are tables locked in prelocked mode.
      
      The patch makes an exception for this invariant when doing CREATE TABLE ...
      SELECT, thus extending the possibility of a deadlock to the prelocked mode.
      We can't supply a better fix in 5.0.
      
      
      mysql-test/r/sp.result:
        Added tests for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which
        explicitly or implicitly uses stored function gives "Table not locked" error'
      mysql-test/t/sp.test:
        Added tests for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which
        explicitly or implicitly uses stored function gives "Table not locked" error'
      sql/mysql_priv.h:
        Added flag which can be passed to open_table() routine in order to ignore
        set of locked tables and prelocked mode.
        We don't need declaration of create_table_from_items() any longer as it was
        moved into sql_insert.cc and made static.
      sql/sql_base.cc:
        open_table():
          Added flag which allows open table ignoring set of locked tables and
          prelocked mode.
      sql/sql_insert.cc:
        Moved create_table_from_items() from sql_table.cc to sql_insert.cc as it was
        not used outside of sql_insert.cc and contains code which is specific for
        CREATE TABLE ... SELECT.
        Also now when we are executing CREATE TABLE ... SELECT ... statement which
        SELECT part requires execution in prelocked mode we ignore set of locked
        tables in order to get access to the table we just have created.
        We probably don't want to do this if we are under real LOCK TABLES since
        it will widen window for deadlock too much.
      sql/sql_table.cc:
        Moved create_table_from_items() routine into sql_insert.cc, since it was not
        used anywhere outside of this file and contains logic which is specific for
        CREATE TABLE ... SELECT statement.
      4f15a043
  8. 08 May, 2006 1 commit
    • unknown's avatar
      Bug #1039: tmpdir and datadir not available via @@ system variable syntax · c06972bf
      unknown authored
      Bug #19606: ssl variables are not displayed in show variables
      Bug #19616: log_queries_not_using_indexes  is not listed in show variables
      
        Make basedir, datadir, tmpdir, log_queries_not_using_indexes, ssl_ca,
        ssl_capath, ssl_cert, ssl_cipher, and ssl_key all available both from
        SHOW VARIABLES and as @@variables.
      
        As a side-effect of this change, log_queries_not_using_indexes can
        be changed at runtime (but only globally, not per-connection).
      
      
      include/sslopt-longopts.h:
        Put options in alphabetical order
      include/sslopt-vars.h:
        Allow define of SSL_VARS_NOT_STATIC to prevent variables from not being
        made static.
      mysql-test/r/variables.result:
        Add new results
      mysql-test/t/variables.test:
        Add new regression tests
      sql/mysql_priv.h:
        Add extern for opt_log_queries_not_using_indexes
      sql/mysqld.cc:
        Handle opt_log_queries_not_using_indexes as extern, and define
        SSL_VARS_NO_STATIC so they can be accessed outside of mysqld.cc
      sql/set_var.cc:
        Handle basedir, datadir, tmpdir, log_queries_not_using_indexes, and
        various ssl settings so that they are accessible as server variables
        and listed in SHOW VARIABLES.
      sql/set_var.h:
        Add new sys_var_constr_str_ptr class, for when we have a system variable
        that is only set via the command-line that is a pointer to a string.
      c06972bf
  9. 05 May, 2006 2 commits
    • unknown's avatar
      Don't use row level logging on optimize or repair table. · 3995b06b
      unknown authored
      (Fixes core dump in rpl_failed_optimize.test)
      Ensure we end active transcations if we do an admin command (like optimize, repair etc)
      
      
      mysql-test/extra/rpl_tests/rpl_failed_optimize.test:
        Added extra test + drop of table at end of test
      mysql-test/lib/mtr_report.pl:
        Fail if mysqld asserts or prints stack
      mysql-test/mysql-test-run.sh:
        Fail if mysqld asserts or prints stack
      mysql-test/r/exampledb.result:
        Cleanup of events_tests (as this caused a lot of problems if it didn't work)
      mysql-test/r/innodb.result:
        Extra test to see that we can do an optimize table on an active transaction
      mysql-test/r/rpl_failed_optimize.result:
        Added extra test + drop of table at end of test
      mysql-test/t/exampledb.test:
        Cleanup of events_tests (as this caused a lot of problems if it didn't work)
      mysql-test/t/innodb.test:
        Extra test to see that we can do an optimize table on an active transaction
      sql/handler.cc:
        Don't use row level logging on optimize or repair table.
      sql/log.cc:
        Simplify code (no logic changes)
      sql/mysql_priv.h:
        Added prototype
      sql/sql_base.cc:
        Better name for define
      sql/sql_class.cc:
        Indentation fix
      sql/sql_parse.cc:
        Make end_active_trans() global
      sql/sql_table.cc:
        Ensure we end active transcations if we do an admin command (like optimize, repair etc)
      3995b06b
    • unknown's avatar
      WL#3153 "Split logs". Recommit with post-review fixes · 51e0c518
      unknown authored
      sql/ha_ndbcluster_binlog.cc:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/log.cc:
         Split MYSQL_LOG into base MYSQL_LOG and
         MYSQL_GENERAL_LOG, MYSQL_SLOW_LOG, MYSQL_BIN_LOG
      sql/log.h:
        Split MYSQL_LOG into base MYSQL_LOG and
        MYSQL_GENERAL_LOG, MYSQL_SLOW_LOG, MYSQL_BIN_LOG
      sql/log_event.h:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/mysql_priv.h:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/mysqld.cc:
        fix appropriate comments: use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/rpl_injector.cc:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/rpl_injector.h:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/rpl_rli.h:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/slave.cc:
        Fix appropriate comments: use MYSQL_BIN_LOG instead of MYSQL_LOG.
        Fix usage of new_file(): now we don't need to pass locking-related
        info to the function.
      sql/slave.h:
        Use MYSQL_BIN_LOG instead of MYSQL_LOG in appropriate comments
      51e0c518
  10. 04 May, 2006 1 commit
    • unknown's avatar
      Fixed compiler warnings · 791a5d94
      unknown authored
      Move plugin declarations after system functions have been checked
      (Fixes problem with ndb_config failing becasue SHM is not declared)
      Fixed some memory leaks
      
      
      configure.in:
        Move plugin declarations after system functions have been checked
        (Fixes problem with ndb_config failing becasue SHM is not declared)
      mysql-test/t/disabled.def:
        Disabled ndb_load, as it is in 5.0
        (Fails randomly in binlog_close_connection())
      mysql-test/t/log_tables.test:
        Update error numbers
      mysql-test/t/ndb_config.test:
        Moved test depending on SHM to ndb_config2.test
      mysql-test/t/ndb_partition_error.test:
        Update error numbers
      sql/event_timed.cc:
        Removed not needed line
      sql/ha_berkeley.cc:
        Fixed compiler warning
      sql/ha_heap.cc:
        Fixed compiler warning
      sql/ha_innodb.cc:
        Fixed compiler warning
      sql/ha_myisam.cc:
        Fixed compiler warning
      sql/ha_myisammrg.cc:
        Fixed compiler warning
      sql/ha_ndbcluster.cc:
        Fixed compiler warning
      sql/ha_partition.cc:
        Fixed compiler warning
      sql/mysql_priv.h:
        After merge fix
      sql/mysqld.cc:
        Fixed memory leak in skip_grant.test
      sql/share/errmsg.txt:
        Removed wrong error messages
      sql/sql_lex.cc:
        More debugging
        Faster lex_end()
      sql/sql_partition.cc:
        Fixed memory leak
      sql/sql_view.cc:
        Fixed memory leak
      mysql-test/r/ndb_config2.result:
        New BitKeeper file ``mysql-test/r/ndb_config2.result''
      mysql-test/t/ndb_config2.test:
        New BitKeeper file ``mysql-test/t/ndb_config2.test''
      791a5d94
  11. 03 May, 2006 2 commits
    • unknown's avatar
      Fixed bug #14292: performance degradation for a benchmark query. · 21d61c2b
      unknown authored
      This performance degradation was due to the fact that some
      cost evaluation code added into 4.1 in the function find_best was
      not merged into the code of the function best_access_path added
      together with other code for greedy optimizer.
      Added a parameter to the function print_plan. The parameter contains
      accumulated cost for a given partial join.
       
      The patch does not include a special test case since this performance
      degradation is hard to reproduse with a simple example.
      
      TODO: make the function find_best use the function best_access_path
      in order to remove duplication of code which might result in incomplete
      merges in the future.
      
      
      mysql-test/r/delete.result:
        Fixed bug #14292: performance degradation for a benchmark query.
        Adjusted test results.
      mysql-test/r/subselect.result:
        Fixed bug #14292: performance degradation for a benchmark query.
        Adjusted test results.
      sql/mysql_priv.h:
        Fixed bug #14292: performance degradation for a benchmark query.
        Added a parameter to the function print_plan. The parameter contains
        accumulated cost for a given partial join.
      sql/sql_select.cc:
        Fixed bug #14292: performance degradation for a benchmark query.
        This performance degradation was due to the fact that some
        cost evaluation code added into 4.1 in the function find_best was
        not merged into the code of the function best_access_path added
        together with other code for greedy optimizer.
      sql/sql_test.cc:
        Fixed bug #14292: performance degradation for a benchmark query.
        Added a parameter to the function print_plan. The parameter contains
        accumulated cost for a given partial join.
      21d61c2b
    • unknown's avatar
      Added new show contributors command. · 12ede0e0
      unknown authored
      sql/lex.h:
        Additions for show contributors
      sql/mysql_priv.h:
        Show contributors addition
      sql/sp_head.cc:
        Added for show contributors
      sql/sql_lex.h:
        Adding contributors addition
      sql/sql_parse.cc:
        Execute for add contributors
      sql/sql_show.cc:
        Adding show contributors
      sql/sql_yacc.yy:
        Show contributors additio
      mysql-test/r/contributors.result:
        New BitKeeper file ``mysql-test/r/contributors.result''
      mysql-test/t/contributors.test:
        New BitKeeper file ``mysql-test/t/contributors.test''
      sql/contributors.h:
        New BitKeeper file ``sql/contributors.h''
      12ede0e0
  12. 02 May, 2006 1 commit
    • unknown's avatar
      WL#3148: Modifying sizes of i_s.processlist columns ('time', 'info'). · 91a9b237
      unknown authored
      mysql-test/r/information_schema.result:
        Fixing test case result (after modifying the size of the
         i_s.processlist.info column).
      sql/mysql_priv.h:
        Defined new constant used as the size of the
         i_s.processlist.info column.
      sql/sql_show.cc:
        Modifying sizes of i_s.processlist columns ('time', 'info').
      91a9b237
  13. 21 Apr, 2006 1 commit
  14. 16 Apr, 2006 2 commits
    • unknown's avatar
      WL 2826: Error handling of ALTER TABLE for partitioning · 9a40c5bf
      unknown authored
      After review changes
      
      
      mysql-test/r/ndb_partition_key.result:
        Fixed result file
      sql/ha_ndbcluster.cc:
        Fixed interface to create_handler_files
      sql/ha_ndbcluster.h:
        Fixed interface to create_handler_files
      sql/ha_partition.cc:
        Fixed interface to create_handler_files and made it two-stage for rename
        Removed print_error and now it's used by MySQL Server parts instead
      sql/ha_partition.h:
        Fixed interface to create_handler_files
      sql/mysql_priv.h:
        Fixed error injects
        Externalised Global DDL log mutex
        Some interface changes
      sql/mysqld.cc:
        Moved close of DDL log until all user threads been closed
      sql/sql_base.cc:
        Interface changes
      sql/sql_partition.cc:
        Moved print_error to mysql server part
      sql/sql_table.cc:
        Lots of after review changes
      sql/table.cc:
        Fixed upgrade code
      9a40c5bf
    • unknown's avatar
      Final patch to remove the last of the OS2 support. · cc62983c
      unknown authored
      client/client_priv.h:
        OS2 removal
      client/mysql.cc:
        OS2 removal
      dbug/dbug.c:
        OS2 removal
      include/m_string.h:
        OS2 removal
      include/my_global.h:
        Cleanup for have_mit
      libmysql/dll.c:
        OS2 removal
      libmysql/get_password.c:
        OS2 removal
      libmysql/libmysql.c:
        OS2 removal
      libmysql/manager.c:
        OS2 removal
      sql-common/client.c:
        OS2 removal
      sql/event_executor.cc:
        OS2 removal
      sql/hostname.cc:
        OS2 removal
      sql/log.cc:
        OS2 removal
      sql/log_event.h:
        OS2 removal
      sql/my_lock.c:
        OS2 removal
      sql/mysql_priv.h:
        OS2 removal
      sql/mysqld.cc:
        OS2 removal
      sql/net_serv.cc:
        OS2 removal
      sql/repl_failsafe.cc:
        OS2 removal
      sql/slave.cc:
        OS2 removal
      sql/sql_base.cc:
        OS2 removal
      sql/sql_insert.cc:
        OS2 removal
      sql/sql_load.cc:
        OS2 removal
      sql/sql_parse.cc:
        OS2 removal
      sql/sql_table.cc:
        OS2 removal
      storage/myisam/myisamchk.c:
        OS2 removal
      storage/ndb/src/mgmclient/main.cpp:
        OS2 removal
      storage/ndb/src/mgmsrv/main.cpp:
        OS2 removal
      vio/vio.c:
        OS2 removal
      vio/viosocket.c:
        OS2 removal
      vio/viossl.c:
        OS2 removal
      cc62983c
  15. 12 Apr, 2006 1 commit
    • unknown's avatar
      Bug#18564 Test failure due to test not checking preconditions · 0a8d876d
      unknown authored
       - Add variable "have_dynamic_loading" and use it to check if the udf test should be run.
      
      
      mysql-test/include/have_udf.inc:
        Use variable "have_dynamic_loading" to to determine if there is support for udf's
      mysql-test/r/have_udf.require:
        Use variable "have_dynamic_loading" to to determine if there is support for udf's
      mysql-test/t/disabled.def:
        Remove udf from disabled
      sql/mysql_priv.h:
        Add have_dlopen variable
      sql/mysqld.cc:
        Add have_dlopen variable
      sql/set_var.cc:
        Add have_dlopen variable and name it "have_dynamic_loading" in "SHOW VARIABLES"
      0a8d876d
  16. 07 Apr, 2006 3 commits
    • unknown's avatar
      A fix and a test case for Bug#16365 "Prepared Statements: DoS with · 5b5530da
      unknown authored
      too many open statements". The patch adds a new global variable
      @@max_prepared_stmt_count. This variable limits the total number
      of prepared statements in the server. The default value of
      @@max_prepared_stmt_count is 16382. 16382 small statements
      (a select against 3 tables with GROUP, ORDER and LIMIT) consume 
      100MB of RAM. Once this limit has been reached, the server will 
      refuse to prepare a new statement and return ER_UNKNOWN_ERROR 
      (unfortunately, we can't add new errors to 4.1 without breaking 5.0). The limit is changeable after startup
      and can accept any value from 0 to 1 million. In case
      the new value of the limit is less than the current
      statement count, no new statements can be added, while the old
      still can be used. Additionally, the current count of prepared 
      statements is now available through a global read-only variable 
      @@prepared_stmt_count.
      
      
      mysql-test/r/ps.result:
        Test results fixed (a test case for Bug#16365)
      mysql-test/t/ps.test:
        A test case for Bug#16365 "Prepared Statements: DoS with too many 
        open statements". Also fix statement leaks in other tests.
      sql/mysql_priv.h:
        Add declarations for new global variables.
      sql/mysqld.cc:
        Add definitions of max_prepared_stmt_count, prepared_stmt_count.
      sql/set_var.cc:
        Implement support for @@prepared_stmt_count and 
        @@max_prepared_stmt_count. Currently these variables are queried
        without acquiring LOCK_prepared_stmt_count due to limitations of
        the set_var/sys_var class design. Updates are, however, protected 
        with a lock.
      sql/set_var.h:
        New declarations to add support for @@max_prepared_stmt_count.
        Implement a new class, where the lock to be used when updating
        a variable is a parameter.
      sql/sql_class.cc:
        Add accounting of the total number of prepared statements in the
        server to the methods of Statement_map.
      sql/sql_class.h:
        Add accounting of the total number of prepared statements in the
        server to the methods of Statement_map.
      sql/sql_prepare.cc:
        Statement_map::insert will now send a message in case of an
        error.
      5b5530da
    • unknown's avatar
      Bug#15933: max_used_connections is wrong after FLUSH STATUS if connections are cached · cab73a60
      unknown authored
      After FLUSH STATUS max_used_connections was reset to 0, and haven't
      been updated while cached threads were reused, until the moment a new
      thread was created.
      
      The first suggested fix from original bug report was implemented:
      
        a) On flushing the status, set max_used_connections to
        threads_connected, not to 0.
      
        b) Check if it is necessary to increment max_used_connections when
        taking a thread from the cache as well as when creating new threads
      
      
      mysql-test/r/status.result:
        Add result for bug#15933.
      mysql-test/t/status.test:
        Add test case for bug#15933.
        Fixed typo.
      sql/mysql_priv.h:
        Add declaration of refresh_status(), which is now external.
      sql/mysqld.cc:
        Remove start_cached_thread() (code moved directly into create_new_thread()).
        Add comment for create_new_thread ().
        In create_new_thread() update max_used_connections when creating new thread
        and when reusing the cached one.
        Move refresh_status() from sql/sql_parse.cc here, on refresh set
        max_used_connections to the current number of connections.
      sql/sql_parse.cc:
        refresh_status() moved to sql/mysqld.cc.
      cab73a60
    • unknown's avatar
      fix for bug #17494 (The algorithm for calculating execution times is not fully correct) · 7c596993
      unknown authored
      This also should fix 17493 and 17346, and probably 16397 (not tested).
      WL#1034 (Internal CRON)
      (post-review commit)
      
      
      mysql-test/r/events.result:
        update result
      mysql-test/t/events.test:
        update test
      sql/event.cc:
        seems we get a crash if we compile it this way. better let the worker thread do it,
        this increases the stability.
      sql/event_executor.cc:
        kick in more often
      sql/event_timed.cc:
        - don't NULLify last_executed
        - implement (fix) better get_next_time() which does not use last_executed as basis
          but STARTS. STARTS is used as basis and the next point of time which is before ENDS,
          if set, is being found. The point > now and (point-starts) % interval_expression == 0.
      sql/item_timefunc.cc:
        move calc_time_diff to time.cc as it can be reused in other parts of the 
        server code (see event_timed.cc)
      sql/mysql_priv.h:
        export calc_time_diff() moved to time.cc from item_timefunc.cc
      sql/sql_show.cc:
        - fix presenting of LAST_EXECUTED
        - cleanup a bit
      sql/time.cc:
        - move calc_time_diff() from item_timefunc.cc to here
      7c596993
  17. 03 Apr, 2006 1 commit
  18. 01 Apr, 2006 1 commit
  19. 29 Mar, 2006 2 commits
    • unknown's avatar
      Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries · b2531546
      unknown authored
      The GROUP_CONCAT uses its own temporary table. When ROLLUP is present
      it creates the second copy of Item_func_group_concat. This copy receives the
      same list of arguments that original group_concat does. When the copy is
      set up the result_fields of functions from the argument list are reset to the
      temporary table of this copy.
      As a result of this action data from functions flow directly to the ROLLUP copy
      and the original group_concat functions shows wrong result.
      Since queries with COUNT(DISTINCT ...) use temporary tables to store
      the results the COUNT function they are also affected by this bug.
      
      The idea of the fix is to copy content of the result_field for the function
      under GROUP_CONCAT/COUNT from  the first temporary table to the second one,
      rather than setting result_field to point to the second temporary table.
      To achieve this goal force_copy_fields flag is added to Item_func_group_concat
      and Item_sum_count_distinct classes. This flag is initialized to 0 and set to 1
      into the make_unique() member function of both classes.
      To the TMP_TABLE_PARAM structure is modified to include the similar flag as
      well.
      The create_tmp_table() function passes that flag to create_tmp_field().
      When the flag is set the create_tmp_field() function will set result_field
      as a source field and will not reset that result field to newly created 
      field for Item_func_result_field and its descendants. Due to this there
      will be created copy func to copy data from old result_field to newly 
      created field.
      
      
      mysql-test/t/func_gconcat.test:
        Added test for bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
      mysql-test/r/func_gconcat.result:
        Added test for bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
      sql/sql_table.cc:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added 0 as a last parameter to create_tmp_field()  to force old behaviour.
      sql/sql_select.cc:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        
        Added the flag 'make_copy_field' to create_tmp_field(), so that for Item_result_field descendants create_tmp_field() sets the item's result field as a source field and deny resetting that result field to a new value.
      sql/sql_class.h:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added the flag 'force_copy_fields' to the structure TMP_TABLE_PARAM in order to make create_tmp_field() force the creation of 'copy_field' objects.
      sql/mysql_priv.h:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added the bool parameter 'make_copy_field' to create_tmp_field().
      sql/item_sum.cc:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added initialization of the force_copy_fields flag and passing it to create_tmp_table() through TMP_TBLE_PARAM in the Item_func_group_concat and Item_sum_count_distinct member functions.
      sql/item_sum.h:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added the flag 'force_copy_fields' to the Item_func_group_concat and Item_sum_count_distinct classes.
      b2531546
    • unknown's avatar
      Fixed compiler and valgrind warnings · 59eaf292
      unknown authored
      Added missing DBUG_xxx_RETURN statements
      Fixed some usage of not initialized variables (as found by valgrind)
      Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
      This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
      This will allow Tomas to continue with his work to use namelocks to syncronize things.
      
      Note: valgrind still produces a lot of warnings about using not initialized code and shows memory loss errors when running the ndb tests
      
      
      BitKeeper/etc/ignore:
        added mysql-test/r/*.log
      client/mysqltest.c:
        Change type of variables to get rid of compiler warnings
        More debugging
        Fix memory leak
      mysql-test/mysql-test-run.sh:
        Collect warnings about missing DBUG_RETURN statements
      mysql-test/r/lock_multi.result:
        Add test of new code
      mysql-test/r/ndb_condition_pushdown.result:
        Drop used tables before test
      mysql-test/t/lock_multi.test:
        Add test of new code
      mysql-test/t/ndb_condition_pushdown.test:
        Drop used tables before test
      mysql-test/valgrind.supp:
        Ignore 'safe' warnings from libz (when used with archive)
      sql/event.cc:
        More comments
        Simplify code
        Fixed memory leak found by valgrind
      sql/ha_archive.cc:
        Remove compiler warnings (Wrong handlerton structure and signed/unsigned comparison)
      sql/ha_berkeley.cc:
        Fixed compiler warning
      sql/ha_blackhole.cc:
        Fixed compiler warning
      sql/ha_federated.cc:
        Fixed compiler warning
      sql/ha_heap.cc:
        Fixed compiler warning
      sql/ha_myisam.cc:
        Fixed compiler warning
      sql/ha_myisammrg.cc:
        Fixed compiler warning
      sql/ha_ndbcluster.cc:
        Fixed compiler warnings
      sql/ha_partition.cc:
        Fixed compiler warning
        Fixed error noticed by valgrind in ha_partition::rnd_init()
      sql/handler.cc:
        Fixed compiler warning
      sql/handler.h:
        Fixed compiler warning
      sql/item.cc:
        Fixed compiler warning
      sql/item_xmlfunc.cc:
        Fixed warning from valgrind when calling memcpy with wrong address
      sql/lock.cc:
        More debugging
      sql/log.cc:
        Fixed compiler warning
        Indentation fixes
      sql/log.h:
        Fixed compiler warning
      sql/mysql_priv.h:
        Changed prototype for 'drop_locked_tables'
      sql/opt_range.cc:
        Indentation fix
      sql/password.c:
        Removed compiler warnings
      sql/set_var.cc:
        Fixed compiler warning
      sql/slave.cc:
        Fixed compiler warning
      sql/sp_head.cc:
        Fixed compiler warning
      sql/sql_acl.cc:
        Fixed compiler warning
      sql/sql_analyse.cc:
        Added missing DBUG_RETURN statements
      sql/sql_base.cc:
        Removed de-reference of not initialized pointer
        More comments
        drop_locked_tables() changed to not delete tables used for name locking
        Fixed compiler warnings
      sql/sql_delete.cc:
        Fixed usage of not initialized variable
        (deleted could be referenced in some not common error conditions)
      sql/sql_parse.cc:
        Added missing DBUG_VOID_RETURN
        Simplify code
      sql/sql_partition.cc:
        Fixed usage of wrong variable (noticed by valgrind)
      sql/sql_plugin.cc:
        Removed compiler warning
      sql/sql_show.cc:
        Removed compiler warning
      sql/sql_table.cc:
        Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
        This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
        This will allow Tomas to continue with his work to use namelocks to syncronize things.
        
        Fixed wrong test of 'table_type' (path_length could otherwise be accessed uninitialized)
        
        Remove compile warnings about not initialized variables.
      sql/sql_yacc.yy:
        Ensure that no_write_to_binlog is properly initialized
        (Was accessed uninitialized by partition code)
      sql/table.cc:
        Removed valgrind warnings (not fatal)
        Removed compiler warnings
      sql/tztime.cc:
        Removed valgrind warning
      storage/ndb/include/ndbapi/NdbIndexStat.hpp:
        Removed compiler warning
      59eaf292
  20. 24 Mar, 2006 1 commit
    • unknown's avatar
      WL 2826: Error handling of ALTER TABLE for partitioning · 3928d962
      unknown authored
      Loads of review comments fixed
      inactivate => deactivate
      table log => ddl log
      Commented on Error Inject Module added
      Put various #defines into enums
      Fixed abort_and_upgrade_lock, removed unnecessary parameter
      Fixed mysqlish method intro's
      Fixed warning statements
      5.1.7 was released still with partition states in clear text
      
      Fixed io_size bug
      Fixed bug in open that TRUNCATED before reading :)
      file_entry => file_entry_buf
      Don't open DDL log until first write call to DDL log
      handler_type => handler_name
      no => num
      
      
      
      sql/ha_partition.cc:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
      sql/mysql_priv.h:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
      sql/mysqld.cc:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
      sql/partition_element.h:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
      sql/partition_info.h:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
      sql/share/errmsg.txt:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
      sql/sql_base.cc:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
      sql/sql_partition.cc:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
        Fixed mysqlish method intro's
        Fixed warning statements
      sql/sql_table.cc:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
        Fixed mysqlish method intro's
        Fixed warning statements
        Fixed io_size bug
        Fixed bug in open that TRUNCATED before reading :)
        file_entry => file_entry_buf
        Don't open DDL log until first write call to DDL log
        handler_type => handler_name
        no => num
      sql/table.cc:
        Loads of review comments fixed
        inactivate => deactivate
        table log => ddl log
        Commented on Error Inject Module added
        Put various #defines into enums
        Fixed abort_and_upgrade_lock, removed unnecessary parameter
        Fixed mysqlish method intro's
        Fixed warning statements
        5.1.7 was released still with partition states in clear text
        
        Fixed io_size bug
        Fixed bug in open that TRUNCATED before reading :)
        file_entry => file_entry_buf
        Don't open DDL log until first write call to DDL log
        handler_type => handler_name
        no => num
      3928d962
  21. 21 Mar, 2006 2 commits
    • unknown's avatar
      BUG#18293 (Values in stored procedures written to binlog unescaped): · 83ba974a
      unknown authored
      Generating character set-independent quoting of strings for the
      binary log when executing statements from inside stored procedure.
      
      
      mysql-test/r/ctype_cp932_binlog.result:
        Result change
      mysql-test/t/ctype_cp932_binlog.test:
        Adding check that string literals are written correctly for multi-byte
        character sets.
      sql/item.cc:
        Cutting out character set-independent string escaping code and putting it
        in a separate function.
      sql/log_event.cc:
        Adding characters set-independent code to separate function.
      sql/mysql_priv.h:
        Adding new function.
      sql/sp_head.cc:
        Escaping string value representing a string item.
      83ba974a
    • unknown's avatar
      Bug#11835 CREATE FUNCTION crashes server · ae7974b1
      unknown authored
       - Update for 5.1
       - Add "have_dlopen"
       - Remove requirement to load udf's only in "opt_plugin_dir" 
      
      
      include/my_global.h:
        Remove duplicate defines
      mysql-test/include/have_udf.inc:
        Use "have_dlopen" to check if we "have udf"
      mysql-test/r/have_udf.require:
        Use "have_dlopen" to check if we "have udf"
      mysql-test/r/udf.result:
        Update for new error message "function"->"symbol"
      sql/item_func.cc:
        Remove "evil" dbug printour that checks args[0] even if arg_count is 0
      sql/mysql_priv.h:
        Add "have_dlopen"
      sql/mysqld.cc:
        Add "have_dlopen"
        Move HAVE_DLOPEN defined to only surround "udf_free" and "udf_init"
      sql/set_var.cc:
        Add "have_dlopen"
      sql/sql_plugin.cc:
        Surround 'dlclose' with HAVE_DLOPEN
      sql/sql_udf.cc:
        Remove the requirement to load udf's only from "opt_plugin_dir".
        Fix spelling error
      ae7974b1
  22. 16 Mar, 2006 1 commit
    • unknown's avatar
      Bug#14575 · 78e37021
      unknown authored
        ¨MySQL server crashes if you try to access to InnoDB table¨
        crash caused by schizophrenic mysqld - 2 memory locations for logically same function
        with conflicting values.
        Fixed by backporting from 5.1 changes to have_xyz_db declarations.
      
      
      sql/mysql_priv.h:
        Backport have_xyz_db changes from 5.1
      sql/mysqld.cc:
        Backport have_xyz_db changes from 5.1
      78e37021
  23. 10 Mar, 2006 2 commits
    • unknown's avatar
      Cleanup SSL implementation · b2d5243e
      unknown authored
      Remove duplicate code
      Merge common functions
      Enforce MySQL coding standard
      
      
      include/violite.h:
        Cleanup SSL implementation
      sql-common/client.c:
        Cleanup SSL implementation
      sql/mysql_priv.h:
        Cleanup SSL implementation
      sql/mysqld.cc:
        Cleanup SSL implementation
      sql/sql_acl.cc:
        Cleanup SSL implementation
      vio/vio.c:
        Cleanup SSL implementation
      vio/vio_priv.h:
        Cleanup SSL implementation
      vio/viossl.c:
        Cleanup SSL implementation
      vio/viosslfactories.c:
        Cleanup SSL implementation
      b2d5243e
    • unknown's avatar
      This patch does 1) fix my build breakage 2) Complete the removal of all... · 01d69c4b
      unknown authored
      This patch does 1) fix my build breakage  2) Complete the removal of all symbols which could clash with another parser. 
      
      
      sql/mysql_priv.h:
        Porting update
      sql/mysqld.cc:
        Porting update
      sql/sp.cc:
        Porting update
      sql/sql_lex.cc:
        Porting update
      sql/sql_lex.h:
        Porting update
      sql/sql_parse.cc:
        Porting update
      sql/sql_prepare.cc:
        Portinng update
      sql/sql_trigger.cc:
        Porting update
      sql/sql_view.cc:
        Porting update
      01d69c4b
  24. 04 Mar, 2006 1 commit
    • unknown's avatar
      Remove unused thd->options's flag -- OPTION_UPDATE_LOG · 422d11c2
      unknown authored
      The update log itself was removed back in 5.0. Recommit
      with post-review fixes.
      
      
      sql/log.cc:
        OPTION_UPDATE_LOG was set in all threads but replication ones.
        So, it seems that the check filtered out slow log records from
        replication threads. Now we do it with explicit check.
      sql/mysql_priv.h:
        remove unused define
      sql/mysqld.cc:
        Do not set OPTION_UPDATE_LOG. It is not used anymore.
      sql/set_var.cc:
        We never check for OPTION_UPDATE_LOG. So, we should not bother setting it.
      422d11c2
  25. 02 Mar, 2006 1 commit
    • unknown's avatar
      Fix for BUG#16777: Can not create trigger nor view w/o definer · fad27ebf
      unknown authored
      if --skip-grant-tables specified.
      
      The problem is that there is a check that prevents creating a definer
      with empty host name.
      
      In --skip-grant-tables mode this check prevents the user from creating a
      trigger/view without explicitly specifying its definer. This happens, because
      in --skip-grant-tables mode CURRENT_USER is ''@''. According to Sanja this
      check was implemented intentionally.
      
      However, according to the MySQL manual it is possible to specify empty host
      name (as well as empty user name). Moreover, the behaviour for stored routines
      is different in this aspect -- we allow them to be created with implicit
      definer.
      
      Based on this, we believe it is OK to change the behaviour for views to be
      similar with the behaviour for stored routines.
      
      
      mysql-test/r/skip_grants.result:
        Added a test case for BUG#16777.
      mysql-test/t/skip_grants.test:
        Added a test case for BUG#16777.
      sql/mysql_priv.h:
        Do not check that strlen(host) > 0 in get_default_definer().
      sql/sql_parse.cc:
        Do not check that strlen(host) > 0 in get_default_definer().
      sql/sql_view.cc:
        Do not check that strlen(host) > 0 in get_default_definer().
      fad27ebf
  26. 01 Mar, 2006 2 commits
    • unknown's avatar
      for every deprecated feature say when it will be removed. · a28368f2
      unknown authored
      restore CREATE TABLE ... TYPE=engine until 5.2
      
      
      a28368f2
    • unknown's avatar
      Fix for BUG#16266: Definer is not fully qualified error during replication. · a44a924a
      unknown authored
      The idea of the fix is to extend support of non-SUID triggers for backward
      compatibility. Formerly non-SUID triggers were appeared when "new" server
      is being started against "old" database. Now, they are also created when
      "new" slave receives updates from "old" master.
      
      
      mysql-test/r/rpl_trigger.result:
        Updated the result file with the results of the test for BUG#16266.
      mysql-test/t/rpl_trigger.test:
        Added the test case for BUG#16266.
      sql/mysql_priv.h:
        Added an utility operation to be used from sql_yacc.yy.
      sql/sql_parse.cc:
        Add a utility operation to be used from sql_yacc.yy.
      sql/sql_trigger.cc:
        Extend support of non-SUID triggers.
      sql/sql_view.cc:
        Initialize LEX::definer if DEFINER-clause is missing.
      sql/sql_yacc.yy:
        Extended support of non-SUID triggers.
      mysql-test/std_data/bug16266.000001:
        A new binlog file for testing a patch for BUG#16266.
      a44a924a
  27. 25 Feb, 2006 2 commits
    • unknown's avatar
      WL#2977 and WL#2712 global and session-level variable to set the binlog format (row/statement), · 7cac0ddf
      unknown authored
      and new binlog format called "mixed" (which is statement-based except if only row-based is correct,
      in this cset it means if UDF or UUID is used; more cases could be added in later 5.1 release):
      SET GLOBAL|SESSION BINLOG_FORMAT=row|statement|mixed|default;
      the global default is statement unless cluster is enabled (then it's row) as in 5.1-alpha.
      It's not possible to use SET on this variable if a session is currently in row-based mode and has open temporary tables (because CREATE
      TEMPORARY TABLE was not binlogged so temp table is not known on slave),  or if NDB is enabled (because
      NDB does not support such change on-the-fly, though it will later), of if in a stored function (see below).
      The added tests test the possibility or impossibility to SET, their effects, and the mixed mode,
      including in prepared statements and in stored procedures and functions.
      Caveats:
      a) The mixed mode will not work for stored functions: in mixed mode, a stored function will
      always be binlogged as one call and in a statement-based way (e.g. INSERT VALUES(myfunc()) or SELECT myfunc()).
      b) for the same reason, changing the thread's binlog format inside a stored function is
      refused with an error message.
      c) the same problems apply to triggers; implementing b) for triggers will be done later (will ask
      Dmitri).
      Additionally, as the binlog format is now changeable by each user for his session, I remove the implication
      which was done at startup, where row-based automatically set log-bin-trust-routine-creators to 1
      (not possible anymore as a user can now switch to stmt-based and do nasty things again), and automatically
      set --innodb-locks-unsafe-for-binlog to 1 (was anyway theoretically incorrect as it disabled
      phantom protection).
      Plus fixes for compiler warnings.
      
      
      mysql-test/r/rpl_row_4_bytes.result:
        update
      mysql-test/t/rpl_row_4_bytes.test:
        don't influence next tests
      sql/ha_archive.cc:
        please pay attention to this structure when you change it...
      sql/ha_berkeley.cc:
        please pay attention to this structure when you change it...
      sql/ha_blackhole.cc:
        please pay attention to this structure when you change it...
      sql/ha_federated.cc:
        please pay attention to this structure when you change it...
      sql/ha_heap.cc:
        please pay attention to this structure when you change it...
      sql/ha_innodb.cc:
        please pay attention to this structure when you change it...
      sql/ha_myisam.cc:
        please pay attention to this structure when you change it...
      sql/ha_myisammrg.cc:
        please pay attention to this structure when you change it...
      sql/ha_ndbcluster_binlog.cc:
        no more global 'binlog_row_based'
      sql/ha_partition.cc:
        please pay attention to this structure when you change it...
      sql/handler.cc:
        please pay attention to this structure when you change it...
      sql/handler.h:
        it's good to initialize statically (to get no compiler warning) even if to a null value.
      sql/item_func.cc:
        UDFs require row-based if this is the "mixed" binlog format.
      sql/item_strfunc.cc:
        UUID() requires row-based binlogging if this is the "mixed" binlog format
      sql/log.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/log.h:
        the enum enum_binlog_format moves to log.h from mysqld.cc as we need it in several places.
      sql/log_event.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/log_event.h:
        this global variable not used anymore
      sql/mysql_priv.h:
        these global variables not used anymore
      sql/mysqld.cc:
        simplification in the handling of --binlog-format (but with no user-visible change), thanks to
        the new global system variable.
        RBR does not anymore turn on --log-bin-trust-function-creators and --innodb-locks-unsafe-for-binlog
        as these are global options and RBR is now settable per session.
      sql/partition_info.cc:
        compiler warnings
      sql/set_var.cc:
        new class of thread's variable, to handle the binlog_format (like sys_var_thd_enum except
        that is_readonly() is overriden for more checks before update).
        compiler warnings (ok'd by Serg)
      sql/set_var.h:
        new class for the thread's binlog_format (see set_var.cc)
      sql/share/errmsg.txt:
        some messages for when one can't toggle from one binlog format to another
      sql/sp_head.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_base.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_class.cc:
        When a THD is initialized, we set its current_stmt_binlog_row_based
      sql/sql_class.h:
        new THD::variables.binlog_format (the value of the session variable set by SET
        or inherited from the global value), and THD::current_stmt_binlog_row_based which tells if the
        current statement does row-based or statement-based binlogging. Both members are needed
        as the 2nd one cannot be derived only from the first one (the statement's type plays a role too),
        and the 1st one is needed to reset the 2nd one.
      sql/sql_delete.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_insert.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_load.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based.
      sql/sql_parse.cc:
        when we are done with a statement, we reset the current_stmt_binlog_row_based to the value
        derived from THD::variables.binlog_format.
      sql/sql_partition.cc:
        compiler warning
      sql/sql_show.cc:
        compiler warning
      sql/sql_table.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      tests/mysql_client_test.c:
        compiler warning
      mysql-test/r/ndb_binlog_basic2.result:
        new result
      mysql-test/r/rpl_switch_stm_row_mixed.result:
        new result
      mysql-test/t/ndb_binlog_basic2.test:
        new test to verify that if cluster is enabled, can't change binlog format on the fly.
      mysql-test/t/rpl_switch_stm_row_mixed.test:
        test to see if one can switch between SBR, RBR, and "mixed" mode, and when one cannot,
        and test to see if the switching, and the mixed mode, work properly (using UUID() to test,
        as using UDFs is not possible in the testsuite for portability reasons).
      7cac0ddf
    • unknown's avatar
      Fixed compiler warnings from gcc 4.0.2: · f5f01b15
      unknown authored
      - Added empty constructors and virtual destructors to many classes and structs
      - Removed some usage of the offsetof() macro to instead use C++ class pointers
      
      
      configure.in:
        Added comment
      ndb/include/ndbapi/NdbDictionary.hpp:
        Fixed compiler warnings from gcc 4.0.2
      sql/field.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/handler.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/item.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/item_cmpfunc.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/log_event.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/mysql_priv.h:
        Fixed compiler warnings from gcc 4.0.2
        For find_table_in_list I fixed it to use proper C++ class pointers instead of C style pointers
      sql/opt_range.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/parse_file.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sp_rcontext.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/spatial.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_base.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_cache.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_class.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_parse.cc:
        Fixed compiler warnings from gcc 4.0.2
        (Not pretty, but seams to work...)
      sql/sql_select.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_update.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/table.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/tztime.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/tztime.h:
        Fixed compiler warnings from gcc 4.0.2
      f5f01b15
  28. 23 Feb, 2006 1 commit
    • unknown's avatar
      Bug#17181 (mysqlslap test server crash): · 7d4c6846
      unknown authored
        Moving assignments to table_map_id for thread-safe handling of
        table shares.
      
      
      sql/ha_ndbcluster_binlog.cc:
        Assign_new_table_id() now takes table share instead of table.
      sql/mysql_priv.h:
        New protptype for assign_new_table_id().
      sql/sql_base.cc:
        Assign_new_table_id() now takes a table share instead of a table.
        Moving call to assign_new_table_id() into get_table_share().
      sql/table.cc:
        Setting default values of table_map_id and table_map_version inside
        alloc_table_share() and init_tmp_table_share().
        Removing the settings from open_table_from_share().
      7d4c6846
  29. 21 Feb, 2006 1 commit