An error occurred fetching the project authors.
  1. 13 Sep, 2005 1 commit
    • unknown's avatar
      Bug#9683 INFORMATION_SCH: Creation of temporary table allowed in · 553d6985
      unknown authored
               Information_schema DB 
      Bug#9846 Inappropriate error displayed while
               dropping table from 'INFORMATION_SCHEMA'
      Bug#10734 Grant of privileges other than 'select' and 
               'create view' should fail on schema 
      Bug#10708 SP's can use INFORMATION_SCHEMA as ROUTINE_SCHEMA
      
       cumulative fix for bugs above(after review, 2nd version)
       added privilege check for information schema db & tables
      
      553d6985
  2. 18 Jul, 2005 1 commit
    • unknown's avatar
      Fix for BUG#12003 "assertion failure in testsuite (double lock of · 47edc3fb
      unknown authored
       LOCK_thread_count)" and for BUG#12004 "SHOW BINARY LOGS reports 0
      for the size of all binlogs but the current one".
      There are a lot of 4.1->5.0 unmerged changes (hardest are in the optimizer), can't merge; still pushing in 4.1 because my changes 
      are very small. Feel free to ask me if you have problems merging them.
      
      
      mysql-test/r/rpl_log.result:
        correcting binlog sizes
      mysql-test/r/rpl_rotate_logs.result:
        correcting binlog sizes
      sql/mysqld.cc:
        don't lock LOCK_thread_count when you already have it
      sql/sql_repl.cc:
        my_open() needs the complete name, not only the base name
      47edc3fb
  3. 07 Jun, 2005 1 commit
    • unknown's avatar
      Patch two (the final one) for Bug#7306 "the server side preparedStatement · 59544040
      unknown authored
       error for LIMIT placeholder".
      The patch adds grammar support for LIMIT ?, ? and changes the
      type of ST_SELECT_LEX::select_limit,offset_limit from ha_rows to Item*,
      so that it can point to Item_param.
      
      
      mysql-test/include/ps_modify.inc:
        Fix existing tests: now LIMIT can contain placeholders.
      mysql-test/include/ps_query.inc:
        Fix existing tests: now LIMIT can contain placeholders.
      mysql-test/r/ps.result:
        Add basic test coverage for LIMIT ?, ? and fix test results.
      mysql-test/r/ps_2myisam.result:
        Fix test results: now LIMIT can contain placeholders.
      mysql-test/r/ps_3innodb.result:
        Fix test results: now LIMIT can contain placeholders.
      mysql-test/r/ps_4heap.result:
        Fix test results: now LIMIT can contain placeholders.
      mysql-test/r/ps_5merge.result:
        Fix test results: now LIMIT can contain placeholders.
      mysql-test/r/ps_6bdb.result:
        Fix test results: now LIMIT can contain placeholders.
      mysql-test/r/ps_7ndb.result:
        Fix test results: now LIMIT can contain placeholders.
      mysql-test/t/ps.test:
        Add basic test coverage for LIMIT ?, ?.
      sql/item.h:
        Add a short-cut for (ulonglong) val_int() to Item.
        Add a constructor to Item_int() that accepts ulonglong.
        Simplify Item_uint constructor by using the c-tor above.
      sql/item_subselect.cc:
        Now select_limit has type Item *.
        We can safely create an Item in Item_exists_subselect::fix_length_and_dec():
        it will be allocated in runtime memory root and freed in the end of
        execution.
      sql/sp_head.cc:
        Add a special initalization state for stored procedures to 
        be able to easily distinguish the first execution of a stored procedure
        from prepared statement prepare.
      sql/sql_class.h:
        Introduce new state 'INITIALIZED_FOR_SP' to be able to easily distinguish
        the first execution of a stored procedure from prepared statement prepare.
      sql/sql_derived.cc:
        - use unit->set_limit() to set unit->select_limit_cnt, offset_limit_cnt
          evreryplace. Add a warning about use of set_limit in 
        mysql_derived_filling.
      sql/sql_error.cc:
        - use unit->set_limit() to set unit->select_limit_cnt, offset_limit_cnt
          evreryplace.
        - this change is also aware of bug#11095 "show warnings limit 0 returns 
        all rows instead of zero rows", so the one who merges the bugfix from
        4.1 can use local version of sql_error.cc.
      sql/sql_handler.cc:
        - use unit->set_limit() to initalize 
        unit->select_limit_cnt,offset_limit_cnt everyplace.
      sql/sql_lex.cc:
        Now ST_SELECT_LEX::select_limit, offset_limit have type Item *
      sql/sql_lex.h:
        Now ST_SELECT_LEX::select_limit, offset_limit have type Item *
      sql/sql_parse.cc:
        - use unit->set_limit() to initalize 
        unit->select_limit_cnt,offset_limit_cnt everyplace. 
        - we can create an Item_int to set global limit of a statement:
        it will be created in the runtime mem root and freed in the end of
        execution.
      sql/sql_repl.cc:
        Use unit->set_limit to initialize limits.
      sql/sql_select.cc:
        - select_limit is now Item* so the proper way to check for default value
        is to compare it with NULL.
      sql/sql_union.cc:
        Evaluate offset_limit_cnt using the new type of ST_SELECT_LEX::offset_limit
      sql/sql_view.cc:
        Now ST_SELECT_LEX::select_limit, offset_limit have type Item *
      sql/sql_yacc.yy:
        Add grammar support for LIMIT ?, ? clause.
      59544040
  4. 03 Jun, 2005 1 commit
    • unknown's avatar
      sql_repl.cc: · 28c58b05
      unknown authored
        Bug #11064  	some read error not detected in replication on 64-bit platform
      
      
      sql/sql_repl.cc:
        Bug #11064  	some read error not detected in replication on 64-bit platform
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      28c58b05
  5. 02 Jun, 2005 1 commit
    • unknown's avatar
      Mainly cleanups for gcc 4.0. Some small pieces from looking at -Wall. Removed... · 7566990d
      unknown authored
      Mainly cleanups for gcc 4.0. Some small pieces from looking at -Wall. Removed a number of dumb things in ha_tina.
      
      
      client/mysqladmin.cc:
        gcc 4.0 fix
      sql/examples/ha_archive.cc:
        Bunch of little cleanups from -Wall and gcc 4.0 fixes
      sql/examples/ha_example.cc:
        Noticed that the error call was not quite right.
      sql/examples/ha_tina.cc:
        Bunch of cleanups (many of which were quite dumb of me... and I have no earthly idea how they missed everyone's notice).
      sql/ha_heap.cc:
        Removed unused variable (-Wall find)
      sql/item_subselect.cc:
        Removed unused label.
      sql/mysqld.cc:
        Cleanup of unused function and gcc 4.0 bit.
      sql/opt_range.h:
        Cleanup for gcc 4.0
      sql/repl_failsafe.cc:
        Cleanup for gcc 4.0
      sql/slave.cc:
        Cleanup for gcc 4.0
      sql/sql_acl.cc:
        Cleanup for gcc 4.0
      sql/sql_insert.cc:
        Cleanedup for gcc 4.0
      sql/sql_parse.cc:
        Cleanedup for gcc 4.0
      sql/sql_repl.cc:
        Removed unused variable
      sql/sql_select.cc:
        Cleanedup for gcc 4.0
      7566990d
  6. 25 May, 2005 1 commit
    • unknown's avatar
      Cleanup during code review · ad519b77
      unknown authored
      Faster detection of wrong table names (like PRN) on windows
      
      
      include/my_sys.h:
        Added check_if_legal_filename()
      mysys/my_access.c:
        Added check_if_legal_filename()
        Set errno if my_access() fails
      mysys/my_fopen.c:
        USe check_if_legal_filename() instead of my_access() to detect wrong file names on windows
      mysys/my_open.c:
        USe check_if_legal_filename() instead of my_access() to detect wrong file names on windows
      sql/sql_lex.cc:
        Portability fix
      sql/sql_parse.cc:
        Simple cleanup
      sql/sql_repl.cc:
        Cleanup during code review
      ad519b77
  7. 19 May, 2005 1 commit
    • unknown's avatar
      CSC#4944: Adding File_size to output of SHOW BINARY lOGS · fe60e157
      unknown authored
      mysql-test/r/rpl_log.result:
        Adding File_size to output of SHOW BINARY lOGS
      mysql-test/r/rpl_rotate_logs.result:
        Adding File_size to output of SHOW BINARY lOGS
      sql/sql_repl.cc:
        Adding File_size to output of SHOW BINARY lOGS
      fe60e157
  8. 27 Apr, 2005 1 commit
    • unknown's avatar
      sql_repl.cc: · b8413048
      unknown authored
        Remove printf's from semi-sync code in sql_repl.cc
      
      
      sql/sql_repl.cc:
        Remove printf's from semi-sync code in sql_repl.cc
      b8413048
  9. 20 Apr, 2005 1 commit
    • unknown's avatar
      Many files: · 9a4bb471
      unknown authored
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      
      
      sql/ha_innodb.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/handler.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/mysqld.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/set_var.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/sql_repl.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/ha_innodb.h:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/handler.h:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      9a4bb471
  10. 16 Mar, 2005 1 commit
    • unknown's avatar
      WL#874 "Extended LOAD DATA". · fc573786
      unknown authored
      Now one can use user variables as target for data loaded from file
      (besides table's columns). Also LOAD DATA got new SET-clause in which
      one can specify values for table columns as expressions.
      
      For example the following is possible:
      LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
      
      This patch also implements new way of replicating LOAD DATA.
      Now we do it similarly to other queries.
      We store LOAD DATA query in new Execute_load_query event
      (which is last in the sequence of events representing LOAD DATA).
      When we are executing this event we simply rewrite part of query which
      holds name of file (we use name of temporary file) and then execute it
      as usual query. In the beggining of this sequence we use Begin_load_query
      event which is almost identical to Append_file event
      
      
      client/mysqlbinlog.cc:
        Added support of two new binary log events Begin_load_query_log_event and
        Execute_load_query_log_Event which are used to replicate LOAD DATA INFILE.
      mysql-test/r/ctype_ucs.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/insert_select.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/loaddata.result:
        Added tests for new LOAD DATA features.
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results (don't dare to get rid from binlog positions
        completely since it seems that this test uses them).
      mysql-test/r/mysqlbinlog.result:
        New approach for binlogging of LOAD DATA statement. Now we store it as
        usual query and rewrite part in which file is specified when needed.
        So now mysqlbinlog output for LOAD DATA much more closer to its initial
        form. Updated test'd results accordingly.
      mysql-test/r/mysqldump.result:
        Made test more robust to other tests failures.
      mysql-test/r/rpl000015.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_change_master.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results.
      mysql-test/r/rpl_charset.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly
      mysql-test/r/rpl_deadlock.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly
      mysql-test/r/rpl_error_ignored_table.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_flush_log_loop.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_flush_tables.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_loaddata.result:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Updated test's results wwith new binlog positions.
      mysql-test/r/rpl_loaddata_rule_m.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
        Since now LOAD DATA is replicated much in the same way as usual query
        --binlog_do/ignore_db work for it inthe same way as for usual queries.
      mysql-test/r/rpl_loaddata_rule_s.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_loaddatalocal.result:
        Added nice test for case when it is important that LOAD DATA LOCAL
        ignores duplicates.
      mysql-test/r/rpl_log.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly (don't dare to get rid from binlog 
        positions completely since it seems that this test uses them).
      mysql-test/r/rpl_log_pos.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_max_relay_size.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_multi_query.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_relayrotate.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_replicate_do.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_reset_slave.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_rotate_logs.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_server_id1.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_server_id2.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_temporary.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_timezone.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_until.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly and tweaked test a bit to bring it
        back to good shape.
      mysql-test/r/rpl_user_variables.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/user_var.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/t/ctype_ucs.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/insert_select.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/loaddata.test:
        Added test cases for new LOAD DATA functionality.
      mysql-test/t/mix_innodb_myisam_binlog.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/mysqlbinlog.test:
        New way of replicating LOAD DATA local. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Thus we need new binlog positions for LOAD DATA events.
      mysql-test/t/mysqlbinlog2.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/mysqldump.test:
        Made test more robust for failures of other tests.
      mysql-test/t/rpl_charset.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_deadlock.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_error_ignored_table.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/rpl_flush_tables.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_loaddata.test:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Apropritely updated comments in test.
      mysql-test/t/rpl_loaddata_rule_m.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar 
        changes.
        Since now LOAD DATA is replicated much in the same way as usual query
        --binlog_do/ignore_db work for it inthe same way as for usual queries.
      mysql-test/t/rpl_loaddata_rule_s.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_loaddatalocal.test:
        Added nice test for case when it is important that LOAD DATA LOCAL
        ignores duplicates.
      mysql-test/t/rpl_log.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly (don't dare to get rid from binlog positions
        completely since it seems that this test uses them).
      mysql-test/t/rpl_log_pos.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_multi_query.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_temporary.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_timezone.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_until.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and tweaked it a bit to bring it back to good
        shape.
      mysql-test/t/rpl_user_variables.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/user_var.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      sql/item_func.cc:
        Added Item_user_var_as_out_param class that represents user variable
        which used as out parameter in LOAD DATA.
        
        Moved code from Item_func_set_user_var::update_hash() function to
        separate static function to be able to reuse it in this new class.
      sql/item_func.h:
        Added Item_user_var_as_out_param class that represents user variable
        which used as out parameter in LOAD DATA.
      sql/log_event.cc:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/log_event.h:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/mysql_priv.h:
        Now mysql_load() has two more arguments. They are needed to pass list of
        columns and corresponding expressions from new LOAD DATA's SET clause.
      sql/share/errmsg.txt:
        Added new error message which is used to forbid loading of data from
        fixed length rows to variables.
      sql/sql_lex.h:
        Added LEX::fname_start/fname_end members. 
        They are pointers to part of LOAD DATA statement which should be
        rewritten during replication (file name + little extra).
      sql/sql_load.cc:
        Added support for extended LOAD DATA. 
        Now one can use user variables as target for data loaded from file 
        (besides table's columns). Also LOAD DATA got new SET-clause in which
        one can specify values for table columns as expressions.
        
        Updated mysql_load()/read_fixed_length()/read_sep_field() to support
        this functionality (now they can read data from file to both columns and
        variables and assign do calculations and assignments specified in SET
        clause).
        
        We also use new approach for LOAD DATA binlogging/replication.
      sql/sql_parse.cc:
        mysql_execute_command():
          Since now we have SET clause in LOAD DATA we should also check
          permissions for tables used in its expressions. Also mysql_load()
          has two more arguments to pass information about this clause.
      sql/sql_repl.cc:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/sql_repl.h:
        struct st_load_file_info:
          Removed memebers which are no longer needed for LOAD DATA binnlogging.
      sql/sql_yacc.yy:
        Added support for extended LOAD DATA syntax. Now one can use
        user variables as target for data loaded from file (besides table's 
        columns). Also LOAD DATA got new SET-clause in which one can specify
        values for table columns as expressions.
        
        For example the following is possible:
        LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
        
        Also now we save pointers to the beginning and to the end of part of 
        LOAD DATA statement which should be rewritten during replication.
      fc573786
  11. 14 Mar, 2005 1 commit
    • unknown's avatar
      sql/log.cc · 5daf3443
      unknown authored
          don't set LOG_EVENT_BINLOG_IN_USE_F for relay logs
      sql/sql_repl.cc
          clear LOG_EVENT_BINLOG_IN_USE_F flag before sending an event to a slave
      
      
      sql/log.cc:
        don't set LOG_EVENT_BINLOG_IN_USE_F for relay logs
      sql/sql_repl.cc:
        clear LOG_EVENT_BINLOG_IN_USE_F flag before sending an event to a slave
      5daf3443
  12. 02 Mar, 2005 1 commit
    • unknown's avatar
      bug#8151 - truncate leaves a transaction open · b5f5cb7c
      unknown authored
      deadlock in MYSQL_LOG::new_file()
      style fixes
      
      
      mysql-test/r/innodb.result:
        one more test for truncate
      mysql-test/t/innodb.test:
        one more test for truncate
      sql/ha_innodb.cc:
        bug#8151 - truncate leaves a transaction open
      sql/handler.cc:
        bug#8151 - truncate leaves a transaction open
      sql/item.h:
        style fix
      sql/item_cmpfunc.cc:
        style fix
      sql/item_cmpfunc.h:
        style fix
      sql/item_func.cc:
        style fix
      sql/item_func.h:
        style fix
      sql/log.cc:
        let new_file() to lock LOCK_index,
        don't check for prepared_xids in rotate_and_purge()
        increase thread_safe_increment when LOCK_log is taken
      sql/log_event.cc:
        mysqlbinlog now prints a warning if binlog was not closed properly
      sql/sql_class.h:
        comments
      sql/sql_repl.cc:
        DBUG_ENTER tag corrected
      b5f5cb7c
  13. 28 Feb, 2005 2 commits
    • unknown's avatar
      Fixed BUG#7646: Stored procedure hang if show binlog events · f93a08ee
      unknown authored
        Return false from show_binlog_events() if successful, otherwise stored
        procedures will think it failed.
      
      
      sql/sql_repl.cc:
        Return false from show_binlog_events() if successful, otherwise stored
        procedures will think it failed.
      f93a08ee
    • unknown's avatar
      Fixed wrong memory references found by purify · d2ce2d2e
      unknown authored
      (No really critical errors found, but a few possible wrong results)
      
      
      innobase/dict/dict0dict.c:
        Replace memcmp with comparison of characters to avoid warnings from purify when 'sptr' points to a very short string
      mysql-test/r/select_found.result:
        Add missing drop table
      mysql-test/r/type_set.result:
        More tests
      mysql-test/t/select_found.test:
        Add missing drop table
      mysql-test/t/type_set.test:
        More tests
      mysys/my_init.c:
        Avoid warning from purify (purify doesn't handle getrusage() properly)
      sql/field.h:
        enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters
      sql/filesort.cc:
        enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters
      sql/item_cmpfunc.cc:
        Fixed warning from purify. (Not critical as the arguments are passed to a function but not used)
        Allocate Arg_comparator() with 'new' instead of sql_alloc() to ensure proper initialization
      sql/mysqld.cc:
        Wait for signal handler to stop when running --bootstrap
        (Fixes warning from purify)
      sql/sql_insert.cc:
        Initialize slot used by innodb.cc (not critical)
      sql/sql_lex.h:
        Better comments
      sql/sql_repl.cc:
        memcmp -> bcmp() to avoid warning from purify
      sql/sql_select.cc:
        Fix for out-of-bound memory reference when doing DISTINCT on const expressions
      strings/ctype-simple.c:
        Fixes to not access uninitialized memory
        (Not critical)
      d2ce2d2e
  14. 21 Feb, 2005 1 commit
    • unknown's avatar
      Review of new pushed code (XA & other) · 7f54e80d
      unknown authored
      Portability fixes and cleanups
      Fixed setting of 'res' in mysql_execute_command()
      
      
      sql/handler.cc:
        delete_table() will not return error for not found files if one handler file was found and deleted
      sql/handler.h:
        Incremented MAX_HA so that ndb works again
        Don't convert char pointer to (my_xid*) as we don't know if the address is aligned on 8
      sql/log.cc:
        Indentation fixes
        Simplified loop to find next log
        Fixed race condition in reset_logs that caused mix_innodb_myisam_binlog to fail
      sql/log_event.cc:
        Don't convert char pointer to (my_xid*) as we don't know if the address is aligned on 8
      sql/sql_acl.cc:
        Convert db name directly to avoid extra strmov
      sql/sql_base.cc:
        Added comment
        Removed not needed code
      sql/sql_db.cc:
        Added comment
        Remove not needed code
      sql/sql_parse.cc:
        Always call mysql_rm_db() with lower case db name
        Ensure that 'res' is set correctly in mysql_execute_command()
        (One don't have to set res if one calls my_error() and res should be = 0 for correct commands)
      sql/sql_repl.cc:
        Indentation fixes
        use packet->ptr() instead of packet->c_ptr()
      sql/sql_table.cc:
        Join similar code when table didn't exist in engine
      7f54e80d
  15. 17 Feb, 2005 1 commit
  16. 09 Feb, 2005 1 commit
    • unknown's avatar
      auto-ROLLBACK if binlog was not closed properly · f3855774
      unknown authored
      auto-commit on Xid_log_event
      
      
      client/mysqlbinlog.cc:
        auto-ROLLBACK if binlog was not closed properly.
      mysql-test/r/ctype_ucs.result:
        results updated
      mysql-test/r/mix_innodb_myisam_binlog.result:
        results updated
      mysql-test/r/mysqlbinlog2.result:
        results updated
      mysql-test/r/rpl_relayrotate.result:
        results updated
      mysql-test/r/user_var.result:
        results updated
      mysql-test/t/ctype_ucs.test:
        finalize binlog before calling mysqlbinlog
      mysql-test/t/user_var.test:
        finalize binlog before calling mysqlbinlog
      sql/log_event.cc:
        commit at Xid_log_event
        comments edited
      sql/mysqld.cc:
        free(0) fixed
      sql/slave.cc:
        rollback at fake Rotate_log_event
      sql/sql_class.h:
        no commit_or_rollback argument for binlog->write(THD *thd, IO_CACHE *cache)
      sql/log.cc:
        don't write "COMMIT" query, Xid_log_event is enough
      sql/log_event.h:
        more comments for LOG_EVENT_BINLOG_IN_USE_F
        LOG_EVENT_FORCE_ROLLBACK_F added
      sql/sql_repl.cc:
        rollback at Rotate_log_event.
        don't consider binlog corrupted if it was open when we read Formar_description but closed when we got to the end
      sql/sql_repl.h:
        style fix
      f3855774
  17. 16 Jan, 2005 1 commit
    • unknown's avatar
      XA (not completely polished out yet) · 63120ffe
      unknown authored
      include/my_pthread.h:
        cleanup. don't use gcc extensions
      innobase/include/trx0sys.ic:
        Jan's fix for innobase_xa_prepare
      innobase/read/read0read.c:
        Jan's fix for innobase_xa_prepare
      innobase/trx/trx0trx.c:
        Jan's fix for innobase_xa_prepare
      mysql-test/include/varchar.inc:
        test fix
      mysql-test/r/ctype_ucs.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/drop_temp_table.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/insert_select.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/mix_innodb_myisam_binlog.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/myisam.result:
        test fix
      mysql-test/r/rpl000015.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_change_master.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_charset.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_error_ignored_table.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_flush_log_loop.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_flush_tables.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata_rule_m.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata_rule_s.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_log.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_log_pos.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_max_relay_size.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_relayrotate.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_replicate_do.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_reset_slave.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_rotate_logs.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_server_id1.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_server_id2.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_temporary.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_timezone.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_until.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_user_variables.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/user_var.result:
        new log event - all binlog positions are changed :(
      mysql-test/t/ctype_ucs.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mix_innodb_myisam_binlog.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mysqlbinlog.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mysqlbinlog2.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_charset.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_error_ignored_table.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_loaddata_rule_m.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_loaddata_rule_s.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_log.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_log_pos.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_user_variables.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/user_var.test:
        new log event - all binlog positions are changed :(
      mysys/hash.c:
        typo fixed
      sql/ha_berkeley.cc:
        handlerton framework
      sql/ha_berkeley.h:
        handlerton framework
      sql/ha_innodb.cc:
        handlerton framework
      sql/ha_innodb.h:
        handlerton framework
      sql/handler.cc:
        new transaction handling, handlerton framework, two-phase commit, XA support
      sql/handler.h:
        new transaction handling, handlerton framework, two-phase commit, XA support
      sql/lex.h:
        XA commands
      sql/log.cc:
        new transaction handling, handlerton framework, two-phase commit,
        XA support, tc-logging, TC_LOG_MMAP class
      sql/log_event.cc:
        Xid_log_event
      sql/log_event.h:
        Xid_log_event, LOG_EVENT_BINLOG_CLOSED_F flag
      sql/mysql_priv.h:
        wrapper for query_id++
      sql/mysqld.cc:
        new command-line options --log-tc, --log-tc-size, --tc-heuristic-recover,
        new status variables Tc_log_page_size, Tc_log_max_pages_used, Tc_log_page_waits.
        init/stop tc logging
      sql/set_var.h:
        warning fixed
      sql/share/errmsg.txt:
        XA error messages
      sql/sp_head.cc:
        s/query_id++/next_query_id()/
      sql/sql_base.cc:
        typo fixed. new transaction handling.
      sql/sql_class.cc:
        cleanup of THD.transaction
      sql/sql_class.h:
        TC_LOG classes, new status variables, new savepoint handling, XA support
      sql/sql_insert.cc:
        comments
      sql/sql_lex.cc:
        s/found_colon/found_semicolon/
      sql/sql_lex.h:
        SQLCOM_XA_xxx, XA related changes in Lex
      sql/sql_parse.cc:
        cleanup, XA commands, new savepoint handling
      sql/sql_repl.cc:
        two functions moved to log.cc
      sql/sql_repl.h:
        two functions moved to log.cc
      sql/sql_trigger.cc:
        s/lex.name_and_length/lex.ident/
      sql/sql_yacc.yy:
        XA commands, cleanup
      63120ffe
  18. 31 Dec, 2004 1 commit
    • unknown's avatar
      Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag · 9ceb74f5
      unknown authored
      This allows use to use INSERT IGNORE ... ON DUPLICATE ...
      
      
      mysql-test/r/drop.result:
        safety fix
      mysql-test/t/drop.test:
        safety fix
      mysql-test/t/multi_update.test:
        ensure we cover all possible errors
      sql/log_event.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/log_event.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/mysql_priv.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_class.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_delete.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_insert.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_load.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_parse.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_select.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_table.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_union.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_update.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_yacc.yy:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      9ceb74f5
  19. 16 Dec, 2004 1 commit
    • unknown's avatar
      A change of behaviour of Seconds_Behind_Master from SHOW SLAVE STATUS. It's going into 4.1 · b3d56a7d
      unknown authored
      because old behaviour was somewhat nonsensical (kind of bug). Changes are that if repl threads are
      down or disconnected the column will be NULL, and if master is idle the column will not grow indefinitely anymore.
      
      
      sql/slave.cc:
        mi->slave_running and rli->slave_running now uints (was needed only for mi but because of start_slave_thread() usage,
        had to change both).
        So mi->slave_running can now take 3 values: not running, running & not connected, running and connected.
        The last value serves for calculation of Seconds_Behind_Master in SHOW SLAVE STATUS.
        Changing this column's behaviour: if SQL or I/O thread is not running, or if I/O thread is not connected
        (for example if it is reconnecting), it's NULL (to mean "unknown"). And if master is idle, the column will
        not grow indefinitely like it used to (that was meaningless); this is fixed by forcing a value of 0
        when the slave SQL thread has hit EOF of relay log (which has only a limited number of caveats explained
        in comments in code).
      sql/slave.h:
        slave_running used to be bool but we need to distinguish, for the I/O slave thread, between 
        "running & connected" and "running & not connected" ("running" means the thread exists).
      sql/sql_repl.cc:
        we don't need anymore to set rli->last_master_timestamp to 0 (we used that to make Seconds_Behind_Master
        be NULL) in RESET SLAVE and CHANGE MASTER, as these commands imply that slave threads are not running
        and so Seconds_Behind_Master is already NULL because of that.
      b3d56a7d
  20. 09 Dec, 2004 1 commit
    • unknown's avatar
      Fix for bug #6765 "Implicit access to time zone description · 7b96bc55
      unknown authored
      tables requires privileges for them if some table or column level grants
      present" (with after-review fixes).
      
      We should set SELECT_ACL for implicitly opened tables in 
      my_tz_check_n_skip_implicit_tables() to be able to bypass privilege
      checking in check_grant(). Also we should exclude those tables from
      privilege checking in multi-update.
      
      
      mysql-test/r/timezone2.result:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      mysql-test/t/timezone2.test:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      sql/item_geofunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/item_strfunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/log.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/mysql_priv.h:
        Now we have to include sql_acl.h before tztime.h, since 
        my_tz_check_n_skip_implicit_tables() defined there requires
        SELECT_ACL constant defined in sql_acl.h.
      sql/mysqld.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/repl_failsafe.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/set_var.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_acl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_base.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_cache.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_class.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_db.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_derived.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_do.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_insert.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_parse.cc:
        check_one_table_access(): Tweaked comments.
        multi_update_precheck(): Added skipping of implicitly opened tables
          during privilege checking.
      sql/sql_prepare.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_repl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_show.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_update.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_yacc.yy:
        sql_acl.h is now included via mysql_priv.h
      sql/tztime.h:
        my_tz_check_n_skip_implicit_tables():
          We should set SELECT_ACL for implictly opened tables to be able to
          bypass privilege checking in check_grant().
      7b96bc55
  21. 25 Nov, 2004 1 commit
    • unknown's avatar
      Fix for Bug#6148. Only rewind read position in binary log when the · 324b3a45
      unknown authored
      slave SQL thread is started.
      
      
      sql/slave.cc:
        Adding threads to init as parameter to init_master_info.
        Only rewind read position when starting SQL thread.
      sql/slave.h:
        Adding threads to init as parameter to init_master_info.
        Only rewind read position when starting SQL thread.
      sql/sql_repl.cc:
        Adding threads to init as parameter to init_master_info.
        Only rewind read position when starting SQL thread.
      sql/repl_failsafe.cc:
        Adding threads to init as parameter to init_master_info.
        Only rewind read position when starting SQL thread.
      324b3a45
  22. 13 Nov, 2004 1 commit
    • unknown's avatar
      now my_printf_error is not better then my_error, but my_error call is shorter · 065a55e8
      unknown authored
      used only one implementation of format parser of (printf)
      fixed multistatement
      
      
      include/mysqld_error.h:
        newerror messages
      mysql-test/t/key.test:
        unknown error replaced with real error
      mysys/my_error.c:
        my_error & my_printf_error use my_vsprintf
      sql/field_conv.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/ha_innodb.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/handler.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/item.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/item_cmpfunc.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/item_func.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/item_strfunc.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/lock.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/log.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/parse_file.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/procedure.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/protocol.cc:
        no need reset thd->lex->found_colon to break multiline sequance now, send_error called too late
      sql/repl_failsafe.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/set_var.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/share/czech/errmsg.txt:
        new errors converted from unknown error
      sql/share/danish/errmsg.txt:
        new errors converted from unknown error
      sql/share/dutch/errmsg.txt:
        new errors converted from unknown error
      sql/share/english/errmsg.txt:
        new errors converted from unknown error
      sql/share/estonian/errmsg.txt:
        new errors converted from unknown error
      sql/share/french/errmsg.txt:
        new errors converted from unknown error
      sql/share/german/errmsg.txt:
        new errors converted from unknown error
      sql/share/greek/errmsg.txt:
        new errors converted from unknown error
      sql/share/hungarian/errmsg.txt:
        new errors converted from unknown error
      sql/share/italian/errmsg.txt:
        new errors converted from unknown error
      sql/share/japanese/errmsg.txt:
        new errors converted from unknown error
      sql/share/korean/errmsg.txt:
        new errors converted from unknown error
      sql/share/norwegian-ny/errmsg.txt:
        new errors converted from unknown error
      sql/share/norwegian/errmsg.txt:
        new errors converted from unknown error
      sql/share/polish/errmsg.txt:
        new errors converted from unknown error
      sql/share/portuguese/errmsg.txt:
        new errors converted from unknown error
      sql/share/romanian/errmsg.txt:
        new errors converted from unknown error
      sql/share/russian/errmsg.txt:
        new errors converted from unknown error
      sql/share/serbian/errmsg.txt:
        new errors converted from unknown error
      sql/share/slovak/errmsg.txt:
        new errors converted from unknown error
      sql/share/spanish/errmsg.txt:
        new errors converted from unknown error
      sql/share/swedish/errmsg.txt:
        new errors converted from unknown error
      sql/share/ukrainian/errmsg.txt:
        new errors converted from unknown error
      sql/slave.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sp.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sp_head.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_acl.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_analyse.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_base.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_class.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_db.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_delete.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_handler.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_insert.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_load.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_map.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_parse.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
        multi-row command fixed
      sql/sql_prepare.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
        remover send_error ingected from 4.1
      sql/sql_rename.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_repl.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_select.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_show.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_table.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_trigger.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_udf.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_update.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_view.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_yacc.yy:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/table.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      strings/my_vsnprintf.c:
        * format support added to my_vsprint
      065a55e8
  23. 12 Nov, 2004 1 commit
    • unknown's avatar
      post-review fixes · a31c2d3d
      unknown authored
      mysql-test/r/rpl_rotate_logs.result:
        removed host dependence in error messages
      mysql-test/t/rpl_rotate_logs.test:
        removed host dependence in error messages
      mysys/my_error.c:
        comment about using my_error family functions
      sql/filesort.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/ha_innodb.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/handler.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_cmpfunc.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_func.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_strfunc.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_subselect.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_sum.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/lock.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/log.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/mysql_priv.h:
        error check moved to fill_record
      sql/mysqld.cc:
        fixed error messages
      sql/parse_file.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/protocol.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/protocol_cursor.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/repl_failsafe.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/set_var.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/slave.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sp.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sp_head.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sp_rcontext.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_acl.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_analyse.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_base.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
        error check moved to fill_record
      sql/sql_class.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_class.h:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_db.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_delete.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
        error check moved to fill_record
      sql/sql_handler.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_help.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_insert.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
        error check moved to fill_record
      sql/sql_lex.cc:
        layout fixed
      sql/sql_load.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_map.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_parse.cc:
        error check moved to fill_record
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_prepare.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_rename.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_repl.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_select.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_show.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_table.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_trigger.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_udf.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_union.cc:
        error check moved to fill_record
      sql/sql_update.cc:
        error check moved to fill_record
      sql/sql_view.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_yacc.yy:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/table.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/unireg.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      a31c2d3d
  24. 20 Oct, 2004 2 commits
    • unknown's avatar
      changed function name to prevent injection wrong code from 4.1 (WL#2133) · 6f3e8f10
      unknown authored
      mysql-test/r/rpl_rotate_logs.result:
        changed error message
      mysql-test/t/rpl_rotate_logs.test:
        changed error message
      sql/log_event.cc:
        changed  function name to prevent injection wrong code from 4.1
      sql/mysqld.cc:
        changed  function name to prevent injection wrong code from 4.1
      sql/protocol.cc:
        changed  function name to prevent injection wrong code from 4.1
      sql/protocol.h:
        changed  function name to prevent injection wrong code from 4.1
      sql/sql_class.h:
        changed  function name to prevent injection wrong code from 4.1
      sql/sql_parse.cc:
        changed  function name to prevent injection wrong code from 4.1
      sql/sql_repl.cc:
        changed  function name to prevent injection wrong code from 4.1
      6f3e8f10
    • unknown's avatar
      errors without code removed · 9d3fe09b
      unknown authored
      net_printf/send_error calls replaced by my_error family functions
      -1/1 (sent/unsent) error reporting removed
      (WL#2133)
      
      
      include/mysqld_error.h:
        new errors added.
      mysql-test/r/rpl_charset.result:
        new error
      mysql-test/r/rpl_timezone.result:
        new error
      mysql-test/r/sp-security.result:
        more clean error message
      mysql-test/r/sp.result:
        now error state intercepted correctly
      mysql-test/t/connect.test:
        new error message
      mysql-test/t/rpl_charset.test:
        new error message
      mysql-test/t/rpl_timezone.test:
        new error
      mysql-test/t/sp-security.test:
        more correct error handling
      mysql-test/t/sp.test:
        now error state intercepted correctly
      sql/ha_innodb.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/ha_innodb.h:
        -1/1 (sent/unsent) error reporting removed
      sql/item.cc:
        only boolean values should be returned by fix_fields()
      sql/item_cmpfunc.cc:
        only boolean values should be returned by fix_fields()
      sql/item_func.cc:
        only boolean values should be returned by fix_fields()
        net_printf/send_error calls replaced by my_error family functions
      sql/item_row.cc:
        only boolean values should be returned by fix_fields()
      sql/item_subselect.cc:
        only boolean values should be returned by fix_fields()
        -1/1 (sent/unsent) error reporting removed
      sql/item_subselect.h:
        -1/1 (sent/unsent) error reporting removed
      sql/item_sum.cc:
        only boolean values should be returned by fix_fields()
      sql/item_timefunc.cc:
        only boolean values should be returned by fix_fields()
      sql/item_uniq.h:
        only boolean values should be returned by fix_fields()
      sql/mysql_priv.h:
        -1/1 (sent/unsent) error reporting removed
      sql/mysqld.cc:
        net_printf/send_error calls replaced by my_error family functions
        changes in my_message_sql to support error handling correctly
      sql/protocol.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/protocol_cursor.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/repl_failsafe.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/repl_failsafe.h:
        -1/1 (sent/unsent) error reporting removed
      sql/set_var.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/share/czech/errmsg.txt:
        new error messages
      sql/share/danish/errmsg.txt:
        new error messages
      sql/share/dutch/errmsg.txt:
        new error messages
      sql/share/english/errmsg.txt:
        new error messages
      sql/share/estonian/errmsg.txt:
        new error messages
      sql/share/french/errmsg.txt:
        new error messages
      sql/share/german/errmsg.txt:
        new error messages
      sql/share/greek/errmsg.txt:
        new error messages
      sql/share/hungarian/errmsg.txt:
        new error messages
      sql/share/italian/errmsg.txt:
        new error messages
      sql/share/japanese/errmsg.txt:
        new error messages
      sql/share/korean/errmsg.txt:
        new error messages
      sql/share/norwegian-ny/errmsg.txt:
        new error messages
      sql/share/norwegian/errmsg.txt:
        new error messages
      sql/share/polish/errmsg.txt:
        new error messages
      sql/share/portuguese/errmsg.txt:
        new error messages
      sql/share/romanian/errmsg.txt:
        new error messages
      sql/share/russian/errmsg.txt:
        new error messages
      sql/share/serbian/errmsg.txt:
        new error messages
      sql/share/slovak/errmsg.txt:
        new error messages
      sql/share/spanish/errmsg.txt:
        new error messages
      sql/share/swedish/errmsg.txt:
        new error messages
      sql/share/ukrainian/errmsg.txt:
        new error messages
      sql/slave.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/slave.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sp.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sp_head.cc:
        new eror handling support
        net_printf/send_error calls replaced by my_error family functions
      sql/sp_rcontext.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_acl.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_acl.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_base.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_class.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_class.h:
        my_messhage_sql now set/reset query_error flag
      sql/sql_db.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_delete.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_do.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_error.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_handler.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_help.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_insert.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_lex.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_load.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_map.cc:
        errors without code removed
      sql/sql_parse.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed from mysql_execute_command
      sql/sql_prepare.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_repl.cc:
        error messages fixed
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_repl.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_select.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_select.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_show.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_table.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_trigger.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_udf.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_union.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_update.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_view.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_view.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_yacc.yy:
        net_printf/send_error calls replaced by my_error family functions
      9d3fe09b
  25. 14 Sep, 2004 2 commits
  26. 09 Sep, 2004 1 commit
    • unknown's avatar
      Updating the headers on a few files to include GPL header. · ca4c39eb
      unknown authored
      sql/repl_failsafe.cc:
        Removed reference to old maintainer.
      sql/repl_failsafe.h:
        Added license header.
      sql/slave.h:
        Added license header.
      sql/sql_repl.cc:
        Removed old maintainer.
      sql/sql_repl.h:
        Added license header
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      ca4c39eb
  27. 03 Aug, 2004 1 commit
    • unknown's avatar
      Port of cursors to be pushed into 5.0 tree: · e14f5a85
      unknown authored
      - client side part is simple and may be considered stable
      - server side part now just joggles with THD state to save execution
        state and has no additional locking wisdom.
        Lot's of it are to be rewritten.
      
      
      include/mysql.h:
        Cursor patch to push into the main tree, client library part (considered 
        stable):
        - new statement attribute STMT_ATTR_CURSOR_TYPE
        - MYSQL_STMT::flags to store statement cursor type
        - MYSQL_STMT::server_status to store server status (i. e. if the server
        was able to open a cursor for this query).
      include/mysql_com.h:
        Cursor patch to push into the main tree, client library part (considered 
        stable):
        - new COMmand, COM_FETCH, to fetch K rows from read-only cursor.
          By design should support scrollable cursors as well.
        - a few new server statuses:
          SERVER_STATUS_CURSOR_EXISTS is sent by server in reply to COM_EXECUTE,
          when cursor was successfully opened for this query
          SERVER_STATUS_LAST_ROW_SENT is sent along with the last row to prevent one
          more round trip just for finding out that all rows were fetched from 
          this cursor (this is server mem savier also).
        - and finally, all possible values of STMT_ATTR_CURSOR_TYPE, 
          while now we support only CURSORT_TYPE_NO_CURSOR and 
          CURSOR_TYPE_READ_ONLY
      libmysql/libmysql.c:
        Cursor patch to push into the main tree, client library part (considered 
        stable):
        - simple additions to mysql_stmt_fetch implementation to read data 
          from an opened cursor: we can read up to iteration count rows per
          one request; read rows are buffered in the same way as rows of
          mysql_stmt_store_result.
        - now send stmt->flags to server to let him now if we wish to have 
          a cursor for this statement.
        - support for setting/getting statement cursor type.
      libmysqld/examples/Makefile.am:
        Testing cursors was originally implemented in C++. Now when these tests
        go into client_test, it's time to convert it to C++ as well.
      libmysqld/lib_sql.cc:
        - cleanup: send_fields flags are now named.
      sql/ha_innodb.cc:
        - cleanup: send_fields flags are now named.
      sql/mysql_priv.h:
        - cursors support: declaration for server-side handler of COM_FETCH
      sql/protocol.cc:
        - cleanup: send_fields flags are now named.
        - we can't anymore assert that field_types[field_pos] is sensible:
          if we have COM_EXCUTE(stmt1), COM_EXECUTE(stmt2), COM_FETCH(stmt1)
          field_types[field_pos] will point to fields of stmt2.
      sql/protocol.h:
        - cleanup: send_fields flag_s_ are now named.
      sql/protocol_cursor.cc:
        - cleanup: send_fields flags are now named.
      sql/repl_failsafe.cc:
        - cleanup: send_fields flags are now named.
      sql/slave.cc:
        - cleanup: send_fields flags are now named.
      sql/sp.cc:
        - cleanup: send_fields flags are now named.
      sql/sp_head.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_acl.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_class.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_class.h:
        - cleanup: send_fields flags are now named.
      sql/sql_error.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_handler.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_help.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_parse.cc:
        Server side support for cursors:
        - handle COM_FETCH
        - enforce assumption that whenever we free thd->free_list, 
          we reset it to zero. This way it's much easier to handle free_list
          in prepared statements implementation.
      sql/sql_prepare.cc:
        Server side support for cursors:
        - implementation of mysql_stmt_fetch (fetch some rows from open cursor).
        - management of cursors memory is quite tricky now.
        - execute_stmt can't be reused anymore in mysql_stmt_execute and 
          mysql_sql_stmt_execute
      sql/sql_repl.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_select.cc:
        Server side support for cursors:
        - implementation of Cursor::open, Cursor::fetch (buggy when it comes to
          non-equi joins), cursor cleanups.
        - -4 -3 -0 constants indicating return value of sub_select and end_send are
          to be renamed to something more readable:
          it turned out to be not so simple, so it should come with the other patch.
      sql/sql_select.h:
        Server side support for cursors:
        - declaration of Cursor class.
        - JOIN::fetch_limit contains runtime value of rows fetched via cursor.
      sql/sql_show.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_table.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_union.cc:
        - if there was a cursor, don't cleanup unit: we'll need it to fetch
          the rest of the rows.
      tests/Makefile.am:
        Now client_test is in C++.
      tests/client_test.cc:
        A few elementary tests for cursors.
      BitKeeper/etc/ignore:
        Added libmysqld/examples/client_test.cc to the ignore list
      e14f5a85
  28. 15 Mar, 2004 1 commit
    • unknown's avatar
      Optimizations · e18db615
      unknown authored
      mysql-test/r/create.result:
        Changed ERROR -> NOTE (for enum/set)
      sql/lock.cc:
        Removed not needed test (table_list->db is always set)
      sql/sql_repl.cc:
        Removed not needed test
      sql/sql_table.cc:
        ERROR -> NOTE
        Removed not needed test
      strings/strtod.c:
        Portabilty fix. (DBL_MAX *10 is not safe)
      e18db615
  29. 10 Mar, 2004 3 commits
    • unknown's avatar
      Backporting parts of · fc192448
      unknown authored
      ChangeSet 1.1620.12.1 and ChangeSet 1.1625.2.1
      from 4.1. This makes the slave I/O thread flush the relay log 
      after every event, which provides additional safety in case
      of brutal crash (reduces chances to lose a part of the relay log).
      
      
      sql/repl_failsafe.cc:
        update for new prototype
      sql/slave.cc:
        The slave I/O thread now flushes the relay log after writing
        every event to it, like we already do in 4.1.
      sql/slave.h:
        new prototype
      sql/sql_repl.cc:
        update for new prototype
      fc192448
    • unknown's avatar
      Undoing 2 parts of changeset 1.1730.1.1 : · 3768f9ef
      unknown authored
      - the one about BUG#2921
      - the one about relay log flushing
      Both will be rewritten in a next changeset
      (this one will not be pushed before the next changeset).
      
      
      sql/log.cc:
        undo
      sql/log_event.cc:
        undo
      sql/repl_failsafe.cc:
        undo
      sql/slave.cc:
        undo
      sql/slave.h:
        undo
      sql/sql_repl.cc:
        undo
      3768f9ef
    • unknown's avatar
      Fixed memory leak in DROP DATABASE when using RAID tables (Bug #2882) · 98cd9f93
      unknown authored
      BUILD/compile-pentium-debug-max:
        Added --with-raid
      configure.in:
        Removed -DFN_NO_CASE_SENCE for Mac OS X as this is not always true
      mysql-test/install_test_db.sh:
        Added --skip-warnings
      mysql-test/mysql-test-run.sh:
        Fixes to get --gdb and --ddd to work
      mysql-test/r/lowercase_table2.result:
        Test for lower_case_table_names=2 and temporary tables
      mysql-test/r/lowercase_table3.result:
        Fixed error message
      mysql-test/r/multi_update.result:
        Test of behaviour of multi-table-delete and alias
      mysql-test/t/lowercase_table2.test:
        Test for lower_case_table_names=2 and temporary tables
      mysql-test/t/lowercase_table3.test:
        Fixed error
      mysql-test/t/multi_update.test:
        Test of behaviour of multi-table-delete and alias (Bug #2940)
      mysys/mf_iocache.c:
        Renamed _flush_io_cache to my_b_flush_io_cache
      sql/ha_myisam.cc:
        Added comment
      sql/lock.cc:
        Extra debugging
      sql/log.cc:
        New parameter to flush_relay_log_info
      sql/log_event.cc:
        New parameter to flush_relay_log_info
      sql/mf_iocache.cc:
        Removed not used header files
      sql/mysqld.cc:
        More debugging info
        Less warnings when run with --skip-warnings
      sql/opt_range.cc:
        More debug information
      sql/repl_failsafe.cc:
        New parameter to flush_relay_log_info
      sql/slave.cc:
        First start SQL thread, then start IO thread. This fixed a raze condition in SLAVE START (Bug #2921)
        Ensure that we have a lock on the IO thread before flushing a relay log file that. The original code could core dump when a relay log rotated.
      sql/slave.h:
        New parameter to flush_relay_log_info
      sql/sql_base.cc:
        Added warning
      sql/sql_handler.cc:
        Indentation fix
      sql/sql_repl.cc:
        New parameter to flush_relay_log_info
      sql/sql_select.cc:
        Fixed problem with deleting temporary tables when using lower_case_table_names=2. (Bug #2858)
      sql/sql_table.cc:
        Fixed comment
      sql/sql_yacc.yy:
        Removed compiler warning
      include/my_sys.h:
        Fixed usage of unpack_filename
      mysys/mf_pack.c:
        Changed unpack_filename() to return length of result string.
      mysys/test_fn.c:
        Fixed usage of unpack_filename
      sql/sql_db.cc:
        Fixed memory leak with raid tables
      sql/table.cc:
        Fixed usage of unpack_filename
      98cd9f93
  30. 19 Dec, 2003 2 commits
    • unknown's avatar
      This is the final commit for Worklog tasks: · 309cbc54
      unknown authored
         * A more dynamic binlog format which allows small changes (1064)
         * Log session variables in Query_log_event (1063)
      It contains a few bugfixes (which I made when running the testsuite).
      I carefully updated the results of the testsuite (i.e. I checked for every one,
      if the difference between .reject and .result could be explained).
      Apparently mysql-test-run --manager is broken in 4.1 and 5.0 currently,
      so I could neither run the few tests which require --manager, nor check
      that they pass nor modify their .result. But for builds, we don't run
      with --manager.
      Apart from --manager, the full testsuite passes, with Valgrind too (no errors).
      I'm going to push in the next minutes. Remains: update the manual.
      Note: by chance I saw that (in 4.1, in 5.0) rpl_get_lock fails when run alone;
      this is normal at it makes assumptions on thread ids. I will fix this one day
      in 4.1.
      
      
      mysql-test/r/rpl000015.result:
        result update
      mysql-test/r/rpl_change_master.result:
        result update
      mysql-test/r/rpl_error_ignored_table.result:
        result update
      mysql-test/r/rpl_flush_log_loop.result:
        result update
      mysql-test/r/rpl_flush_tables.result:
        result update
      mysql-test/r/rpl_loaddata.result:
        result update
      mysql-test/r/rpl_loaddata_rule_m.result:
        result update
      mysql-test/r/rpl_loaddata_rule_s.result:
        result update
      mysql-test/r/rpl_log.result:
        result update
      mysql-test/r/rpl_log_pos.result:
        result update
      mysql-test/r/rpl_max_relay_size.result:
        result update
      mysql-test/r/rpl_relayrotate.result:
        result update
      mysql-test/r/rpl_replicate_do.result:
        result update
      mysql-test/r/rpl_reset_slave.result:
        result update
      mysql-test/r/rpl_rotate_logs.result:
        result update
      mysql-test/r/rpl_session_var.result:
        result update
      mysql-test/r/rpl_temporary.result:
        result update
      mysql-test/r/rpl_trunc_binlog.result:
        result update
      mysql-test/r/rpl_until.result:
        result update
      mysql-test/r/rpl_user_variables.result:
        result update
      mysql-test/t/rpl000010-slave.opt:
        need to wait 2 events, because now we receive a Format_desc on top of the Rotate,
        when replication starts.
      mysql-test/t/rpl000015.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_change_master.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_empty_master_crash.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_error_ignored_table.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_flush_log_loop.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_loaddata.test:
        position update
      mysql-test/t/rpl_loaddata_rule_m.test:
        position update
      mysql-test/t/rpl_loaddata_rule_s.test:
        position update
      mysql-test/t/rpl_log.test:
        position update
      mysql-test/t/rpl_log_pos.test:
        position update
      mysql-test/t/rpl_max_relay_size.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_openssl.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_redirect.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_relayrotate-slave.opt:
        better options for this test
      mysql-test/t/rpl_relayrotate.test:
        using max() is better for debugging (it shows at which place the slave
        SQL thread resumed)
      mysql-test/t/rpl_replicate_do.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_reset_slave.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_rotate_logs.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_session_var.test:
        100 because password() is longer than 10 chars
      mysql-test/t/rpl_trunc_binlog.test:
        relay log information is not repeatable in general (if a reconnection
        happens because --sleep=10 for example), so we hide these columns.
      mysql-test/t/rpl_until.test:
        position update
      mysql-test/t/rpl_user_variables.test:
        position update
      sql/log.cc:
        Ensure that the Format_desc propagated on next relay logs does not trigger
        undue actions (like incrementing some positions or clearing some files).
      sql/log_event.cc:
        * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
        a transaction (then these were written by the slave itself to its relay log),
        it should not increment rli->group* variables, but only rli->event* ones.
        * When the slave SQL thread finds a Format_desc not to be ignored (not
        the same server id as the slave's), if it has log_pos==0 it must not trigger
        "unfinished transaction in master's binlog" (log_pos==0 is always a marker
        in the relay log to mean "this event was not at this place in the master's
        binlog": it's for fake Rotate events, and for Format_description events which the master had
        to send us for replication to start).
        * In the Query_log_event on disk, catalog is now terminated by '\0'.
        * thd->catalog must be set to 0 when some exec_event() terminate (otherwise
        double free).
      sql/slave.cc:
        * Fixes for a few bugs when ignoring events in the slave SQL thread:
          - do not decrement rli->slave_skip_counter if the event is an event
          related to the binlog or relay log itself (FORMAT_DESCRIPTION,
          ROTATE, STOP) because these events should never be skipped (or the slave
          will be confused). Usually the user wants to skip a query, not a Rotate... 
          - when we (re)connect to the master, we must free description_event_for_queue
          (otherwise memory leak when we reconnect). 
        * Changed a bit the code where we change description_event_for_queue,
        to make it look "safer".
        * Moved 'created=0' to log.cc where it is safer.
        * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
        a transaction (then these were written by the slave itself to its relay log),
        it should not increment rli->group* variables, but only rli->event* ones.
      sql/sql_class.h:
        a warning comment
      sql/sql_repl.cc:
        A mistake: I had passed a char* instead of char**
      309cbc54
    • unknown's avatar
      THD::lex now points to THD::main_lex like in 5.0 · 0b098472
      unknown authored
      All tests pass (client_test included)
      
      
      libmysqld/lib_sql.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/filesort.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/ha_innodb.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/ha_myisam.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_cmpfunc.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_create.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_func.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_subselect.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_sum.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/mysql_priv.h:
        THD::lex now points to THD::main_lex like in 5.0
      sql/mysqld.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/protocol.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/repl_failsafe.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/slave.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_acl.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_base.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_cache.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_class.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_class.h:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_delete.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_error.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_insert.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_lex.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_lex.h:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_parse.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_prepare.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_repl.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_select.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_table.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_union.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_update.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_yacc.yy:
        THD::lex now points to THD::main_lex like in 5.0
      0b098472
  31. 18 Dec, 2003 1 commit
    • unknown's avatar
      This will be pushed only after I fix the testsuite. · 0ade6e93
      unknown authored
      This is the main commit for Worklog tasks:
       * A more dynamic binlog format which allows small changes (1064)
       * Log session variables in Query_log_event (1063)
      Below 5.0 means 5.0.0.
      MySQL 5.0 is able to replicate FOREIGN_KEY_CHECKS, UNIQUE_KEY_CHECKS (for speed),
      SQL_AUTO_IS_NULL, SQL_MODE. Not charsets (WL#1062), not some vars (I can only think
      of SQL_SELECT_LIMIT, which deserves a special treatment). Note that this
      works for queries, except LOAD DATA INFILE (for this it would have to wait
      for Dmitri's push of WL#874, which in turns waits for the present push, so...
      the deadlock must be broken!). Note that when Dmitri pushes WL#874 in 5.0.1,
      5.0.0 won't be able to replicate a LOAD DATA INFILE from 5.0.1.
      Apart from that, the new binlog format is designed so that it can tolerate
      a little variation in the events (so that a 5.0.0 slave could replicate a
      5.0.1 master, except for LOAD DATA INFILE unfortunately); that is, when I
      later add replication of charsets it should break nothing. And when I later
      add a UID to every event, it should break nothing.
      The main change brought by this patch is a new type of event, Format_description_log_event,
      which describes some lengthes in other event types. This event is needed for
      the master/slave/mysqlbinlog to understand a 5.0 log. Thanks to this event,
      we can later add more bytes to the header of every event without breaking compatibility.
      Inside Query_log_event, we have some additional dynamic format, as every Query_log_event
      can have a different number of status variables, stored as pairs (code, value); that's
      how SQL_MODE and session variables and catalog are stored. Like this, we can later
      add count of affected rows, charsets... and we can have options --don't-log-count-affected-rows
      if we want.
      MySQL 5.0 is able to run on 4.x relay logs, 4.x binlogs.
      Upgrading a 4.x master to 5.0 is ok (no need to delete binlogs),
      upgrading a 4.x slave to 5.0 is ok (no need to delete relay logs);
      so both can be "hot" upgrades.
      Upgrading a 3.23 master to 5.0 requires as much as upgrading it to 4.0.
      3.23 and 4.x can't be slaves of 5.0.
      So downgrading from 5.0 to 4.x may be complicated.
      Log_event::log_pos is now the position of the end of the event, which is
      more useful than the position of the beginning. We take care about compatibility
      with <5.0 (in which log_pos is the beginning).
      I added a short test for replication of SQL_MODE and some other variables.
      TODO:
      - after committing this, merge the latest 5.0 into it
      - fix all tests
      - update the manual with upgrade notes.
      
      
      client/Makefile.am:
        mysqlbinlog.cc depends slightly on sql/mysql_priv.h
      client/mysqlbinlog.cc:
        Make mysqlbinlog able to read the new binlog format,
        by seeking to the start and reading the first few events, to
        detect the format of the binlog.
      include/my_sys.h:
        a correct tell() for SEQ_READ_APPEND caches.
      mysys/mf_iocache2.c:
        a correct tell() for SEQ_READ_APPEND caches
        (my_b_tell() is not working for such caches).
      sql/ha_innodb.cc:
        we are getting rid of event lengthes here and there, which is good.
      sql/log.cc:
        Start events will have created==0 if generated by rotation (like in 3.23).
        In 5.0 we always write a Format_description_log_event at the beginning of
        every master's binary log and of every slave's relay log.
        We also add Rotate and Stop to relay logs (like there already was in
        master's binary logs).
        When we rotate a relay log, we write the previous relay log's Start event
        (the one which was sent from the master) to the beginning of the new log,
        so that we don't need the previous relay log to understand the new one;
        that's the purpose of MYSQL_LOG::description_event_for_queue.
        Removed logging of SET FOREIGN_KEY_CHECKS, because we handle it as flags
        in the Query event now.
      sql/log_event.cc:
        New event type: Format_description_log_event, to describe the log's format.
        read_log_event() needs to be passed this event to be able to read 5.0 events.
        Query_log_event has new members flags2 and sql_mode for replication of session
        variables (except charsets which are WL#1062) and SQL_MODE.
        flags2 is in fact a kind of copy of thd->options (&'d with a mask).
        Now with this replication of FOREIGN_KEY_CHECKS, SQL_AUTO_IS_NULL, UNIQUE_CHECKS
        and SQL_MODE work; with mysqlbinlog too.
      sql/log_event.h:
        Binlog version is changed to 4.
        New classes (details in sql/log_event.cc).
        Removing some useless #defines.
      sql/mysql_priv.h:
        Definition of SELECT_DISTINCT and others must be visible in client/mysqlbinlog.cc,
        so adding #ifdefs.
      sql/mysqld.cc:
        update for prototype change
      sql/slave.cc:
        When the slave opens a relay log, it reads the first few events to know the format.
        When slave I/O thread receives a Rotate from the master, it rotates its relay log
        (to avoid mixed format in the relay log).
      sql/slave.h:
        in the slave we avoid lengthes and rely on absolute positions instead;
        hence the introduction of future_group_master_log_pos and future_event_relay_log_pos
        (explained in code).
      sql/sql_class.cc:
        catalog in THD
      sql/sql_class.h:
        catalog, and new members in MYSQL_LOG
      sql/sql_repl.cc:
        When the master starts sending binlog to slave, it must
        first read the first few events to detect the binlog's format.
        Same for SHOW BINLOG EVENTS.
      0ade6e93
  32. 23 Nov, 2003 1 commit
    • unknown's avatar
      Replication: · ed39d48c
      unknown authored
      Now the I/O thread (in flush_master_info()) flushes the relay log to disk
      after reading every event. Slower but provides additionnal safety in case
      of brutal crash.
      I had to make the flush optional (i.e. add a if(some_bool_argument) in the function)
      because sometimes flush_master_info() is called when there is no usable
      relay log (the relay log's IO_CACHE is not initialized so can't be flushed).
      
      
      mysql-test/r/rpl_loaddata_rule_m.result:
        avoid a harmless error in the .err file; we don't need a slave in this test
        (even though it's called 'rpl' because it's testing binlog-ignore-db).
      mysql-test/t/rpl_loaddata_rule_m.test:
        result update
      sql/repl_failsafe.cc:
        update call to flush_master_info() according to new prototype.
      sql/slave.cc:
        - Now the I/O thread (in flush_master_info()) flushes the relay log to disk
        after reading every event. Slower but provides additionnal safety in case
        of brutal crash.
        I had to make the flush optional (i.e. add a if(some_bool_argument) in the function)
        because sometimes flush_master_info() is called when there is no usable
        relay log (the relay log's IO_CACHE is not initialized so can't be flushed).
        - Update version in message.
        - Remove warning about bug as it's not true anymore (since this changeset).
      sql/slave.h:
        new prototype
      sql/sql_repl.cc:
        update call to flush_master_info() according to new prototype.
      ed39d48c
  33. 20 Nov, 2003 2 commits
    • unknown's avatar
      Update VC++ files · c3cce96e
      unknown authored
      Portability fixes
      After merge fixes
      
      
      VC++Files/mysql.dsw:
        Added dependencys
      VC++Files/mysys/mysys.dsp:
        Add missing files
      client/mysqlcheck.c:
        Added comment
      client/mysqltest.c:
        Remove not used variables
      include/keycache.h:
        Removed not used element
      include/m_ctype.h:
        Portability fix
      include/my_base.h:
        Removed not used define
      myisam/mi_keycache.c:
        Added mutex for extra safety
      mysql-test/r/count_distinct3.result:
        Faster test
      mysql-test/r/rpl_change_master.result:
        updated results
      mysql-test/t/count_distinct3.test:
        Faster test
      mysql-test/t/rpl_change_master.test:
        Make test repeatable
      mysys/default.c:
        Remove compiler warning
      mysys/mf_keycache.c:
        Removed not used 'action' element
      mysys/my_getopt.c:
        Remove not used variable
      sql/ha_myisam.cc:
        Remove compiler warning
      sql/item.cc:
        Fixed wrong patch from last changeset
      sql/item_timefunc.cc:
        Remove compiler warnings
      sql/set_var.cc:
        Remove compiler warnings
      sql/sql_prepare.cc:
        Remove not used variables
      sql/sql_repl.cc:
        After merge fix
      sql/sql_select.h:
        Added comments
      sql/sql_table.cc:
        Remove not used define
      strings/ctype-tis620.c:
        Remove not used variables
      c3cce96e
    • unknown's avatar
      Merge key cache structures to one · 4286e203
      unknown authored
      Fixed compiler warnings (IRIX C compiler and VC++)
      
      
      VC++Files/client/mysqlclient.dsp:
        Add missing file to project
      VC++Files/libmysql/libmysql.dsp:
        Add missing file to project
      VC++Files/myisam/myisam.dsp:
        Add missing file to project
      VC++Files/mysys/mysys.dsp:
        Add missing file to project
      heap/hp_test1.c:
        Fixed wrong call to heap_rkey()
      heap/hp_test2.c:
        Fixed wrong call to heap_rkey()
      include/hash.h:
        Move not used (internal) struct to hash.c
      include/my_pthread.h:
        Made some structs 'const char*' to avoid warnings
      include/my_sys.h:
        Moved key cache structs and functions to keycache.h
      include/myisam.h:
        Merge key cache structures to one
      include/mysql.h:
        Remove STDCALL from internal functions
      include/sql_common.h:
        Remove STDCALL from internal functions
      include/violite.h:
        Fixed compiler warning
      isam/_locking.c:
        Merge key cache structures to one
      isam/_page.c:
        Merge key cache structures to one
      isam/close.c:
        Merge key cache structures to one
      isam/extra.c:
        Merge key cache structures to one
      isam/isamchk.c:
        Merge key cache structures to one
      isam/isamdef.h:
        Merge key cache structures to one
      isam/isamlog.c:
        Merge key cache structures to one
      isam/panic.c:
        Merge key cache structures to one
      isam/test2.c:
        Merge key cache structures to one
      isam/test3.c:
        Merge key cache structures to one
      libmysql/client_settings.h:
        Remove STDCALL from internal functions
      libmysql/libmysql.c:
        Remove STDCALL from internal functions
      myisam/ft_boolean_search.c:
        Fixed compiler warning
      myisam/ft_dump.c:
        Fixed compiler warnings (%qx is not portable)
      myisam/ft_update.c:
        Fixed compiler warnings
      myisam/mi_check.c:
        Merge key cache structures to one
      myisam/mi_close.c:
        Merge key cache structures to one
      myisam/mi_delete_all.c:
        Merge key cache structures to one
      myisam/mi_extra.c:
        Merge key cache structures to one
      myisam/mi_keycache.c:
        Merge key cache structures to one
      myisam/mi_locking.c:
        Merge key cache structures to one
      myisam/mi_page.c:
        Merge key cache structures to one
      myisam/mi_panic.c:
        Merge key cache structures to one
      myisam/mi_preload.c:
        Merge key cache structures to one
      myisam/mi_test1.c:
        Merge key cache structures to one
      myisam/mi_test2.c:
        Merge key cache structures to one
      myisam/mi_test3.c:
        Merge key cache structures to one
      myisam/myisamchk.c:
        Merge key cache structures to one
      myisam/myisamdef.h:
        Merge key cache structures to one
      myisam/myisamlog.c:
        Merge key cache structures to one
        Removed not used option
      myisam/sort.c:
        Fixed compiler warnings
      myisam/sp_test.c:
        Fixed compiler warnings
      mysql-test/r/case.result:
        Updated results after fix of correct NULL detection in WHEN
      mysql-test/r/date_formats.result:
        Updated results after fixing date handling
      mysql-test/r/symlink.result:
        Updated results after adding DEFAULT CHARSET
      mysql-test/t/case.test:
        New test
      mysql-test/t/symlink.test:
        Updated error numbers
      mysys/hash.c:
        Made HASH_LINK struct local
      mysys/mf_keycache.c:
        Merge key cache structures to one
        Fixed key_cache_read() and key_cache_write() to be resize-safe.
      mysys/mf_keycaches.c:
        Merge key cache structures to one
      mysys/thr_mutex.c:
        Added test if mutex is initalized
      sql-common/client.c:
        Remove STDCALL from internal functions
      sql/derror.cc:
        Added comment
      sql/field.cc:
        Removed not used variables
      sql/ha_innodb.cc:
        Fixed compiler warnings (removed not used variables)
      sql/ha_myisam.cc:
        Merge key cache structures to one
      sql/ha_myisammrg.cc:
        Removed not used variables
      sql/handler.cc:
        Merge key cache structures to one
      sql/handler.h:
        Merge key cache structures to one
      sql/item.cc:
        Fixed compiler warning
      sql/item_cmpfunc.cc:
        Remove not used variables
      sql/item_func.cc:
        Remove not used variables
      sql/item_strfunc.cc:
        Removed not used variables
      sql/item_sum.cc:
        Removed not used variables
        Moved setting of item_thd to fix_fields()
      sql/item_timefunc.cc:
        Removed not used variables
      sql/mysql_priv.h:
        Merge key cache structures to one
      sql/mysqld.cc:
        Merge key cache structures to one
        init_thread_environment() is not called before mysql_init_variables(). This fixes a case where a mutex was not initialized before it was used
      sql/opt_sum.cc:
        Remove not used variables
      sql/protocol.cc:
        Don't send errors after ok has been sent
      sql/protocol_cursor.cc:
        Remove not used variable
        Simple optimization
      sql/repl_failsafe.cc:
        Remove not used variables
      sql/set_var.cc:
        Merge key cache structures to one
      sql/set_var.h:
        Merge key cache structures to one
      sql/sql_acl.cc:
        Remove not used variables
      sql/sql_base.cc:
        Remove not used function
      sql/sql_db.cc:
        Remove not used variables
      sql/sql_handler.cc:
        Remove not used variables
      sql/sql_insert.cc:
        More DBUG statements
        Simple code cleanup
      sql/sql_lex.cc:
        Remove not used variables
      sql/sql_parse.cc:
        Remove not used variables
      sql/sql_prepare.cc:
        Remove not used variables
      sql/sql_repl.cc:
        Remove not used variables
      sql/sql_select.cc:
        Remove not used variables
      sql/sql_show.cc:
        Remove not used variables
      sql/sql_table.cc:
        Merge key cache structures to one
        Removed not used variables
      sql/sql_test.cc:
        Merge key cache structures to one
      sql/strfunc.cc:
        Fixed that find_type() returns correct value for partly matched words.
        (This fixed the error found by date_formats.test)
      sql/time.cc:
        Remove not used variables
      strings/my_strtoll10.c:
        Fixed compiler warnings
      4286e203