An error occurred fetching the project authors.
  1. 13 Mar, 2006 1 commit
    • unknown's avatar
      Fixes to the replication mixed mode (patch approved by Monty): · b9f6f9bc
      unknown authored
      - detect the need for row-based binlogging not at execution stage but earlier at parsing stage; needed for example for CREATE TABLE SELECT UUID().
      - more tests of this mixed mode.
      
      
      mysql-test/r/rpl_switch_stm_row_mixed.result:
        result update
      mysql-test/t/rpl_switch_stm_row_mixed.test:
        testing more scenarios for the mixed replication mode.
        Added support for manual testing of UDFs vs the mixed mode (behind a variable in the test).
        Changing old file names to better ones.
      sql/item_create.cc:
        at parse time, when we see a UUID(), put up a flag in LEX to say this binlogs properly only with row-based binlogging.
      sql/item_func.cc:
        it's not perfect to put up the flag at this execution stage, better do it at parse stage.
      sql/item_strfunc.cc:
        it's not perfect to put up the flag at this execution stage, better do it at parse stage
      sql/set_var.cc:
        this assertion is wrong, this piece of code can happen in RBR mode too.
      sql/sql_lex.cc:
        when we reinitialize the LEX members before every query, we have to reinitialize the new flag
      sql/sql_lex.h:
        A new flag, set at parsing stage, which tells if some items seen during parsing stage require row-based replication to binlog/replicate correctly
        when this statement is later executed.
        It has to be in LEX and not directly in THD, for this to work in prepared statements.
      sql/sql_parse.cc:
        Parsing stage happened at some time in the past and set up the flag in LEX, now that we execute the statement we actually turn on row-based binlogging
        if the thread's binlog format is "mixed". We then turn it off when leaving mysql_execute_command().
        Some cleanup code was not executed if leaving mysql_execute_command() at the "error" label, fixing this. A better fix than the "goto end" would be
        to modify each "goto error" to "res=1; goto end" but it required changing many lines which I don't want to do now ("make smallest possible patch").
      sql/sql_yacc.yy:
        When at parsing stage we see a UDF we put up a flag to say that row-based binlogging is preferred.
      b9f6f9bc
  2. 10 Mar, 2006 2 commits
    • unknown's avatar
      Additional fix for BUG#16777: Can not create trigger nor view · cf539a5a
      unknown authored
      w/o definer if --skip-grant-tables specified.
        
      The previous patch does not allow to specify empty host name in
      DEFINER-clause explicitly.
      
      
      mysql-test/r/skip_grants.result:
        Updated the result file.
      mysql-test/r/view_grant.result:
        Updated the result file.
      mysql-test/t/skip_grants.test:
        Added test cases for BUG#16777; re-organized tests.
      mysql-test/t/view_grant.test:
        Updated after final fix of BUG#16777.
      sql/sql_parse.cc:
        The final part of fixing BUG#16777: allow empty host name in explicitly
        specified DEFINER-clause.
      sql/sql_show.cc:
        Quote an identifier if it is empty.
      cf539a5a
    • 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
  3. 09 Mar, 2006 2 commits
    • unknown's avatar
      Porting fix that allows others to include compiled code with different parsers. · 85d705b6
      unknown authored
      Makes you wonder what I am up to, doesn't?
      
      
      configure.in:
        Adjusts bison to not create symbols that clash.
      sql/sql_analyse.cc:
        Adding define to make sure sql_yacc.h gets included.
      sql/sql_lex.cc:
        Fixing it so that sql_yacc.h is included
      sql/sql_lex.h:
        Fixing include rules
      sql/sql_parse.cc:
        Adding flag to compile sql_yacc.yy
      85d705b6
    • unknown's avatar
      After-merge fixes. · fe0b818f
      unknown authored
      mysql-test/r/trigger-grant.result:
        Updated the result file.
      mysql-test/r/view_grant.result:
        Updated the result file.
      mysql-test/t/trigger-grant.test:
        A patch for BUG#13198 has been merged, so need to update the test case.
      mysql-test/t/view_grant.test:
        A patch for BUG#16777 has been merged, so need to update the test case.
      sql/sql_parse.cc:
        After-merge fix (should have been a part of fix for BUG#16777).
      sql/sql_show.cc:
        After-merge fix -- empty identifier should be quoted.
      fe0b818f
  4. 02 Mar, 2006 2 commits
    • unknown's avatar
      Implementation of WL#2897: Complete definer support in the stored routines. · 9a1fed13
      unknown authored
      The idea is to add DEFINER-clause in CREATE PROCEDURE and CREATE FUNCTION
      statements. Almost all support of definer in stored routines had been already
      done before this patch.
      
      NOTE: this patch changes behaviour of dumping stored routines in mysqldump.
      Before this patch, mysqldump did not dump DEFINER-clause for stored routines
      and this was documented behaviour. In order to get full information about stored
      routines, one should have dumped mysql.proc table. This patch changes this
      behaviour, so that DEFINER-clause is dumped.
      
      Since DEFINER-clause is not supported in CREATE PROCEDURE | FUNCTION statements
      before this patch, the clause is covered by additional version-specific comments.
      
      
      client/mysqldump.c:
        Updated the code for dumping stored routines: cover DEFINER-clause
        into version-specific comment.
      mysql-test/r/gis.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/information_schema.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/mysqldump.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/rpl_ddl.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/rpl_sp.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/rpl_trigger.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/sp-security.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/sp.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/sql_mode.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/t/sp-security.test:
        Updated result file after adding DEFINER-clause.
      sql/sp.cc:
        Added DEFINER-clause.
      sql/sp_head.cc:
        Added a new convenient variant of set_definer() operation.
      sql/sp_head.h:
        Updated result file after adding DEFINER-clause.
      sql/sql_lex.h:
        Renamed trigger_definition_begin into stmt_definition_begin to be used for
        triggers and stored routines.
      sql/sql_parse.cc:
        Check DEFINER-clause.
      sql/sql_trigger.cc:
        Renamed trigger_definition_begin into stmt_definition_begin to be used for
        triggers and stored routines.
      sql/sql_yacc.yy:
        Added DEFINER-clause.
      9a1fed13
    • 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
  5. 01 Mar, 2006 3 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
    • unknown's avatar
      fix for bug #16426 · d576ca18
      unknown authored
      Events: Event-caused statements don't appear in the slow query log
      WL#1034
      
      
      sql/event_executor.cc:
        enable slow logging
      sql/event_timed.cc:
        enable slow logging for the anonymous SP
      sql/sp_head.cc:
        allow thd->enable_slow_log to be TRUE if only
        m_flags & sp_head::LOG_SLOW_STATEMENTS
        Because usually enable_slow_log is 1 in user mode, this second
        check is needed backup the mode otherwise.
      sql/sp_head.h:
        add a new constant for slow queries. SP by default does not log slow queries in the
        body just the whole CALL could be considered as slow if taking too much time and
        called directly from the user
      sql/sql_parse.cc:
        let us see in the the trace log
      d576ca18
  6. 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
  7. 24 Feb, 2006 2 commits
    • unknown's avatar
      Fixes to embedded server to be able to run tests with it · 0afb6ff6
      unknown authored
      (Needed for "list of pushes" web page and autopush)
      
      
      include/mysql.h:
        Fix to embedded server to be able to run tests on it
      libmysql/libmysql.c:
        Fix to embedded server to be able to run tests on it
      libmysqld/emb_qcache.cc:
        Fix to embedded server to be able to run tests on it
      libmysqld/embedded_priv.h:
        Fix to embedded server to be able to run tests on it
      libmysqld/lib_sql.cc:
        Fix to embedded server to be able to run tests on it
      libmysqld/libmysqld.c:
        Fix to embedded server to be able to run tests on it
      mysql-test/mysql-test-run.sh:
        Fix to embedded server to be able to run tests on it
      mysql-test/r/binlog.result:
        Updated test for embedded server
      mysql-test/r/ctype_cp932.result:
        Updated test for embedded server
      mysql-test/r/innodb.result:
        Updated test for embedded server
      mysql-test/r/mysqltest.result:
        Updated test for embedded server
      mysql-test/r/query_cache.result:
        Updated test for embedded server
      mysql-test/r/query_cache_notembedded.result:
        Updated test for embedded server
      mysql-test/r/sp-error.result:
        Updated test for embedded server
      mysql-test/r/sp.result:
        Updated test for embedded server
      mysql-test/r/subselect.result:
        Updated test for embedded server
      mysql-test/r/view.result:
        Updated test for embedded server
      mysql-test/r/view_grant.result:
        Updated test for embedded server
      mysql-test/t/backup.test:
        Updated test for embedded server
      mysql-test/t/binlog.test:
        Updated test for embedded server
      mysql-test/t/blackhole.test:
        Updated test for embedded server
      mysql-test/t/compress.test:
        Updated test for embedded server
      mysql-test/t/ctype_cp932.test:
        Updated test for embedded server
      mysql-test/t/delayed.test:
        Updated test for embedded server
      mysql-test/t/handler.test:
        Updated test for embedded server
      mysql-test/t/innodb.test:
        Updated test for embedded server
      mysql-test/t/mysql.test:
        Updated test for embedded server
      mysql-test/t/mysql_client_test.test:
        Updated test for embedded server
      mysql-test/t/mysqltest.test:
        Updated test for embedded server
      mysql-test/t/query_cache.test:
        Updated test for embedded server
      mysql-test/t/query_cache_notembedded.test:
        Updated test for embedded server
      mysql-test/t/read_only.test:
        Updated test for embedded server
      mysql-test/t/skip_grants.test:
        Updated test for embedded server
      mysql-test/t/sp-destruct.test:
        Updated test for embedded server
      mysql-test/t/sp-error.test:
        Updated test for embedded server
      mysql-test/t/sp-threads.test:
        Updated test for embedded server
      mysql-test/t/sp.test:
        Updated test for embedded server
      mysql-test/t/subselect.test:
        Updated test for embedded server
      mysql-test/t/temp_table.test:
        Updated test for embedded server
      mysql-test/t/view.test:
        Updated test for embedded server
      mysql-test/t/view_grant.test:
        Updated test for embedded server
      mysql-test/t/wait_timeout.test:
        Updated test for embedded server
      mysys/mf_dirname.c:
        Review fix: Don't access data outside of array
      mysys/my_bitmap.c:
        Remove compiler warnings
      scripts/mysql_fix_privilege_tables.sql:
        Add flush privileges to .sql script so that one doesn't have to reboot mysqld when one runs the mysql_fix_privilege_script
      sql-common/client.c:
        Updated test for embedded server
      sql/item.cc:
        Remove DBUG_PRINT statement that can cause crashes when running with --debug
      sql/mysqld.cc:
        Fix to embedded server to be able to run tests on it
      sql/protocol.cc:
        Fix to embedded server to be able to run tests on it
        (Trivial reconstruction of code)
      sql/protocol.h:
        Fix to embedded server to be able to run tests on it
      sql/sql_base.cc:
        Better comment
      sql/sql_class.cc:
        Fix to embedded server to be able to run tests on it
      sql/sql_class.h:
        Fix to embedded server to be able to run tests on it
      sql/sql_cursor.cc:
        Fix to embedded server to be able to run tests on it
      sql/sql_parse.cc:
        Fix to embedded server to be able to run tests on it
        Don't crash for disabled commands when using embedded server
      sql/sql_prepare.cc:
        Fix to embedded server to be able to run tests on it
      mysql-test/r/ctype_cp932_notembedded.result:
        New BitKeeper file ``mysql-test/r/ctype_cp932_notembedded.result''
      mysql-test/r/innodb_notembedded.result:
        New BitKeeper file ``mysql-test/r/innodb_notembedded.result''
      mysql-test/r/sp.result.orig:
        New BitKeeper file ``mysql-test/r/sp.result.orig''
      mysql-test/r/sp_notembedded.result:
        New BitKeeper file ``mysql-test/r/sp_notembedded.result''
      mysql-test/r/subselect_notembedded.result:
        New BitKeeper file ``mysql-test/r/subselect_notembedded.result''
      mysql-test/t/ctype_cp932_notembedded.test:
        New BitKeeper file ``mysql-test/t/ctype_cp932_notembedded.test''
      mysql-test/t/innodb_notembedded.test:
        New BitKeeper file ``mysql-test/t/innodb_notembedded.test''
      mysql-test/t/sp.test.orig:
        New BitKeeper file ``mysql-test/t/sp.test.orig''
      mysql-test/t/sp_notembedded.test:
        New BitKeeper file ``mysql-test/t/sp_notembedded.test''
      mysql-test/t/subselect_notembedded.test:
        New BitKeeper file ``mysql-test/t/subselect_notembedded.test''
      0afb6ff6
    • unknown's avatar
      BUG#17521 alter database crashes slave · c6ee6093
      unknown authored
      Problem was a null pointer
      Fixed by passing correct database name to slave filtering mechanism
      Added test.
      
      
      sql/sql_parse.cc:
        Fix slave crash when issuing 'ALTER DATABASE' with specifying db name
        Don't pass null pointer to db_ok_with_wild_table()
      c6ee6093
  8. 23 Feb, 2006 1 commit
  9. 21 Feb, 2006 1 commit
    • unknown's avatar
      A fix and a test case for Bug#13134 "Length of VARCHAR() utf8 · 9cf3f255
      unknown authored
      column is increasing when table is recreated with PS/SP":
      make use of create_field::char_length more consistent in the code.
      Reinit create_field::length from create_field::char_length
      for every execution of a prepared statement (actually fixes the 
      bug).
      
      
      mysql-test/r/ps.result:
        Test results fixed (Bug#13134)
      mysql-test/t/ps.test:
        A test case for Bug#13134 "Length of VARCHAR() utf8 column is 
        increasing when table is recreated with PS/SP"
      sql/field.cc:
        Move initialization of create_field::char_length to the constructor
        of create_field.
      sql/field.h:
        Rename chars_length to char_length (to be consistent with
        how this term is used throughout the rest of the code).
      sql/sql_parse.cc:
        Initialize char_length in add_field_to_list. This function
        effectively works as another create_field constructor.
      sql/sql_table.cc:
        Reinit length from char_length for every field in 
        mysql_prepare_table. This is not needed if we're executing
        a statement for the first time, however, at subsequent executions
        length contains the number of bytes, not characters (as it's expected 
        to).
      9cf3f255
  10. 15 Feb, 2006 1 commit
    • unknown's avatar
      fix for bug#16410 (Events: CREATE EVENT is legal in a CREATE TRIGGER statement) · 2557f80f
      unknown authored
      WL#1034 (Internal CRON)
      (post-post-review updates)
      
      
      
      mysql-test/r/events.result:
        update results file
      mysql-test/t/events.test:
        add test for Bug #16410  Events: CREATE EVENT is legal in a CREATE TRIGGER statement
      sql/sp_head.cc:
        CREATE/ALTER/DROP event mean explicit commit, so they are not allowed in
        a FUNCTION/TRIGGER. Fixes bug#16410
      sql/sql_parse.cc:
        - end active transaction for CREATE/ALTER/DROP EVENT because
          they are DDL statements.
      2557f80f
  11. 14 Feb, 2006 1 commit
    • unknown's avatar
      - final fixes for bug#16431 (Events: An event which alters itself disappears) · 8d4f74be
      unknown authored
      - fix for bug#16423 (Events: SHOW CREATE EVENT doesn't work)
      - this Changeset commits makes CREATE/UPDATE/DELETE EVENT real DDL statements
        by committing the currently open transaction before they are executed.
      - this Changeset also fixes a trailing space problem since the very early days
        of the internal cron
      - adds sophisticated checking of whether mysql.event was tampered accidentally
        or with purpose by an user.
      - adds a lot of inline function documentation - documents everything left
        uncodumented
      - INTERVAL_XXXX to XXX in I_S.EVENTS.INTERVAL_FIELD
      
      WL#1034 (Internal CRON)
      
      
      mysql-test/r/events.result:
        update result
      mysql-test/t/events.test:
        add test cases for SHOW CREATE EVENT
        add test cases where the structure of mysql.event is changed and error reporting in this case
      sql/event.cc:
        - do a lot more checking on mysql.event whether it's valid
          introduced generic function table_check_intact() which can be used also
          for checking whether a system table (mysql.*) has been tampered by user
          and report an error in this case. The checking is quite strict, thus
          maybe some mechanism can be added later that loosens this like some
          session variable, for instance, i_am_aware_that_i_can_damage_my_data
          so the table will be opened nevertheless we think that it's not valid.
        - add evex_show_create_event(THD *thd, sp_name *spn, LEX_STRING definer)
        - document a loooot. not a single function left undocumented.
      sql/event.h:
        - add evex_show_create_event(THD *thd, sp_name *spn, LEX_STRING definer)
        - change get_show_create_event() to get_create_event()
        - add TABLE_FIELD_W_TYPE used by table_check_intact()
        - add event_timed::sql_mode so it can be used by show create event. currently
          always 0, will be fixed by a patch for another bug. At least makes the code
          of show create event complete.
      sql/event_executor.cc:
        - add evex_check_system_tables() that checks on boot and event
          main thread startup that mysql.db and mysql.user tables are correct.
        - document everything!
      sql/event_priv.h:
        remove a line
      sql/event_timed.cc:
        - implement SHOW CREATE EVENT
        - document undocumented functions!
      sql/share/errmsg.txt:
        - fix an error message and add two new
      sql/sql_acl.cc:
        - add mysql.db table definition to use by table_check_intact()
        - exchange some of the positions by numbers from mysql.db to enum names (see sql_acl.h)
      sql/sql_acl.h:
        - define the structure of mysql.db table
      sql/sql_parse.cc:
        - handle SQLCOM_SHOW_CREATE_EVENT
        - end the current transaction becase CREATE/UPDATE/DELETE EVENT is a DDL
          statement
      sql/sql_show.cc:
        - remove interval_type_to_name
        - use common function event_reconstruct_interval_expression()
          that reconstructs the expression given at create/alter, to some
          extent - interval of 2:62 MINUTE_SECOND will be reconstructed as
          interval of 3:02 MINUTE_SECOND!
      sql/sql_yacc.yy:
        init the definer of event_timed also when doing SHOW CREATE EVENT
        because it's needed for checking into mysql.event
      sql/table.cc:
        - remove stale code. only mysql.event should be a 'system_table'
        - add table_check_intact() to check the consistency of a table.
          mostly usable with mysql.xxx tables.
      sql/table.h:
        - export TABLE_FIELD_W_TYPE and table_check_intact() which are used for 
          checking the structure of a table. mostly usable for mysql.xxx tables.
      8d4f74be
  12. 13 Feb, 2006 1 commit
    • unknown's avatar
      renamedb.test, renamedb.result: · bc5dc9e0
      unknown authored
        new file
      Many files:
        WL#757 RENAME DATABASE
      
      
      sql/mysql_priv.h:
        WL#757 RENAME DATABASE
      sql/mysqld.cc:
        WL#757 RENAME DATABASE
      sql/sql_db.cc:
        WL#757 RENAME DATABASE
      sql/sql_lex.h:
        WL#757 RENAME DATABASE
      sql/sql_parse.cc:
        WL#757 RENAME DATABASE
      sql/sql_rename.cc:
        WL#757 RENAME DATABASE
      sql/sql_table.cc:
        WL#757 RENAME DATABASE
      sql/sql_yacc.yy:
        WL#757 RENAME DATABASE
      bc5dc9e0
  13. 07 Feb, 2006 1 commit
    • unknown's avatar
      - fix for bug #16414 (Events: Crash or hang if event drops itself) · 99eb6eb6
      unknown authored
      WL#1034 (Internal CRON)
      (with post-review fix)
      
      
      mysql-test/r/events.result:
        update the result
      mysql-test/t/events.test:
        use --sleep instead of select sleep()
        enable some scheduler related tests. They were disabled because of a hang that
        happened. The hang is fixed with this bugfix.
      sql/event.cc:
        - evex_remove_from_cache reports back whether the in_memory
          object was deleted or was scheduled. In case scheduling then
          don't delete it from outside but let it do it itself
        - move out db interaction code out of evex_drop_event to db_drop_event
          so it can be called from outter space :)
      sql/event_priv.h:
        - export the new function db_drop_event()
      sql/event_timed.cc:
        - use db_drop_event() and don't implement the dropping ourselves
      sql/sql_parse.cc:
        - some debug info about the status code returned.
      99eb6eb6
  14. 30 Jan, 2006 1 commit
    • unknown's avatar
      fix for bug#16642 (Events: No INFORMATION_SCHEMA.EVENTS table) · c3542ceb
      unknown authored
      post-review change - use pointer instead of copy on the stack.
      WL#1034 (Internal CRON)
       This patch adds INFORMATION_SCHEMA.EVENTS table with the following format:
        EVENT_CATALOG  - MYSQL_TYPE_STRING  (Always NULL)
        EVENT_SCHEMA   - MYSQL_TYPE_STRING  (the database)
        EVENT_NAME     - MYSQL_TYPE_STRING  (the name)
        DEFINER        - MYSQL_TYPE_STRING  (user@host)
        EVENT_BODY     - MYSQL_TYPE_STRING  (the body from mysql.event)
        EVENT_TYPE     - MYSQL_TYPE_STRING  ("ONE TIME" | "RECURRING")
        EXECUTE_AT     - MYSQL_TYPE_TIMESTAMP (set for "ONE TIME" otherwise NULL)
        INTERVAL_VALUE - MYSQL_TYPE_LONG    (set for RECURRING otherwise NULL)
        INTERVAL_FIELD - MYSQL_TYPE_STRING  (set for RECURRING otherwise NULL)
        SQL_MODE       - MYSQL_TYPE_STRING  (for now NULL)
        STARTS         - MYSQL_TYPE_TIMESTAMP (starts from mysql.event)
        ENDS           - MYSQL_TYPE_TIMESTAMP (ends from mysql.event)
        STATUS         - MYSQL_TYPE_STRING  (ENABLED | DISABLED)
        ON_COMPLETION  - MYSQL_TYPE_STRING  (NOT PRESERVE | PRESERVE)
        CREATED        - MYSQL_TYPE_TIMESTAMP
        LAST_ALTERED   - MYSQL_TYPE_TIMESTAMP
        LAST_EXECUTED  - MYSQL_TYPE_TIMESTAMP
        EVENT_COMMENT  - MYSQL_TYPE_STRING
      
        SQL_MODE is NULL for now, because the value is still not stored in mysql.event .
      Support will be added as a fix for another bug.
      
       This patch also adds SHOW [FULL] EVENTS [FROM db] [LIKE pattern]
      1. SHOW EVENTS shows always only the events on the same user,
         because the PK of mysql.event is (definer, db, name) several 
         users may have event with the same name -> no information disclosure.
      2. SHOW FULL EVENTS - shows the events (in the current db as SHOW EVENTS)
         of all users. The user has to have PROCESS privilege, if not then
         SHOW FULL EVENTS behave like SHOW EVENTS.
      3. If [FROM db] is specified then this db is considered.
      4. Event names can be filtered with LIKE pattern.
        SHOW EVENTS returns table with the following columns, which are subset of
        the data which is returned by SELECT * FROM I_S.EVENTS
         Db
         Name
         Definer 
         Type
         Execute at
         Interval value
         Interval field 
         Starts 
         Ends
         Status
      
      
      mysql-test/lib/init_db.sql:
        change the PK - (definer, db, name)
        quicker searches when SHOW EVENTS;
        allow also different users to have events with the same name -> 
        no information disclosure
      mysql-test/r/events.result:
        result of new tests
      mysql-test/r/information_schema.result:
        result of new tests
      mysql-test/r/information_schema_db.result:
        result of new tests
      mysql-test/r/system_mysql_db.result:
        result of new tests
      mysql-test/t/events.test:
        new tests for information_schema.events
      scripts/mysql_create_system_tables.sh:
        change the PK of mysql.event to (definer, db, name)
      scripts/mysql_fix_privilege_tables.sql:
        change the PK of mysql.event to (definer, db, name)
      sql/event.cc:
        pass around the definer of the event because of the new PK
        which is (definer, db, name). It's needed for index searching.
      sql/event.h:
        - make enum evex_table_field again public so it can be used
        in sql_show.cc
        - make created and modified ulonglong, because they should be such
        - make public evex_open_event_table so it can be used in sql_show.cc
      sql/event_executor.cc:
        - cosmetics
      sql/event_priv.h:
        - moved enum evex_table_field and evex_open_event_table()
          to event.h (made them therefore public)
      sql/event_timed.cc:
        - in event_timed::init_definer() always fill this.definer with
          the concatenated value of definer_user@definer_host. Makes
          later the work easier.
        - pass around the definer wherever is needed for searching 
          (new prototype of evex_db_find_evex_aux)
      sql/mysqld.cc:
        - add counter for SHOW EVENTS
      sql/sql_lex.h:
        - register SHOW EVENTS as command
      sql/sql_parse.cc:
        - handle SCH_EVENTS (I_S.EVENTS like SCH_TRIGGERS)
        - make additional check in case of SHOW EVENTS (check for EVENT on
          the current database. if it is null check_access() gives appropriate
          message back.
      sql/sql_show.cc:
        - add INFORMATION_SCHEMA.EVENTS and SHOW EVENTS
        - I_S.EVENTS.SQL_MODE is NULL for now -> not implemented. Trudy
          asked to be added so bug #16642 can be completely closed. There
          is another bug report which will fix the lack of storage of
          SQL_MODE during event creation.
      sql/sql_yacc.yy:
        - always call event_timed::init_definer() when CREATE/ALTER/DROP
          EVENT but not when just compiling the body of the event because
          in this case this operation is not needed, it takes memory and
          CPU time and at the end the result is not used. event_timed::definer
          is used only on SQLCOM_CREATE/ALTER/DROP_EVENT execution not on
          statement compilation.
        - add SHOW [FULL] EVENTS [FROM db] [LIKE pattern]
          in case of FULL and the user has PROCESS privilege then he will see
          also others' events in the current database, otherwise the output
          is the same as of SHOW EVENTS. Because the events are per DB only
          the events from the current database are shown. pattern is applied
          against event name. FROM db is self explanatory.
      sql/table.h:
        add SCH_EVENTS as part of INFORMATION_SCHEMA
      c3542ceb
  15. 28 Jan, 2006 1 commit
    • unknown's avatar
      two buffer overflows fixed · 3b476a8f
      unknown authored
      sql/sp.cc:
        use strxnmov, just in case
      sql/sql_parse.cc:
        init thd->security_ctx->priv_host,
        otherwise - buffer overflow in db_create_routine
      sql/unireg.cc:
        not too nice to do bzero(buf, 9) after char buf[5], eh ?
      3b476a8f
  16. 26 Jan, 2006 3 commits
    • unknown's avatar
      Fixed on BUG#16568: Continue handler with simple CASE not working correctly · af187fa2
      unknown authored
        After trying multiple inheritance (to messy and hard make it work) and
        sublassing jump_if_not (worked, but ugly), decided to on this solution
        instead:
        Inserting an abstract sp_instr_opt_meta class as parent for all instructions
        with destinations makes it possible to handle a continuation pointer for
        sp_instr_set_case_expr too.
        Note: No special test case; the fix is captured by the changed behaviour of
        bug14643_2, and bug14498_4 (formerly disabled), in sp.test.
      
      
      mysql-test/r/sp.result:
        Updated results for BUG#16568 (affects results for bug14643_2 and bug14498_4)
      mysql-test/t/sp.test:
        Enabled test bug14498_4 for BUG#16568.
      sql/sp_head.cc:
        Changed type of some parameters and variables (sp_instr_opt_meta instead of sp_instr_jump*).
        Added consistency check of m_ip member in instructions in sp_head::show_routine_code().
        Updated print() method of, and added opt_mark() and opt_move() methods to
        sp_instr_set_case_expr, to handle the new continuation destination.
      sql/sp_head.h:
        New abstract class between sp_instr and instructions with destinations, in particular
        sp_instr_set_case_expr, for continuation destination handling.
        Changed type of some parameters and variables (sp_instr_opt_meta instead of sp_instr_jump*).
        Added opt_mark(), opt_move() and set_destination() methods to
        sp_instr_set_case_expr.
      sql/sql_parse.cc:
        Fixed small bug at show_routine_code() call (tested return value the wrong way).
      sql/sql_yacc.yy:
        sp_instr_set_case_expr is now added to backpatch list (for the new cont. destination).
      af187fa2
    • unknown's avatar
      Fixed BUG#16303: erroneus stored procedures and functions should be droppable · cce719fb
      unknown authored
        Use a special lookup function for DROP, which doesn't attempt to parse the
        definition.
      
      
      mysql-test/r/sp-destruct.result:
        Updated test result for BUG#16303.
      mysql-test/t/sp-destruct.test:
        Added test case for BUG#16303.
      sql/sp.cc:
        New function sp_routine_exists_in_table() for DROP PROCEDURE/FUNCTION; which doesn't
        want to parse the definition, only know if it exists.
        
        Renamed sp_exists_routine to sp_exist_routines and added comment,
        and changed the misnamed parameter/variable 'tables'/'table' to
        'routines'/'routine'.
      sql/sp.h:
        New function sp_routine_exists_in_table() for DROP PROCEDURE/FUNCTION.
        
        Renamed sp_exists_routine to sp_exist_routines,
        and changed the misnamed parameter 'tables' to 'routines'.
      sql/sql_acl.cc:
        Call to sp_exists_routine() renamed to sp_exist_routines().
      sql/sql_parse.cc:
        Use the new sp_routine_exists_in_table() instead of sp_find_routine(), since we don't
        want the routine definition parsed when doing DROP PROCEDURE/FUNCTION.
      cce719fb
    • unknown's avatar
      BUG#15699 importing the fix from 5.0 · 956a5b6d
      unknown authored
      sql/sql_parse.cc:
        BUG#15699,16487 merge of the fix made in 5.0
      mysql-test/r/rpl_multi_update4.result:
        New BitKeeper file ``mysql-test/r/rpl_multi_update4.result''
      mysql-test/t/rpl_multi_update4-slave.opt:
        New BitKeeper file ``mysql-test/t/rpl_multi_update4-slave.opt''
      mysql-test/t/rpl_multi_update4.test:
        New BitKeeper file ``mysql-test/t/rpl_multi_update4.test''
      mysql-test/r/rpl_ignore_table.result:
        New BitKeeper file ``mysql-test/r/rpl_ignore_table.result''
      956a5b6d
  17. 24 Jan, 2006 1 commit
    • unknown's avatar
      bug #14354 - data directory and index directory not working for partitions · f3754552
      unknown authored
      mysql-test/r/partition_mgm_err.result:
        only the single drop table since we have disabled query logging for the create table
      mysql-test/t/partition_mgm_err.test:
        test for bug #14354
        first make sure /tmp/bug14354 is not there, then make the dir
        create a partitioned table with the partition using
        /tmp/bug14354 as it's data dir
        we are disabling query logging since we are using $MYSQL_TEST_DIR
        and we are not certain where the tmp files will be created.
      sql/ha_partition.cc:
        pass partition filename with pathname into 
        set_up_table_before_create.
        
        remove the path from the passed in value and then append the filename
        to the data_file_name or index_file_name if those values were
        specified.
      sql/ha_partition.h:
        added partition_name_with_path to set_up_table_before_create
      sql/mysql_priv.h:
        move append_file_to_dir to mysql_priv.h
      sql/sql_parse.cc:
        moving append_file_to_dir to mysql_priv.h
      sql/sql_partition.cc:
        add_keyword_string was not writing keyword value with quotes
      f3754552
  18. 23 Jan, 2006 1 commit
    • unknown's avatar
      BUG#15699, failure to apply ignore rule for unexisting table. · 1dcfe028
      unknown authored
        
      Since replication rules execute after `mysql_multi_update_prepare' returns we
      delay to `break' in case this functions returns non-zero (some tables are not found) 
      for to examine if there is an ignore rule for a not-found table. By doing that
      it is guaranteed do/ignore replication rules logically preceed opening table routine.
      
      
      sql/sql_parse.cc:
        BUG#15699. We delay to `break' in case of unexisted tables for multi-update.
        First it is checked whether an ignore rule for such a table exists.
        
        More to the fix:
        if (opt_readonly && ...' in two places got be idented because it were
        enclosed explicitly into corresponding `else' groups. For that 
        the preceding lines with `else' were changed in to be 
        `else 
         {'.
        This grouping is necessary to avoid any inattentive
        insertion in between of `else' and belonging to the else 
        `if (opt_readonly && ...' statement.
      mysql-test/r/rpl_multi_update4.result:
        New BitKeeper file ``mysql-test/r/rpl_multi_update4.result''
      mysql-test/t/rpl_multi_update4-slave.opt:
        New BitKeeper file ``mysql-test/t/rpl_multi_update4-slave.opt''
      mysql-test/t/rpl_multi_update4.test:
        New BitKeeper file ``mysql-test/t/rpl_multi_update4.test''
      1dcfe028
  19. 20 Jan, 2006 1 commit
    • unknown's avatar
      Portability compilation fixes. · e3523a0f
      unknown authored
      storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
        Fix sol10-amd64-a compile failure, conflict with system headers.
      sql/log.cc:
        Rename macros to fix AIX conflict with system LOG_GENERAL macros.
      sql/mysql_priv.h:
        Rename macros to fix AIX conflict with system LOG_GENERAL macros.
      sql/sql_delete.cc:
        Rename macros to fix AIX conflict with system LOG_GENERAL macros.
      sql/table.cc:
        Rename macros to fix AIX conflict with system LOG_GENERAL macros.
      sql/sql_parse.cc:
        Fix HPUX compile failure, initializing char * with const char *
      e3523a0f
  20. 19 Jan, 2006 1 commit
    • unknown's avatar
      WL1019: complete patch. Reapplied patch to the clean · 41536fce
      unknown authored
      tree to get rid of multiple typos in CS comments and
      unify the patch.
      
      
      configure.in:
        CSV is compiled in by default now
      include/my_base.h:
        add new ha_extra flag for the log tables
      mysql-test/include/im_check_os.inc:
        we should only run im tests if csv is on for now: im relies
        on mysqld options available only in csv build.
      mysql-test/include/system_db_struct.inc:
        check log tables structure
      mysql-test/lib/init_db.sql:
        create log tables when running tests.
      mysql-test/mysql-test-run.pl:
        Add old logs flag to IM tests. As IM could only deal with
        old logs (this feature is not needed with log tables)
      mysql-test/r/connect.result:
        update result
      mysql-test/r/csv.result:
        update result
      mysql-test/r/im_utils.result:
        update result
      mysql-test/r/information_schema.result:
        update result
      mysql-test/r/mysqlcheck.result:
        update result
      mysql-test/r/show_check.result:
        update result
      mysql-test/r/system_mysql_db.result:
        update result
      mysql-test/t/connect.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/csv.test:
        add tests for concurrent insert (the functionality is added
        to CSV in this patch)
      mysql-test/t/information_schema.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/mysqlcheck.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/show_check.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/system_mysql_db.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/system_mysql_db_fix.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      scripts/mysql_create_system_tables.sh:
        new system tables: slow_log and general_log
      scripts/mysql_fix_privilege_tables.sql:
        add new log tables: use an SP to create them for
        non-csv build to work fine.
      sql/ha_myisam.cc:
        move locking-related checks to the hanlder
      sql/ha_myisam.h:
        new function declared
      sql/handler.h:
        new virtual function is added: we should check for handler-related
        locking issues in the handler
      sql/lock.cc:
        from now on we check for handler-related locking issues
        in the handler itself rather then in lock.cc
      sql/log.cc:
        Add log tables support, refactoring: there are log event
        handlers with common interface. They are used by the LOGGER
        class, which is responsible for their initialization, cleanup
        and managment. Logging to the tables provided by one of the
        log event handler types.
      sql/log.h:
        declare new log classes
      sql/log_event.cc:
        convert old logging routines calls to use new API
      sql/mysql_priv.h:
        define common log routines and objects
      sql/mysqld.cc:
        Add support for the log tables. Their initalization, cleanup
        and specific options.
      sql/share/errmsg.txt:
        add new error messages for the log tables
      sql/slave.cc:
        convert old logging routines calls to use new API
      sql/sql_base.cc:
        TABLE objects used by the logger should be skipped
        during refreshes (as log tables are always opened
        and locked). fix table_is_used to skip them.  This
        is needed for FLUSH LOGS to work
      sql/sql_db.cc:
        convert old logging routines calls to use new API
      sql/sql_delete.cc:
        fix TRUNCATE to work with log tables
      sql/sql_parse.cc:
        command_name is now an array of LEX_STRINGs
      sql/sql_prepare.cc:
        convert old logging routines calls to use new API
      sql/sql_show.cc:
        convert old logging routines calls to use new API
      sql/sql_table.cc:
        don't reoped the log tables for admin purposes
      sql/table.cc:
        mark log tables as such during the open
      sql/table.h:
        add log-related info
      storage/csv/ha_tina.cc:
        add support for concurrent insert (see bk commit - 5.1 tree
        (petr:1.1910) for standalone patch), add log tables-specific
        csv table handling.
      storage/csv/ha_tina.h:
        enable concurrent insert for CSV, add log table flag
      mysql-test/r/log_tables.result:
        New BitKeeper file ``mysql-test/r/log_tables.result''
      mysql-test/t/log_tables.test:
        New BitKeeper file ``mysql-test/t/log_tables.test''
      41536fce
  21. 12 Jan, 2006 1 commit
    • unknown's avatar
      wl2325 wl2324 · 4c798b42
      unknown authored
      mysql-test/include/have_ndb_extra.inc:
        New BitKeeper file ``mysql-test/include/have_ndb_extra.inc''
      mysql-test/include/not_ndb.inc:
        New BitKeeper file ``mysql-test/include/not_ndb.inc''
      mysql-test/r/have_ndb_extra.require:
        New BitKeeper file ``mysql-test/r/have_ndb_extra.require''
      mysql-test/r/ndb_alter_table_row.result:
        New BitKeeper file ``mysql-test/r/ndb_alter_table_row.result''
      mysql-test/r/ndb_alter_table_stm.result:
        New BitKeeper file ``mysql-test/r/ndb_alter_table_stm.result''
      mysql-test/r/ndb_binlog_basic.result:
        New BitKeeper file ``mysql-test/r/ndb_binlog_basic.result''
      mysql-test/r/ndb_binlog_multi.result:
        New BitKeeper file ``mysql-test/r/ndb_binlog_multi.result''
      mysql-test/r/ndb_multi_row.result:
        New BitKeeper file ``mysql-test/r/ndb_multi_row.result''
      mysql-test/r/not_ndb.require:
        New BitKeeper file ``mysql-test/r/not_ndb.require''
      mysql-test/r/rpl_ndb_bank.result:
        New BitKeeper file ``mysql-test/r/rpl_ndb_bank.result''
      mysql-test/r/rpl_ndb_basic.result:
        New BitKeeper file ``mysql-test/r/rpl_ndb_basic.result''
      mysql-test/r/rpl_ndb_disk.result:
        New BitKeeper file ``mysql-test/r/rpl_ndb_disk.result''
      mysql-test/r/rpl_ndb_idempotent.result:
        New BitKeeper file ``mysql-test/r/rpl_ndb_idempotent.result''
      mysql-test/r/rpl_ndb_load.result:
        New BitKeeper file ``mysql-test/r/rpl_ndb_load.result''
      mysql-test/r/rpl_ndb_multi.result:
        New BitKeeper file ``mysql-test/r/rpl_ndb_multi.result''
      mysql-test/r/rpl_ndb_sync.result:
        New BitKeeper file ``mysql-test/r/rpl_ndb_sync.result''
      mysql-test/r/rpl_row_basic_7ndb.result:
        New BitKeeper file ``mysql-test/r/rpl_row_basic_7ndb.result''
      mysql-test/t/ndb_alter_table_row.test:
        New BitKeeper file ``mysql-test/t/ndb_alter_table_row.test''
      mysql-test/t/ndb_alter_table_stm.test:
        New BitKeeper file ``mysql-test/t/ndb_alter_table_stm.test''
      mysql-test/t/ndb_binlog_basic.test:
        New BitKeeper file ``mysql-test/t/ndb_binlog_basic.test''
      mysql-test/t/ndb_binlog_multi.test:
        New BitKeeper file ``mysql-test/t/ndb_binlog_multi.test''
      mysql-test/t/ndb_multi_row.test:
        New BitKeeper file ``mysql-test/t/ndb_multi_row.test''
      mysql-test/t/rpl_ndb_bank.test:
        New BitKeeper file ``mysql-test/t/rpl_ndb_bank.test''
      mysql-test/t/rpl_ndb_basic.test:
        New BitKeeper file ``mysql-test/t/rpl_ndb_basic.test''
      mysql-test/t/rpl_ndb_disk.test:
        New BitKeeper file ``mysql-test/t/rpl_ndb_disk.test''
      mysql-test/t/rpl_ndb_idempotent.test:
        New BitKeeper file ``mysql-test/t/rpl_ndb_idempotent.test''
      mysql-test/t/rpl_ndb_load.test:
        New BitKeeper file ``mysql-test/t/rpl_ndb_load.test''
      mysql-test/t/rpl_ndb_multi.test:
        New BitKeeper file ``mysql-test/t/rpl_ndb_multi.test''
      mysql-test/t/rpl_ndb_sync.test:
        New BitKeeper file ``mysql-test/t/rpl_ndb_sync.test''
      mysql-test/t/rpl_row_basic_7ndb.test:
        New BitKeeper file ``mysql-test/t/rpl_row_basic_7ndb.test''
      sql/ha_ndbcluster_binlog.cc:
        New BitKeeper file ``sql/ha_ndbcluster_binlog.cc''
      sql/ha_ndbcluster_binlog.h:
        New BitKeeper file ``sql/ha_ndbcluster_binlog.h''
      sql/ha_ndbcluster_tables.h:
        New BitKeeper file ``sql/ha_ndbcluster_tables.h''
      sql/rpl_injector.cc:
        New BitKeeper file ``sql/rpl_injector.cc''
      sql/rpl_injector.h:
        New BitKeeper file ``sql/rpl_injector.h''
      storage/ndb/include/kernel/signaldata/DihFragCount.hpp:
        New BitKeeper file ``storage/ndb/include/kernel/signaldata/DihFragCount.hpp''
      4c798b42
  22. 11 Jan, 2006 1 commit
    • unknown's avatar
      wl2723 - ndb opt. nr · 641ce5e9
      unknown authored
      mysql-test/t/rpl_multi_engine.test:
        merge fix
      libmysqld/sql_tablespace.cc:
        New BitKeeper file ``libmysqld/sql_tablespace.cc''
      mysql-test/r/ndb_basic_disk.result:
        New BitKeeper file ``mysql-test/r/ndb_basic_disk.result''
      mysql-test/t/ndb_basic_disk.test:
        New BitKeeper file ``mysql-test/t/ndb_basic_disk.test''
      sql/sql_tablespace.cc:
        New BitKeeper file ``sql/sql_tablespace.cc''
      storage/ndb/src/kernel/blocks/OptNR.txt:
        New BitKeeper file ``storage/ndb/src/kernel/blocks/OptNR.txt''
      storage/ndb/src/kernel/vm/mem.txt:
        New BitKeeper file ``storage/ndb/src/kernel/vm/mem.txt''
      storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp:
        New BitKeeper file ``storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp''
      storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp:
        New BitKeeper file ``storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp''
      storage/ndb/tools/ndb_error_reporter:
        New BitKeeper file ``storage/ndb/tools/ndb_error_reporter''
      641ce5e9
  23. 10 Jan, 2006 3 commits
    • unknown's avatar
      Fix for BUG#15110: mysqldump --triggers: does not include DEFINER clause · d4d29edb
      unknown authored
      There are two main idea of this fix:
        - introduce a common function for server and client to split user value
          (<user name>@<host name>) into user name and host name parts;
        - dump DEFINER clause in correct format in mysqldump.
      
      
      BitKeeper/etc/ignore:
        added client/my_user.c libmysqld/my_user.c sql/my_user.c
      client/Makefile.am:
        Use my_user.c in linking of mysqldump executable.
      client/mysqldump.c:
        Fix for BUG#15110(mysqldump --triggers: does not include DEFINER clause)
      include/Makefile.am:
        Add my_user.c
      include/mysql_com.h:
        Introduce a constant for max user length.
      libmysqld/Makefile.am:
        Add my_user.c
      mysql-test/r/mysqldump.result:
        Update result file.
      sql-common/Makefile.am:
        Add my_user.c
      sql/Makefile.am:
        Add my_user.c
      sql/sp.cc:
        Use constant for max user length.
      sql/sp_head.cc:
        Use common function to parse user value.
      sql/sql_acl.cc:
        Use constant for max user length.
      sql/sql_parse.cc:
        Use constant for max user length.
      sql/sql_show.cc:
        Use constant for max user length.
      sql/sql_trigger.cc:
        Use constant for max user length.
      include/my_user.h:
        A header file for parse_user().
      sql-common/my_user.c:
        A new file for parse_user() implementation.
      d4d29edb
    • unknown's avatar
      Changed function prototype. · 26e7bf4a
      unknown authored
      26e7bf4a
    • unknown's avatar
      Fixed refresh_status function. · 55499cad
      unknown authored
      sql/sql_class.cc:
        Improved documentation on add_to_status().
      sql/sql_parse.cc:
        Changed refresh status to take thd as argument to avoid current_thd.
        Removed add_to_status away from loop, as it is not necessary for each
        variable, only required for each thread. In this case only the current
        thread.
      55499cad
  24. 07 Jan, 2006 1 commit
    • unknown's avatar
      WL#2935 - SHOW STATUS support in plugins · 031ee043
      unknown authored
      The patch adds DYNAMIC_ARRAY all_status_vars, which is now the
      sole source of status information for SHOW STATUS.  Status
      variables can be added to and removed from the array dynamically.
      SHOW STATUS command uses this array instead of static array
      from mysqld.cc
      Compatibility with the old, global list of status variables is
      preserved in init_server_components(), where this global list is
      simply appended to all_status_vars.
      
      
      include/plugin.h:
        WL#2935 - SHOW STATUS support in plugins
      plugin/fulltext/plugin_example.c:
        WL#2935 - SHOW STATUS support in plugins
        example
      sql/ha_innodb.cc:
        s/struct show_var_st/SHOW_VAR/
      sql/ha_innodb.h:
        s/struct show_var_st/SHOW_VAR/
      sql/mysql_priv.h:
        WL#2935 - SHOW STATUS support in plugins
        add_status_vars(), remove_status_vars()
      sql/mysqld.cc:
        bug: plugin_free must be called even with --skip-grants
        add_status_vars()/free_status_vars(), remove unused SHOW_xxx_CONST
        s/struct show_var_st/SHOW_VAR/
      sql/set_var.cc:
        s/struct show_var_st/SHOW_VAR/
      sql/sql_parse.cc:
        s/struct show_var_st/SHOW_VAR/
      sql/sql_plugin.cc:
        WL#2935 - SHOW STATUS support in plugins
      sql/sql_plugin.h:
        WL#2935 - SHOW STATUS support in plugins
      sql/sql_show.cc:
        WL#2935 - SHOW STATUS support in plugins
        DYNAMIC_ARRAY all_status_vars, add_status_vars(), remove_status_vars()
        s/struct show_var_st/SHOW_VAR/
      sql/structs.h:
        WL#2935 - SHOW STATUS support in plugins
        SHOW STATUS definitions moved to include/plugin.h and sql_plugin.h
        s/struct show_var_st/SHOW_VAR/
      031ee043
  25. 05 Jan, 2006 1 commit
    • unknown's avatar
      Review fixes of new pushed code · 64206b18
      unknown authored
      - Fixed tests
      - Optimized new code
      - Fixed some unlikely core dumps
      - Better bug fixes for:
        - #14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        - #14850 (ERROR 1062 when a quering a view using a Group By on a column that can be null
      
      
      mysql-test/r/create.result:
        Update results after removing wrong warnings for CREATE ... SELECT
        New tests
      mysql-test/r/handler.result:
        Drop used tables
      mysql-test/r/kill.result:
        Make test portable
      mysql-test/r/mysqlshow.result:
        Drop tables used by previous test
      mysql-test/r/trigger.result:
        Reuse old procedure name
      mysql-test/r/view.result:
        Extra tests
      mysql-test/t/create.test:
        New tests to test fix of removing wrong warnings for CREATE ... SELECT
      mysql-test/t/disabled.def:
        Enable 'kill' test (should now be portable)
      mysql-test/t/handler.test:
        Drop used tables
      mysql-test/t/kill.test:
        Make test portable even if kill doesn't work at once
      mysql-test/t/mysqlshow.test:
        Drop tables used by previous test
      mysql-test/t/trigger.test:
        Reuse old procedure name
      mysql-test/t/view.test:
        Extra tests
      sql/field.cc:
        Removed compiler warning
      sql/ha_federated.cc:
        my_snprintf -> strmake()
        (Simple optimization)
      sql/ha_ndbcluster.cc:
        Indentation cleanups and trival optimization
      sql/item.cc:
        Moved save_org_in_field() to item.cc to make it easier to test
        Remove setting of null_value as this is not needed
      sql/item.h:
        Moved save_org_in_field() to item.cc to make it easier to test
      sql/log_event.cc:
        Remove inline of slave_load_file_stem()
        Added 'extension' parameter to slave_load_file_stem() to get smaller code
        Removed not critical (or needed) DBUG_ASSERT()'s
        Cleaned up usage of slave_load_file_stem() to not depend on constant string lengths
        Indentation fixes
      sql/opt_range.cc:
        Moved code from declaration to function body
        (To make it more readable)
      sql/parse_file.cc:
        Fixed DBUG_PRINT
      sql/sp.cc:
        Simple cleanups
        - Removed not needed {} level
        - Ensure saved variables starts with old_
      sql/sp_head.cc:
        Indentation fixes
        Remove core dump when using --debug when m_next_cached_sp == 0
        Fixed compiler warnings
        Trivial optimizations
      sql/sp_head.h:
        Changed argument to set_definer() to const
        Added THD argument to recursion_level_error() to avoid call to current_thd
      sql/sql_acl.cc:
        Removed not needed test (first_not_own_table is the guard)
      sql/sql_base.cc:
        Removed extra empty line
      sql/sql_handler.cc:
        Don't test table version in mysql_ha_read() as this is already tested in lock_tables()
        Moved call to insert_fields to be after lock_table() to guard aganst reopen of tables
        (Better fix for Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash)
      sql/sql_insert.cc:
        Mark fields that are set in CREATE ... SELECT as used
        (Removed wrong warnings about field not having a default value)
      sql/sql_parse.cc:
        Removed not needed test of 'tables' (first_not_own_table is the guard)
        Simplify code
      sql/sql_select.cc:
        Use group->field to check if value is null instead of item called by 'save_org_in_field'
        This is a better bug fix for #14850 (ERROR 1062 when a quering a view using a Group By on a column that can be null)
      sql/sql_trigger.cc:
        Move sql_modes_parameters outside of function
        Indentation fixes
        Fixed compiler warning
        Ensure that thd->lex->query_tables_own_last is set properly before calling check_table_access()
        (This allows us to remove the extra test in check_grant() and check_table_access())
      64206b18
  26. 04 Jan, 2006 2 commits
    • unknown's avatar
      Big patch to make embedded-server working in 5.x · 6b27acbd
      unknown authored
      Now it supports queries returning several results
      (particularly important with the SP)
      
      
      include/mysql.h:
        embedded_query_result structure added
      libmysql/libmysql.c:
        embedded-server related fixes
      libmysqld/emb_qcache.cc:
        multiple-result support added
      libmysqld/embedded_priv.h:
        embedded_query_result struct implemented
      libmysqld/lib_sql.cc:
        multiple-result support added
      libmysqld/libmysqld.c:
        small fixes
      mysql-test/t/backup.test:
        test fixed
      mysql-test/t/binlog_stm_binlog.test:
        test fixed
      mysql-test/t/binlog_stm_blackhole.test:
        test fixed
      mysql-test/t/binlog_stm_ctype_cp932.test:
        test fixed
      mysql-test/t/compress.test:
        test fixed
      mysql-test/t/delayed.test:
        test fixed
      mysql-test/t/federated.test:
        test fixed
      mysql-test/t/federated_archive.test:
        test fixed
      mysql-test/t/federated_bug_13118.test:
        test fixed
      mysql-test/t/federated_transactions.test:
        test fixed
      mysql-test/t/flush_table.test:
        test fixed
      mysql-test/t/handler.test:
        test fixed
      mysql-test/t/init_connect.test:
        test fixed
      mysql-test/t/innodb.test:
        test fixed
      mysql-test/t/mysql.test:
        test fixed
      mysql-test/t/mysql_client_test.test:
        test fixed
      mysql-test/t/mysqltest.test:
        test fixed
      mysql-test/t/query_cache.test:
        test fixed
      mysql-test/t/query_cache_notembedded.test:
        test fixed
      mysql-test/t/read_only.test:
        test fixed
      mysql-test/t/skip_grants.test:
        test fixed
      mysql-test/t/sp-destruct.test:
        test fixed
      mysql-test/t/sp-error.test:
        test fixed
      mysql-test/t/sp-threads.test:
        test fixed
      mysql-test/t/sp.test:
        test fixed
      mysql-test/t/view.test:
        test fixed
      mysql-test/t/wait_timeout.test:
        test fixed
      sql-common/client.c:
        small fixes
      sql/mysqld.cc:
        embedded-server related fix
      sql/protocol.cc:
        embedded-server related fix
      sql/protocol.h:
        embedded-server related fix
      sql/sql_class.cc:
        embedded-server related fix
      sql/sql_class.h:
        embedded-server related fix
      sql/sql_cursor.cc:
        embedded-server related fix
      sql/sql_parse.cc:
        embedded-server related fix
      sql/sql_prepare.cc:
        embedded-server related fix
      6b27acbd
    • unknown's avatar
      cleanup · 88469c80
      unknown authored
      include/my_sys.h:
        sort_dynamic()
      mysys/my_once.c:
        MY_ZEROFILL support in my_once_alloc
      plugin/fulltext/Makefile.am:
        no lib prefix for modules. really build .so
      scripts/mysql_create_system_tables.sh:
        remove obsolete syntax (and warnings)
      sql/sql_parse.cc:
        don't call add_to_status/bzero in a loop
      88469c80
  27. 03 Jan, 2006 1 commit
    • unknown's avatar
      many warnings (practically safe but annoying) corrected · 307c0b77
      unknown authored
      client/mysqladmin.cc:
        don't use the handler after it's closed
      client/mysqlbinlog.cc:
        memory leak
      client/mysqldump.c:
        many "ignore return value" warnings, one "NULL dereference"
      cmd-line-utils/libedit/history.c:
        memory leak
      include/my_base.h:
        cleanup
      libmysql/libmysql.c:
        "return value ignored" warning
      myisam/mi_delete.c:
        "return value ignored" warning
      myisam/myisampack.c:
        "out-of-bound access" warning
      myisam/sort.c:
        "double free" warning
      mysys/default_modify.c:
        "double free" warning
      mysys/mf_iocache2.c:
        "return value ignored" warnings
      mysys/my_bitmap.c:
        s/return/DBUG_RETURN/
      mysys/my_error.c:
        memory leak
      server-tools/instance-manager/parse.cc:
        "NULL dereference" warning
      sql-common/client.c:
        "NULL dereference" warning
      sql/field.cc:
        deadcode, "NULL dereference", "uninitialized" warnings
      sql/field.h:
        unused parameters removed from constructor
      sql/ha_myisam.cc:
        "return value ignored" warnings
      sql/item.cc:
        "return value ignored" warnings
        changed constructor
      sql/item_func.cc:
        "return value ignored" warnings
      sql/log_event.cc:
        uninitialized warning
      sql/opt_range.cc:
        "double free" and uninitialized warnings
      sql/opt_range.h:
        "return value ignored" warning
      sql/repl_failsafe.cc:
        "return value ignored" warning
      sql/set_var.cc:
        "return value ignored" warning
      sql/slave.cc:
        "return value ignored" warnings
      sql/slave.h:
        new prototype
      sql/sql_acl.cc:
        deadcode and "NULL dereference" warnings
      sql/sql_db.cc:
        "return value ignored" warning
      sql/sql_handler.cc:
        "NULL dereference" warning
      sql/sql_help.cc:
        "NULL dereference" warning
      sql/sql_insert.cc:
        "return value ignored" warning
      sql/sql_parse.cc:
        "return value ignored" warning
        one more DBUG_ASSERT
      sql/sql_repl.cc:
        "return value ignored" and memory leak warnings
      sql/sql_show.cc:
        "return value ignored" and "NULL dereference"  warnings
      sql/sql_test.cc:
        "return value ignored" warning
      sql/table.cc:
        memory leak
      sql/uniques.cc:
        "return value ignored" warning
        endspaces deleted
      307c0b77
  28. 28 Dec, 2005 1 commit
    • unknown's avatar
      WL #1034 (update) · 3a12408a
      unknown authored
      - improve the stability of the executor
      - make create event if not exists work as before
      
      
      sql/event.cc:
        refactoring:
        - have only 1 routine for comparing TIME structures 
        fix:
        - after previous refactoring IF NOT EXISTS of CREATE EVENT did not work 
          anymore. Now it will work.
      sql/event.h:
        update definitions
      sql/event_executor.cc:
        - don't load DISABLED events
        - if an event is being disabled because of time restrictions - drop it from the 
          prio queue
        - move dropping to the worker process
      sql/event_priv.h:
        - remove unneeded func
      sql/share/errmsg.txt:
        fix error message
      sql/sql_parse.cc:
        - support 0 rows affected when CREATE EVENT IF NOT EXISTS
      3a12408a