An error occurred fetching the project authors.
  1. 15 Oct, 2003 1 commit
    • unknown's avatar
      Better fix for CREATE TABLE IF NOT EXISTS ... SELECT · b06eb4d8
      unknown authored
      Fixed chsize() problem on windows
      Extend default timeout on windows clients to 1 year (to avoid timeout problems)
      
      
      include/mysql.h:
        Added client timeouts (for TCP/IP)
      libmysql/libmysql.c:
        Added client timeouts (for TCP/IP)
      mysql-test/r/create.result:
        More tests for CREATE TABLE IF NOT EXISTS ... SELECT
      mysql-test/t/create.test:
        More tests for CREATE TABLE IF NOT EXISTS ... SELECT
      mysys/my_chsize.c:
        Fix for windows
      sql/handler.h:
        Remove not used field 'if_not_exists'
        Ordered fields to be more optimized for new CPU's
        Added field 'table_existed'
      sql/slave.cc:
        Cleanup temporary tables when slave ends
      sql/sql_class.h:
        Remove not used 'do_not_drop' field
      sql/sql_insert.cc:
        Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
      sql/sql_table.cc:
        Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
      b06eb4d8
  2. 09 Oct, 2003 1 commit
    • unknown's avatar
      Make the slave die if master is 5.0. Indeed, 5.0 masters send · 7e1a1032
      unknown authored
      a Format_description_log_event (or maybe it will be named
      Description_log_event) which is not recognized by 4.0, so
      a 4.0 can't be a slave of 5.0. We detect it early to produce
      a helpful message instead of "corrupted relay log" later.
      
      
      sql/slave.cc:
        Make the slave die if master is 5.0.
      7e1a1032
  3. 08 Oct, 2003 2 commits
    • unknown's avatar
      Final push for WL#1098: · a7a7a8ca
      unknown authored
      "Add a column "Timestamp_of_last_master_event_executed" in SHOW SLAVE STATUS".
      Finally this is adding
      - Slave_IO_State (a copy of the State column of SHOW PROCESSLIST for the I/O thread,
      so that the users, most of the time, has enough info with only SHOW SLAVE STATUS).
      - Seconds_behind_master. When the slave connects to the master it does SELECT UNIX_TIMESTAMP()
      on the master, computes the absolute difference between the master's and the slave's clock.
      It records the timestamp of the last event executed by the SQL thread, and does a
      small computation to find the number of seconds by which the slave is late.
      
      
      mysql-test/r/rpl000015.result:
        result update
      mysql-test/r/rpl_empty_master_crash.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_loaddata.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_redirect.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_trunc_binlog.result:
        result update
      mysql-test/r/rpl_until.result:
        result update
      mysql-test/t/rpl000015.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_empty_master_crash.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_error_ignored_table.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_flush_log_loop.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_loaddata.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_log.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_log_pos.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_max_relay_size.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_openssl.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_redirect.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_replicate_do.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_reset_slave.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_rotate_logs.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_trunc_binlog.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      mysql-test/t/rpl_until.test:
        update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
      sql/log_event.cc:
        when the SQL thread executes an event, we record its timestamp
      sql/slave.cc:
        in check_master_version() we know read the master's clock, to know the clock difference
        with the slave.
        In show_master_info() we send the state of the I/O thread, and compute the number of
        seconds by which the slave is late.
      sql/slave.h:
        timestamp of the last master's event executed by the SQL thread,
        and difference between the clocks of the master and slave.
      sql/sql_repl.cc:
        clear the Seconds_behind_master column of SHOW SLAVE STATUS when RESET SLAVE or CHANGE MASTER.
      a7a7a8ca
    • unknown's avatar
      Fixes after merge · 1ead85e6
      unknown authored
      mysql-test/std_data/trunc_binlog.000001:
        Rename: mysql-test/std_data/trunc_binlog.001 -> mysql-test/std_data/trunc_binlog.000001
      client/mysqltest.c:
        Fixed merge problem
      mysql-test/mysql-test-run.sh:
        Fixed merge problem
      mysql-test/r/distinct.result:
        Fix after merge
      mysql-test/r/drop_temp_table.result:
        Fix after merge
      mysql-test/r/join_outer.result:
        Fix after merge
      mysql-test/r/mysqldump.result:
        Fix after merge
      mysql-test/r/null_key.result:
        Fix after merge
      mysql-test/r/order_by.result:
        Fix after merge
      mysql-test/r/rpl_alter.result:
        Fix after merge
      mysql-test/r/rpl_loaddata.result:
        Fix after merge
      mysql-test/r/rpl_loaddata_rule_m.result:
        Fix after merge
      mysql-test/r/rpl_trunc_binlog.result:
        Fix after merge
      mysql-test/r/select_safe.result:
        Fix after merge
      mysql-test/t/insert.test:
        Fix after merge
      mysql-test/t/mysqlbinlog.test:
        Fix after merge
      mysql-test/t/rpl000009.test:
        Fix after merge
      mysql-test/t/rpl_alter.test:
        Fix after merge
      mysql-test/t/rpl_loaddata_rule_m.test:
        Fix after merge
      mysql-test/t/rpl_trunc_binlog.test:
        Fix after merge
      sql-common/client.c:
        Fix after merge
      sql/item_subselect.cc:
        Fix after merge
      sql/repl_failsafe.cc:
        Fix after merge
      sql/slave.cc:
        Fix after merge
      sql/sql_insert.cc:
        Fix after merge
      1ead85e6
  4. 19 Sep, 2003 1 commit
    • unknown's avatar
      SCRUM · 2d46389a
      unknown authored
      embedded library
      hash_insert renamed to my_hash_insert to avoid name intersection
      with another libraries
      is there better idea?
      
      
      client/mysqltest.c:
        hash_insert ->my_hash_insert
      include/hash.h:
        hash_insert ->my_hash_insert
      mysys/hash.c:
        hash_insert ->my_hash_insert
      mysys/testhash.c:
        hash_insert ->my_hash_insert
      sql/ha_berkeley.cc:
        hash_insert ->my_hash_insert
      sql/ha_innodb.cc:
        hash_insert ->my_hash_insert
      sql/hash_filo.h:
        hash_insert ->my_hash_insert
      sql/item_func.cc:
        hash_insert ->my_hash_insert
      sql/lock.cc:
        hash_insert ->my_hash_insert
      sql/repl_failsafe.cc:
        hash_insert ->my_hash_insert
      sql/set_var.cc:
        hash_insert ->my_hash_insert
      sql/slave.cc:
        hash_insert ->my_hash_insert
      sql/sql_acl.cc:
        hash_insert ->my_hash_insert
      sql/sql_base.cc:
        hash_insert ->my_hash_insert
      sql/sql_cache.cc:
        hash_insert ->my_hash_insert
      sql/sql_parse.cc:
        hash_insert ->my_hash_insert
      sql/sql_select.cc:
        hash_insert ->my_hash_insert
      sql/sql_udf.cc:
        hash_insert ->my_hash_insert
      sql/table.cc:
        hash_insert ->my_hash_insert
      tools/mysqlmanager.c:
        hash_insert ->my_hash_insert
      2d46389a
  5. 13 Sep, 2003 1 commit
    • unknown's avatar
      Implemented support for START SLAVE UNTIL (WL#868) · 2f8f0a7e
      unknown authored
      include/mysqld_error.h:
        Added error codes for warnings and error messages for START SLAVE UNTIL
      mysql-test/r/rpl000015.result:
        Fixed test because 3 new columns to SHOW SLAVE STATUS output were added
      mysql-test/r/rpl_empty_master_crash.result:
        Fixed test because 3 new columns to SHOW SLAVE STATUS output were added
      mysql-test/r/rpl_flush_log_loop.result:
        Fixed test because 3 new columns to SHOW SLAVE STATUS output were added
      mysql-test/r/rpl_log.result:
        Fixed test because 3 new columns to SHOW SLAVE STATUS output were added
      mysql-test/r/rpl_log_pos.result:
        Fixed test because 3 new columns to SHOW SLAVE STATUS output were added
      mysql-test/r/rpl_redirect.result:
        Fixed test because 3 new columns to SHOW SLAVE STATUS output were added
      mysql-test/r/rpl_replicate_do.result:
        Fixed test because 3 new columns to SHOW SLAVE STATUS output were added
      mysql-test/r/rpl_rotate_logs.result:
        Fixed test because 3 new columns to SHOW SLAVE STATUS output were added
      sql/lex.h:
        Added UNTIL symbol
      sql/log.cc:
        Invalidating until_log_name comparison result if group_relay_log_name is changed
      sql/log_event.cc:
        Invalidating until_log_name comparison result if group_master_log_name is changed
      sql/repl_failsafe.cc:
        Cancel until condition if LOAD MASTER DATA is executed
      sql/share/czech/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/danish/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/dutch/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/english/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/estonian/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/french/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/german/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/greek/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/hungarian/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/italian/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/japanese/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/korean/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/norwegian-ny/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/norwegian/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/polish/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/portuguese/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/romanian/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/russian/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/serbian/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/slovak/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/spanish/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/swedish/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/share/ukrainian/errmsg.txt:
        Added error and warning message for START SLAVE UNTIL
      sql/slave.cc:
        Fixed wrong locking order in init_relay_log_pos()
        Added until condition fields to SHOW SLAVE STATUS
        Added checking if UNTIL condition is reached 
        (added proper method, added its invocation, reorganized locking 
        in exec_relay_log_event() and next_event())
      sql/slave.h:
        Members in RELAY_LOG_INFO for storing UNTIL condition. Also 
        methods for for invalidation of cached UNTIL condition comparison
        results
      sql/sql_repl.cc:
        Now honoring UNTIL clause then starting slave thread. Proper 
        errors and warnings.
      sql/sql_yacc.yy:
        Added support for UNTIL clause in START SLAVE. This involved 
        extraction of some of master_defs to separate master_file_def
        non-terminal.
      2f8f0a7e
  6. 12 Sep, 2003 1 commit
    • unknown's avatar
      Quick backport of the following bugfix from MySQL 4.0.14. · 8cc642d7
      unknown authored
      DO NOT COPY THIS CODE TO 4.0. The bugfix is better in 4.0,
      but here in 3.23 we don't want to add a new error code so
      we just use ER_EMPTY_QUERY. Bug was:
      "If a query was ignored on the slave (because of
      @code{replicate-ignore-table} and other similar rules), the slave
      still checked if the query got the same error code (0, no error) as on
      the master. So if the master had an error on the query (for example,
      ``Duplicate entry'' in a multiple-row insert), then the slave stopped
      and warned that the error codes didn't match. (Bug #797)"
      
      
      sql/slave.cc:
        Ignore ER_EMPTY_QUERY as it is also a marker for "query was ignored because 
        of replicate-*-table rules".
      sql/sql_parse.cc:
        In a slave thread, mark an ignored query (because of replicate-*-table rules)
        as empty. The caller, exec_event(), will understand this error code as "ignorable
        query, don't compare the error codes on master and slave".
      8cc642d7
  7. 11 Sep, 2003 2 commits
    • unknown's avatar
      * Fix for BUG#1248: "LOAD DATA FROM MASTER drops the slave's db unexpectedly". · 69b8b3ff
      unknown authored
      Now LOAD DATA FROM MASTER does not drop the database, instead it only tries to
      create it, and drops/creates table-by-table.
      * replicate_wild_ignore_table='db1.%' is now considered as "ignore the 'db1'
      database as a whole", as it already works for CREATE DATABASE and DROP DATABASE.
      
      
      mysql-test/r/rpl000009.result:
        result update
      mysql-test/t/rpl000009.test:
        test that LOAD DATA FROM MASTER does not drop databases,
        but rather table by table, thus preserving non-replicated tables.
        Test that LOAD DATA FROM MASTER reports the error when a table could not
        be dropped (system's "permission denied" for example).
        Test that LOAD TABLE FROM MASTER reports the error when the table already exists.
      sql/repl_failsafe.cc:
        * replicate_wild_ignore_table='db1.%' is now considered as "ignore the 'db1'
        database as a whole", as it already works for CREATE DATABASE and DROP DATABASE.
        * If a db matches replicate_*_db rules, we don't drop/recreate it because this
        could drop some tables in this db which could be slave-specific. Instead,
        we do a CREATE DATABASE IF EXISTS, and we will drop each table which has
        an equivalent on the master, table-by-table.
      sql/slave.cc:
        New argument to drop the table in create_table_from_dump() 
        (LOAD TABLE/DATA FROM MASTER are the only places where this function is used).
        This is needed because LOAD DATA FROM MASTER does not drop the database anymore.
        The behaviour when the table exists is unchanged: LOAD DATA silently replaces
        the table, LOAD TABLE gives error.
      sql/slave.h:
        new argument to drop the table in fetch_master_table
      sql/sql_parse.cc:
        do not drop the table in LOAD TABLE FROM MASTER (this behaviour is already
        true; but changes in LOAD DATA FROM MASTER made the argument needed).
      69b8b3ff
    • unknown's avatar
      After merge fixes. · dd0d199e
      unknown authored
      Note that mix_innodb_myisam_binlog and union fails after this patch (Will be fixed shortly by maintaners of this code)
      
      
      client/mysql.cc:
        After merge fix
      include/mysql.h:
        Some additions to MYSQL_BIND for cleaner prepared statement code
      libmysql/libmysql.c:
        mysql_prepare_result -> mysql_get_metadata()
        Added test for offset overflow when using mysql_fetch_column()
        Cleaned up mysql_fetch_column()
        Optimized fetch_result() usage
      mysql-test/r/func_group.result:
        Updated results after merge
      mysql-test/r/func_test.result:
        Updated results after merge
      mysql-test/r/grant.result:
        Updated results after merge
      mysql-test/r/loaddata.result:
        Updated results after merge
      mysql-test/r/lowercase_table.result:
        Updated results after merge
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Updated results after merge (note that this is still not correct; Need patch to mysqld to fix this properly)
      mysql-test/r/myisam.result:
        Updated results after merge
      mysql-test/r/range.result:
        Updated results after merge
      mysql-test/r/rpl_loaddata.result:
        Updated results after merge
      mysql-test/r/rpl_loaddata_rule_m.result:
        Updated results after merge
      mysql-test/r/rpl_loaddata_rule_s.result:
        Updated results after merge
      mysql-test/r/rpl_log.result:
        Updated results after merge
      mysql-test/r/union.result:
        Updated results after merge
      mysql-test/t/lowercase_table.test:
        Update after merge
      mysql-test/t/myisam.test:
        Update after merge
      mysql-test/t/union.test:
        Update after merge
      sql-bench/compare-results.sh:
        Fix for now output format
      sql/field.h:
        Added is_null_in_record() to make ha_innodb.cc code more general
      sql/ha_innodb.cc:
        Removed some functions that uses inernal (private) MySQL information
      sql/item_cmpfunc.cc:
        After merge fix
      sql/log_event.cc:
        After merge fix; (Some code should be checked by Guilhem)
      sql/opt_range.cc:
        Simple optimzation and after merge fixes
      sql/slave.cc:
        After merge fix
      sql/sql_acl.cc:
        After merge fix + code cleanup
      sql/sql_select.cc:
        After merge fix
      sql/sql_show.cc:
        After merge fix
      sql/sql_table.cc:
        After merge fix
        Cleanup of mysql_checksum_table()
      sql/sql_union.cc:
        After merge fixes.
        Note that after this the union test still fails; Will be fixed shortly...
      tests/client_test.c:
        mysql_prepare_result() -> mysql_get_metadata()
      dd0d199e
  8. 03 Sep, 2003 1 commit
    • unknown's avatar
      post-merge fixes · d42b4eeb
      unknown authored
      mysql-test/r/func_crypt.result:
        _dig_vec converted lowercase
      sql/slave.cc:
        post-merge fix
      d42b4eeb
  9. 01 Sep, 2003 1 commit
    • unknown's avatar
      Implemented replication over SSL · 8a548ffd
      unknown authored
       Added proper options to CHANGE MASTER TO, new fields to SHOW SLAVE STATUS,
       Honoring this parameters during connection to master.
       Introduced new format of master.info file
      
      
      include/mysqld_error.h:
        Added error code for "slave without SSL ignored SSL params warning"
      mysql-test/Makefile.am:
        Copy files required for rpl_openssl test during the make process
      mysql-test/r/rpl000015.result:
        Added fields to SHOW SLAVE STATUS for replication over SSL
      mysql-test/r/rpl_empty_master_crash.result:
        Added fields to SHOW SLAVE STATUS for replication over SSL
      mysql-test/r/rpl_flush_log_loop.result:
        Added fields to SHOW SLAVE STATUS for replication over SSL
      mysql-test/r/rpl_log.result:
        Added fields to SHOW SLAVE STATUS for replication over SSL
      mysql-test/r/rpl_log_pos.result:
        Added fields to SHOW SLAVE STATUS for replication over SSL
      mysql-test/r/rpl_redirect.result:
        Added fields to SHOW SLAVE STATUS for replication over SSL
      mysql-test/r/rpl_replicate_do.result:
        Added fields to SHOW SLAVE STATUS for replication over SSL
      mysql-test/r/rpl_rotate_logs.result:
        Added fields to SHOW SLAVE STATUS for replication over SSL
      sql/lex.h:
        Added MASTER_SSL lexems for CHANGE MASTER
      sql/mysqld.cc:
        Added --master-ssl-ca parameter. Fixed description of other master-ssl parameters
      sql/repl_failsafe.cc:
        Added SSL support to connect_to_master()
      sql/share/czech/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/danish/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/dutch/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/english/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/estonian/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/french/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/german/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/greek/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/hungarian/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/italian/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/japanese/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/korean/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/norwegian-ny/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/norwegian/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/polish/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/portuguese/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/romanian/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/russian/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/serbian/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/slovak/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/spanish/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/swedish/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/share/ukrainian/errmsg.txt:
        Added "slave without SSL ignored SSL params" warning
      sql/slave.cc:
        Introduced new format of master.info file
        Added support of SSL params in master.info and SHOW SLAVE STATUS
        Added support of SSL connections
      sql/slave.h:
        Added SSL parameters to MASTER_INFO
      sql/sql_lex.h:
        Added SSL parameters for CHANGE MASTER TO
      sql/sql_repl.cc:
        Added SSL parameters for CHANGE MASTER TO
      sql/sql_yacc.yy:
        Added SSL parameters for CHANGE MASTER TO
      8a548ffd
  10. 27 Aug, 2003 1 commit
    • unknown's avatar
      hanged UDF interface to use clear() instead of reset() · 0ee6f7fd
      unknown authored
      BUILD/FINISH.sh:
        Add just_clean option (for cleanup script)
      scripts/mysql_fix_privilege_tables.sql:
        Added 'USE mysql' for easer use on windows
      sql/item_sum.cc:
        Changed UDF interface to use clear() instead of reset()
      sql/item_sum.h:
        Changed UDF interface to use clear() instead of reset()
      sql/slave.cc:
        Fixed checking of eof for slave/master protocol. (Bug #887)
      sql/sql_udf.cc:
        Changed UDF interface to use clear() instead of reset()
      sql/sql_udf.h:
        Changed UDF interface to use clear() instead of reset()
      sql/sql_yacc.yy:
        ERRORS and WARNINGS should not be reserved words
      sql/udf_example.cc:
        Changed UDF interface to use clear() instead of reset()
      0ee6f7fd
  11. 25 Aug, 2003 2 commits
    • unknown's avatar
      comments about mutexes in replication. · 3fdc38d4
      unknown authored
      Don't start the SQL slave thread with SQL_BIG_SELECTS;
      it's better to inhibate max_join_size instead.
      
      
      sql/slave.cc:
        OPTION_BIG_SELECTS does more than ignoring max_join_size (talks to the optimiser),
        just ignore max_join_size.
      sql/slave.h:
        comments
      3fdc38d4
    • unknown's avatar
      Clearer states in SHOW PROCESSLIST for replication threads. · c47ee569
      unknown authored
      For example the Binlog_dump thread (on the master) sometimes showed "Slave:".
      And there were confusing messages where "binlog" was employed instead
      of "relay log".
      
      
      sql/log.cc:
        MYSQL_LOG::wait_for_update() is used by the binlog_dump and I/Oslave threads,
        and it updates thd->proc_info, so we need a bool to not show the same
        proc_info for 2 different things (previously we showed "Slave: etc" and that's
        bad for a binlog_dump thread).
      sql/slave.cc:
        Clearer thd-proc_info for slave threads.
      sql/sql_class.h:
        prototype change
      sql/sql_repl.cc:
        clearer thd->proc_info for binlog_dump thread
      c47ee569
  12. 23 Aug, 2003 2 commits
    • unknown's avatar
      The slave threads MUST not care about max_join_size, we start them with · 89e95d0c
      unknown authored
      OPTION_BIG_SELECTS.
      
      
      sql/slave.cc:
        The slave threads MUST not care about max_join_size.
        I can imagine the case of a slave where users can connect and do SELECTs, but
        DBA does not want them to issue crazy SELECTs, but he/she still wants replication
        to work.
        Before, this just printed a warning to the error log (not fatal) but that
        was still annoying.
      89e95d0c
    • unknown's avatar
      * Fix for a potential bug: · 6e10224d
      unknown authored
      when the SQL thread stops, set rli->inside_transaction to 0. This is needed if the user
      later restarts replication from a completely different place where there are only autocommit
      statements.
      * Detect the case where the master died while flushing the binlog cache to the binlog
      and stop with error. Cannot add a testcase for this in 4.0 (I tested it manually)
      as the slave always runs with --skip-innodb.
      
      
      sql/log_event.cc:
        Detect the case where the master died while flushing the binlog cache to the binlog:
        in that case, we have a BEGIN with no COMMIT/ROLLBACK in the relay log; we detect
        this with rli->inside_transaction in Rotate_log_event::exec_event() (which is the
        only right place to detect this, see comments). When we see it, we stop with error.
        In 4.1, I had put code in Start_log_event::exec_event(); I'll remove it next time
        I push in the 4.1 tree.
      sql/slave.cc:
        * Use slave_print_error instead of sql_print_error, to put the info in SHOW SLAVE STATUS too.
        * Fix for a potential bug:
        when the SQL thread stops, set rli->inside_transaction to 0. This is not needed if
        replication later restarts from the same position; but this is needed if the user
        restarts replication from a completely different place where there are only autocommit
        statements (in that case, if we didn't set to 0, the position would never increment in SHOW
        SLAVE STATUS, even if queries are processed well).
      6e10224d
  13. 21 Aug, 2003 1 commit
  14. 20 Aug, 2003 1 commit
    • unknown's avatar
      First commit for fixing BUG#1100 · 1542fffb
      unknown authored
      "LOAD DATA INFILE is badly filtered by binlog-*-db rules".
      There will probably be a second final one to merge Dmitri's changes
      to rpl_log.result and mine.
      2 new tests:
      rpl_loaddata_rule_m : test of logging of LOAD DATA INFILE when the master has binlog-*-db rules,
      rpl_loaddata_rule_s : test of logging of LOAD DATA INFILE when the slave has binlog-*-db rules and --log-slave-updates.
      
      
      mysql-test/r/rpl_loaddata.result:
        Test that logging of LOAD DATA INFILE is done on the slave
      mysql-test/t/rpl_loaddata.test:
        Test that logging of LOAD DATA is done on the slave
      sql/log.cc:
        debug info
      sql/log_event.cc:
        * Append_block, Exec_load and Delete_file now have a member 'db' like Create_file.
        This member is filled by mysql_load(). It is used for filtering by binlog-*-db rules,
        that's all. It's not written to the binlog, and so can't be read from the binlog.
        In other words, that's temporary info which is stored in the event and lost when
        it is written and deleted.
        * Better error messages in Append_block et al. events.
        * The slave now logs (log-slave-updates) the Create_file et al. events in mysql_load()
        (they are not directly copied from the events in the relay log, because this
        prevented filtering by binlog-*-db rules). Before, mysql_load() in the slave
        did no logging, now it does the logging, as in any regular thread.
      sql/log_event.h:
        New member 'db' for Append_block et al. events.
      sql/slave.cc:
        Removed useless code. Why was it useless:
        - CREATE_FILE_EVENT is not defined in 3.23. It appeared in 4.0.
        - in queue_old_event(), which is called only if the master is 3.23, we had a
        case CREATE_FILE_EVENT:
        so this case can be removed.
        - this case was the only caller of process_io_create_file() so this function
        can be removed.
      sql/sql_load.cc:
        Pass the db to events, so that they can be well filtered.
      sql/sql_repl.cc:
        Pass the db to events so that they can be well filtered.
      1542fffb
  15. 19 Aug, 2003 2 commits
    • unknown's avatar
      Fix for BUG#1086. Now we don't preserve event's log_pos through · e3541b8a
      unknown authored
      log-slave-updates since this causes unexpected values in 
      Exec_master_log_pos in A->B->C replication setup, synchronization
       problems in master_pos_wait()... 
      Still this brokes some functionality in sql/repl_failsafe.cc 
      (but this file is not used now)
      
      
      mysql-test/r/rpl_log.result:
        SHOW BINLOG EVENTS for binlog on slave should give the same 
        Orig_log_pos and Pos values
      sql/log_event.cc:
        Do not propagate our master's log pos to our bin log
      sql/repl_failsafe.cc:
        Added comment about broken SHOW NEW MASTER
      sql/slave.cc:
        Do not propagate our master's log pos to our bin log
      sql/sql_class.cc:
        THD::log_pos is no longer needed
      sql/sql_class.h:
        THD::log_pos is no longer needed
      sql/sql_parse.cc:
        Added comment about broken SHOW NEW MASTER
      e3541b8a
    • unknown's avatar
      After merge fixes + bugs from last merge · aa900a5e
      unknown authored
      mysql-test/mysql-test-run.sh:
        Use --skip-bdb with valgrind (as bdb tables causes valgrind to hang)
        Fix --ddd option
      mysql-test/t/union.test:
        After merge fix
      sql/item.cc:
        Fixed typo
      sql/log_event.cc:
        Move current_tablenr to open_tables()
      sql/protocol.h:
        Fixed wrong memory reference
      sql/set_var.cc:
        After merge fix
      sql/slave.cc:
        Reset thd->lex.current_select before execute
      sql/sql_base.cc:
        Move current_tablenr to open_tables()
      sql/sql_class.cc:
        Move current_tablenr to open_tables()
        Add missing update_charset()
      sql/sql_parse.cc:
        Move current_tablenr to open_tables()
        Simple cleanup
      sql/table.cc:
        Code cleanup
      aa900a5e
  16. 18 Aug, 2003 1 commit
    • unknown's avatar
      After merge fixes · 2901c3b8
      unknown authored
      Use server character set if --default-character-set is not used
      Added convert_string() for more efficient alloc+character-set convert of strings
      
      
      BitKeeper/deleted/.del-convert.result~a3b56e1db6f498e9:
        Delete: mysql-test/r/convert.result
      BitKeeper/deleted/.del-convert.test~f4ceb743194dfe72:
        Delete: mysql-test/t/convert.test
      BitKeeper/deleted/.del-make_win_src_distribution.old~5c9ebdc4a852b43b:
        Delete: scripts/make_win_src_distribution.old
      client/mysql.cc:
        Use server character set if --default-character-set is not used
      client/mysqltest.c:
        Code cleanup (merge identical code)
        More debug messages
      heap/hp_create.c:
        After merge fix
      include/m_ctype.h:
        After merge fix
      include/my_global.h:
        Remove size_str (we already have size_s)
      include/mysql_com.h:
        After merge fix
      libmysql/libmysql.c:
        After merge fix
      libmysqld/Makefile.am:
        After merge fix
      mysql-test/r/auto_increment.result:
        After merge fix
      mysql-test/r/create.result:
        After merge fix
      mysql-test/r/ctype_latin1_de.result:
        After merge fix
      mysql-test/r/distinct.result:
        After merge fix
      mysql-test/r/drop.result:
        After merge fix
      mysql-test/r/fulltext.result:
        After merge fix
      mysql-test/r/func_gconcat.result:
        After merge fix
      mysql-test/r/func_str.result:
        After merge fix
      mysql-test/r/func_test.result:
        After merge fix
      mysql-test/r/grant.result:
        After merge fix
      mysql-test/r/group_by.result:
        After merge fix
      mysql-test/r/handler.result:
        After merge fix
      mysql-test/r/heap.result:
        After merge fix
      mysql-test/r/heap_btree.result:
        After merge fix
      mysql-test/r/heap_hash.result:
        After merge fix
      mysql-test/r/innodb.result:
        After merge fix
      mysql-test/r/insert.result:
        After merge fix
      mysql-test/r/insert_select.result:
        After merge fix
      mysql-test/r/join_outer.result:
        After merge fix
      mysql-test/r/key.result:
        After merge fix
      mysql-test/r/key_cache.result:
        After merge fix
      mysql-test/r/loaddata.result:
        After merge fix
      mysql-test/r/myisam.result:
        After merge fix
      mysql-test/r/null.result:
        After merge fix
      mysql-test/r/null_key.result:
        After merge fix
      mysql-test/r/order_by.result:
        After merge fix
      mysql-test/r/rpl_do_grant.result:
        After merge fix
      mysql-test/r/rpl_error_ignored_table.result:
        After merge fix
      mysql-test/r/rpl_ignore_grant.result:
        After merge fix
      mysql-test/r/rpl_loaddata.result:
        After merge fix
      mysql-test/r/rpl_log.result:
        After merge fix
      mysql-test/r/rpl_log_pos.result:
        After merge fix
      mysql-test/r/rpl_max_relay_size.result:
        After merge fix
      mysql-test/r/rpl_replicate_do.result:
        After merge fix
      mysql-test/r/rpl_reset_slave.result:
        After merge fix
      mysql-test/r/rpl_rotate_logs.result:
        After merge fix
      mysql-test/r/rpl_user_variables.result:
        After merge fix
      mysql-test/r/select.result:
        After merge fix
      mysql-test/r/select_safe.result:
        After merge fix
      mysql-test/r/subselect.result:
        After merge fix
      mysql-test/r/type_blob.result:
        After merge fix
      mysql-test/r/type_decimal.result:
        After merge fix
      mysql-test/r/type_float.result:
        After merge fix
      mysql-test/r/type_ranges.result:
        After merge fix
      mysql-test/r/type_time.result:
        After merge fix
      mysql-test/r/type_uint.result:
        After merge fix
      mysql-test/r/union.result:
        After merge fix
      mysql-test/r/warnings.result:
        After merge fix
      mysql-test/t/auto_increment.test:
        After merge fix
      mysql-test/t/case.test:
        After merge fix
      mysql-test/t/ctype_collate.test:
        After merge fix
      mysql-test/t/ctype_latin1_de.test:
        After merge fix
      mysql-test/t/drop.test:
        After merge fix
      mysql-test/t/func_in.test:
        After merge fix
      mysql-test/t/func_set.test:
        After merge fix
      mysql-test/t/func_str.test:
        After merge fix
      mysql-test/t/func_test.test:
        After merge fix
      mysql-test/t/grant.test:
        After merge fix
      mysql-test/t/group_by.test:
        After merge fix
      mysql-test/t/handler.test:
        After merge fix
      mysql-test/t/heap.test:
        After merge fix
      mysql-test/t/heap_btree.test:
        After merge fix
      mysql-test/t/heap_hash.test:
        After merge fix
      mysql-test/t/innodb.test:
        After merge fix
      mysql-test/t/insert_select.test:
        After merge fix
      mysql-test/t/key.test:
        After merge fix
      mysql-test/t/key_cache.test:
        After merge fix
      mysql-test/t/lock_tables_lost_commit-master.opt:
        After merge fix
      mysql-test/t/lock_tables_lost_commit.test:
        After merge fix
      mysql-test/t/myisam.test:
        After merge fix
      mysql-test/t/row.test:
        After merge fix
      mysql-test/t/subselect.test:
        After merge fix
      mysql-test/t/type_decimal.test:
        After merge fix
      mysql-test/t/type_ranges.test:
        After merge fix
      mysql-test/t/type_uint.test:
        After merge fix
      mysql-test/t/variables.test:
        After merge fix
      mysql-test/t/warnings.test:
        After merge fix
      scripts/make_win_src_distribution.sh:
        after merge fixes
      sql-common/client.c:
        After merge fix
        Change my_connect() to use poll()
        If character set is not given, use servers character set.
      sql/field.cc:
        After merge fix
        Don't give warnings when storing data in fields in optimizer.
      sql/ha_myisammrg.h:
        After merge fix
      sql/log.cc:
        After merge fix
      sql/log_event.cc:
        After merge fix
      sql/mysqld.cc:
        After merge fix
      sql/opt_range.cc:
        After merge fix
      sql/set_var.cc:
        Code cleanup
        Fixed wrong usage of base_names (like medium.key_buffer) that caused core dumps
      sql/set_var.h:
        Fixed wrong usage of base_names (like medium.key_buffer) that caused core dumps
      sql/slave.cc:
        After merge fix
      sql/sql_acl.cc:
        After merge fix
        Code cleanup
      sql/sql_class.cc:
        Added convert_string() for more efficient alloc+character-set convert of strings
        Add cached flags to avoid calling mysql_charset_same() during parsing.
      sql/sql_class.h:
        Added convert_string() for more efficient alloc+character-set convert of strings
        Add cached flags to avoid calling mysql_charset_same() during parsing.
      sql/sql_handler.cc:
        After merge fix
      sql/sql_lex.h:
        After merge fix
      sql/sql_parse.cc:
        Optimize and fix memory reference errors reported by valgrind
      sql/sql_repl.cc:
        After merge fix
      sql/sql_yacc.yy:
        After merge fix
        Avoid calling mysql_charset_same() when parsing identifiers
      strings/ctype-latin1.c:
        Port latin_de conversion code from 4.0
      2901c3b8
  17. 07 Aug, 2003 1 commit
    • unknown's avatar
      Review of changesets since last pull. · fa1613be
      unknown authored
      (Mostly code cleanups)
      
      
      include/my_sys.h:
        Removed not used define
      myisam/mi_check.c:
        Indentation change
      mysql-test/t/rpl_insert_id.test:
        Add test if server supports innodb
      mysys/mf_format.c:
        Remove QUOTE handling from fn_format()
        (fn_format() should not have anything to do with quoting things)
      sql/log_event.cc:
        Removed some unnecessary casts (by changing functions to use const char *)
        Cleaned up some error messages to make them shorter and (hopefully) more readable.
        Fixed wrong format strings
        Restored 'thd->options' on error.
      sql/mini_client.cc:
        Changed order of include files to remove compilation warning
      sql/mysqld.cc:
        Add proper quoting of service arguments (don't use fn_format)
      sql/slave.cc:
        Simple optimization and cleanup.
        Changed rewrite_db() and print_slave_db_safe() to use const char* to avoid casting of arguments when calling functions.
        Cleanup of some error messages.
      sql/slave.h:
        Changed protypes to use const char *
      sql/sql_acl.cc:
        Simple optimization
      vio/viosslfactories.c:
        Changed order of include files to remove compilation warning
      fa1613be
  18. 04 Aug, 2003 1 commit
    • unknown's avatar
      2 bugfixes: · d8df84aa
      unknown authored
      - Bug #985: "Between RESET SLAVE and START SLAVE, SHOW SLAVE STATUS is wrong."
      Now RESET SLAVE puts correct info in mi->host etc. A new test rpl_reset_slave
      for that.
      - Bug #986: "CHANGE MASTER & START SLAVE do not reset error columns in SHOW
      SLAVE STATUS". Now these reset the errors.
      
      
      mysql-test/r/rpl_loaddata.result:
        result update.
      mysql-test/t/rpl_loaddata.test:
        Test that RESET SLAVE, START SLAVE and CHANGE MASTER all reset 
        Last_slave_error and Last_slave_errno (columns of SHOW SLAVE STATUS).
        We do it in this test because that's one of tests which have 
        an intentional query error on the slave.
      sql/slave.cc:
        As we need TWICE the code to copy command-line options (--master-host etc)
        to mi (we already had it in init_master_info, but we also need it in RESET
        SLAVE to fix bug#985), I make a function of this code.
        And a function to reset Last_slave_error and Last_slave_errno (we need
        it in CHANGE MASTER, RESET SLAVE, and at the start of the SQL thread).
      sql/slave.h:
        declarations for new functions.
      sql/sql_repl.cc:
        copy --master-host etc to mi in RESET SLAVE, so that SHOW SLAVE STATUS
        shows correct information.
      d8df84aa
  19. 24 Jul, 2003 1 commit
    • unknown's avatar
      WL#1036 (print the db in slave error messages). · ab34adf6
      unknown authored
      I extended the task to cleaning error messages, making them look nicer,
      and making the output of SHOW SLAVE STATUS (column Last_error) be as complete
      as what's printed on the .err file;
      previously we would have, for a failure of a replicated LOAD DATA INFILE:
      - in the .err, 2 lines:
      "duplicate entry 2708 for key 1"
      "failed loading SQL_LOAD-5-2-2.info"
      - and in SHOW SLAVE STATUS, only:
      "failed loading SQL_LOAD-5-2-2.info".
      Now SHOW SLAVE STATUS will contain the concatenation of the 2 messages.
      
      
      sql/log_event.cc:
        Print the default database when replication stops because of an error. Previously, we had:
        "error "Duplicate entry 87987 for key 1", query 'insert into t values(87987)'", ie the db
        was not mentioned, making it hard for cases where the same table name is used in
        several databases.
        Lengthened some error messages (for failing replication of LOAD DATA: mention the table
        and the db).
        Changes so that SHOW SLAVE STATUS reports as complete errors as the .err file.
      sql/slave.cc:
        Removed a useless declaration (the rewrite_db() function is already declared in slave.h).
        Added missing ')' in error messages.
        Tried to make error messages look nicer (previously we had
        "do START SLAVE;, error_code=1062"
        now we'll have
        "do START SLAVE; . Error_code=1062".
        This form has been discussed, I agree it's no panacea, but it's still more readable
        like this. To be improved in the future :)
      sql/slave.h:
        declarations.
      ab34adf6
  20. 23 Jul, 2003 1 commit
    • unknown's avatar
      On Feb 4th, 2003, Monty said he would push my patch to print replicate-do-table · dae34fb6
      unknown authored
      and other replicate-*-table options in SHOW SLAVE STATUS.
      Seems like it had not been done, so I push it now:
      there's 4 new columns to SHOW SLAVE STATUS.
      
      
      mysql-test/r/rpl000015.result:
        Result update (more columns)
      mysql-test/r/rpl_empty_master_crash.result:
        Result update (more columns)
      mysql-test/r/rpl_flush_log_loop.result:
        Result update (more columns)
      mysql-test/r/rpl_log.result:
        Result update (more columns)
      mysql-test/r/rpl_log_pos.result:
        Result update (more columns)
      mysql-test/r/rpl_redirect.result:
        Result update (more columns)
      mysql-test/r/rpl_replicate_do.result:
        Result update (more columns)
      mysql-test/r/rpl_rotate_logs.result:
        Result update (more columns)
      mysql-test/t/rpl_replicate_do.test:
        Result update (more columns)
      sql/slave.cc:
        Print replicate_*_table options in SHOW SLAVE STATUS
      sql/slave.h:
        two functions to make a string of replicate_*_table lists.
      dae34fb6
  21. 14 Jul, 2003 1 commit
    • unknown's avatar
      Better fix for bug #791: At binlog rotation, INSERTs may not find their way into the binlog · 128feded
      unknown authored
      mysql-test/t/rpl_flush_log_loop.test:
        Add timer to avoid problem when 'flush logs' is executed before we have read all data from master
      sql/log.cc:
        Better fix for bug #791:
        Mark log as LOG_TO_BE_OPENED instead of LOG_CLOSED when it's closed and opened.
      sql/mysqld.cc:
        Better startup message
      sql/slave.cc:
        Fix argument to close()
      sql/sql_class.h:
        Better handling of log.close()
      128feded
  22. 11 Jul, 2003 1 commit
    • unknown's avatar
      Fix for BUG#791: · d974959b
      unknown authored
      a safer way of initing the mutexes in MYSQL_LOG.
      is_open() is now always thread-safe.
      See each file for details.
      
      
      sql/handler.cc:
        is_open() with locks
      sql/item_func.cc:
        is_open() with locks
      sql/log.cc:
        No more 'inited'.
        We now always use is_open() in a thread-safe manner.
        This simplifies some functions (no more need to test is_open() twice).
      sql/log_event.cc:
        is_open() with locks
      sql/mysqld.cc:
        Init mutexes for the global MYSQL_LOG objects.
        We care about no_rotate, because we can't do it in open() anymore (because
        we don't have 'inited' anymore).
      sql/repl_failsafe.cc:
        is_open() with locks
      sql/slave.cc:
        init pthread objects (mutexes, conds) in the constructor of st_relay_log_info.
        Some better locking in rotate_relay_log().
      sql/sql_base.cc:
        is_open() with locks
      sql/sql_class.h:
        Before, we inited LOCK_log in MYSQL_LOG::open(), so in other places of the code
        when we were never 100% sure that it had been inited. For example, if the server
        was running without --log-bin, ::open() was not called so the mutex was not
        inited. We could detect it with !inited, but not safely as 'inited' was not
        protected by any mutex.
        So now:
        we *always* init the LOCK_log mutex, even if the log is not used. We can't init
        the mutex in MYSQL_LOG's constructor, because for global objects like
        mysql_bin_log, mysql_log etc, the constructor is called before MY_INIT(), but
        safe_mutex depends on MY_INIT(). So we have a new function MYSQL_LOG::init_pthread_objects
        which we call in main(), after MY_INIT().
        For the relay log, we call this function in the constructor of
        st_relay_log_info, which is called before any function tries to
        use the relay log (the relay log is always invoked as rli.relay_log).
        So now we should be safe in all cases and we don't need 'inited'.
      sql/sql_db.cc:
        is_open() with locks
      sql/sql_delete.cc:
        is_open() with locks
      sql/sql_insert.cc:
        is_open() with locks
      sql/sql_load.cc:
        is_open() with locks
      sql/sql_parse.cc:
        is_open() with locks
      sql/sql_rename.cc:
        is_open() with locks
      sql/sql_repl.cc:
        is_open() with locks
      sql/sql_table.cc:
        is_open() with locks
      sql/sql_update.cc:
        is_open() with locks
      d974959b
  23. 08 Jul, 2003 1 commit
    • unknown's avatar
      Cleanups · 3c268e59
      unknown authored
      mysql-test/t/distinct.test:
        Cleanup
      sql/log.cc:
        Cleanup
      sql/slave.cc:
        Cleanup
      sql/sql_delete.cc:
        Cleanup
      sql/sql_parse.cc:
        Simple optimization
      3c268e59
  24. 06 Jul, 2003 1 commit
    • unknown's avatar
      WL#912 (more user control on relay logs): · 27601fc5
      unknown authored
      FLUSH LOGS now rotates relay logs,
      and a new variable max_relay_log_size.
      Plus a very small bit of code cleaning.
      
      
      libmysqld/lib_sql.cc:
        open_log has no default arguments anymore.
      mysql-test/r/rpl_flush_log_loop.result:
        result update now that FLUSH LOGS rotates relay logs.
      mysql-test/r/rpl_log.result:
        result update now that FLUSH LOGS rotates relay logs.
      mysql-test/r/rpl_rotate_logs.result:
        result update now that max_binlog_size is 4096.
      mysql-test/t/rpl_rotate_logs-master.opt:
        now max_binlog_size must be a multiple of 4096 (see change in mysqld.cc)
      sql/log.cc:
        Got rid of default arguments of various MYSQL_LOG methods (the default arguments
        made code reading uneasy).
        Set max_size in ::init().
        New function set_max_size() to set max_size of a MYSQL_LOG on-the-fly.
        More DBUG info.
      sql/mysql_priv.h:
        no defaults in open_log().
        New variables max_relay_log_size.
      sql/mysqld.cc:
        New variable and option max_relay_log_size.
        max_binlog_size and max_relay_log_size are multiples of IO_SIZE.
        No more default arguments for log functions.
      sql/set_var.cc:
        New variable max_relay_log_size.
        If it is 0, then max_binlog_size will apply to relay logs.
        When one of these variables is changed, fix_max_%log_size is called
        to update max_size of the binary and/or relay logs.
      sql/slave.cc:
        New function rotate_relay_log().
      sql/slave.h:
        New function rotate_relay_log().
      sql/sql_class.h:
        New member max_size of MYSQL_LOG (for automatic rotation).
        New method set_max_size() for setting on-the-fly.
      sql/sql_parse.cc:
        Flush the relay log in FLUSH LOGS.
      27601fc5
  25. 02 Jul, 2003 2 commits
    • unknown's avatar
      I committed the same changeset in my tree yesterday, but broke the tree since, · e22a31f1
      unknown authored
      so I commit again in a fresh tree.
      Fix for bug#763 (Relay_log_space too big by 4 bytes),
      plus comments and DBUG_PRINT, and we don't start replication
      if --bootstrap.
      
      
      mysql-test/r/rpl_log.result:
        Result update
      mysql-test/r/rpl_log_pos.result:
        Result update
      sql/mysqld.cc:
        Don't start replication if in bootstrap mode (bootstrap isn't supposed to have
        several threads).
      sql/slave.cc:
        Fix for bug 763 (Relay_log_space too big by 4 bytes).
        A DBUG_PRINT.
      sql/sql_acl.cc:
        Replaced a return by DBUG_RETURN (happened to find this reading a debug log).
      sql/sql_repl.cc:
        A comment.
      e22a31f1
    • unknown's avatar
      Added missing (char*) casts in bzero calls. · c0eb4485
      unknown authored
      (Needed for platforms with the traditional bzero prototype.)
      Fixes BUG#460.
      
      
      c0eb4485
  26. 01 Jul, 2003 2 commits
    • unknown's avatar
      First version of new authentification procedure: now authentification is... · dbb088b0
      unknown authored
      First version of new authentification procedure: now authentification is one-stage (instead of two-stage in 4.1)
      
      For now following tasks have been done:
      - PASSWORD() function was rewritten. PASSWORD() now returns SHA1
        hash_stage2; for new passwords user.password contains '*'hash_stage2; sql_yacc.yy also fixed; 
      
      - password.c: new functions were implemented, old rolled back to 4.0 state
      
      - server code was rewritten to use new authorization algorithm (check_user(), change
        user, and other stuff in sql/sql_parse.cc)
      
      - client code was rewritten to use new authorization algorithm
        (mysql_real_connect, myslq_authenticate in sql-common/client.c)
      
      - now server barks on 45-byte-length 4.1.0 passwords and refuses 4.1.0-style
        authentification. Users with 4.1.0 passwords are blocked (sql/sql_acl.cc)
      
      - mysqladmin.c was fixed to work correctly with new passwords
      
      Tests for 4.0-4.1.1, 4.1.1-4.1.1 (with or without db/password) logons was performed;
      mysqladmin also was tested. Additional check are nevertheless necessary.
      
      
      BitKeeper/etc/ignore:
        Added start_mysqld.sh mysys/main.cc to the ignore list
      client/mysqladmin.c:
        fixed with new password api
      include/mysql.h:
        So as scramble_323 accepts only null-terminated message, two scramble buffs are necessary.
        gotta be fixed
      include/mysql_com.h:
        new constants and password.c api changes
      libmysql/libmysql.c:
        mysql_change_user rewritten to work with new password api
      scripts/mysql_create_system_tables.sh:
        fixed 'Password' column length to 41
      scripts/mysql_fix_privilege_tables.sql:
        fixed 'Password' column length to 41
      sql-common/client.c:
        mysql_real_connect rewritten to support new handshake procedure
      sql/item_strfunc.cc:
        Item_func_password and Item_func_old_password rewritten with new password api
      sql/item_strfunc.h:
        bit commented, numbers replaced with #defined constants
      sql/mysql_priv.h:
        removed unnecessary declaration as now all constants defined is in mysql_com.h
      sql/mysqld.cc:
        scramble initialization moved to sql_parce.cc:check_connection
      sql/password.c:
        All 4.1 functions were rolled back to 4.0 with attempt to save all possible 4.0-4.1 changes.
        Names for 4.0 functions were suffixed with '_323'
        Functions for new handshake were added.
      sql/slave.cc:
        Fixed to new constant; Bug #766 remains to be fixed
      sql/slave.h:
        fixed to new constant; Buf #766 remains to be fixed
      sql/sql_acl.cc:
        rewritten to support new passwords (41 byte-long) and password api
      sql/sql_acl.h:
        ditto
      sql/sql_class.cc:
        initialization for new members added
      sql/sql_class.h:
        same thing as in struct mysql - scramble is used for new family of functions, scramble_323 - for old
      sql/sql_parse.cc:
        check_connections was renamed to check_connection as this name reflects better what this function does
        authorization part of check_connection was rewritten
        check_user was rewritten with new password and acl api
        new function 'authenticate', which optionally re-request scramble from client was added
        fixed some typos
        COM_CHANGE_USER piece of dipsatch_command() was rewritten
      sql/sql_repl.h:
        HASH_PASSWORD_LENGTH replaced with SCRAMBLED_PASSWORD_CHAR_LENGTH
        bug #766 remains
      sql/sql_yacc.yy:
        Two-argument form of PASSWORD() was removed
        PASSWORD() function was fixed with new password api.
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      dbb088b0
    • unknown's avatar
      Code/testcase cleanups · bbf8ebe8
      unknown authored
      mysql-test/r/insert_select.result:
        Fixed results
      mysql-test/r/join_outer.result:
        New test case for inner join table dependency
      mysql-test/t/insert_select.test:
        Remove not used drop tables.
        Fixed table names
      mysql-test/t/join_outer.test:
        New test case for inner join table dependency
      sql/slave.cc:
        Simple optimizations
      bbf8ebe8
  27. 24 Jun, 2003 1 commit
    • unknown's avatar
      Fixed some new memory leaks · fff1f663
      unknown authored
      Updated VC++ files
      
      
      VC++Files/client/mysql.dsp:
        Update of VC++ files
      VC++Files/client/mysqlclient.dsp:
        Update of VC++ files
      VC++Files/libmysqld/examples/test_libmysqld.dsp:
        Update of VC++ files
      VC++Files/libmysqld/libmysqld.def:
        Update of VC++ files
      VC++Files/libmysqld/libmysqld.dsp:
        Update of VC++ files
      VC++Files/myisam/myisam.dsp:
        Update of VC++ files
      VC++Files/mysql.dsw:
        Update of VC++ files
      VC++Files/sql/mysqld.dsp:
        Update of VC++ files
      include/mysql.h:
        Add missing client functions to embedded server
      libmysql/libmysql.def:
        sort functions to enable comparison with libmysqld.def
      libmysqld/libmysqld.c:
        Add missing client functions to embedded server
      libmysqld/libmysqld.def:
        sort functions to enable comparison with libmysql.def
        Added missing functions
      myisam/mi_preload.c:
        Fixed compiler warning.
        Small code cleanup
      scripts/make_win_src_distribution.sh:
        Fixed typo
        Don't run zip in verbose mode
      scripts/mysql_create_system_tables.sh:
        Change so that localhost has full access (to make this like 4.0)
      scripts/mysql_fix_privilege_tables.sh:
        Allow on to run this from the source distribution
      sql-common/client.c:
        Fixed memory leak
      sql/item_sum.cc:
        Removed compiler warning
      sql/slave.cc:
        Cleanup
      sql/sql_client.cc:
        Portability fix
      sql/sql_help.cc:
        Fixed memory leak
      fff1f663
  28. 23 Jun, 2003 1 commit
    • unknown's avatar
      Simple code cleanup · 68524c81
      unknown authored
      mysql-test/r/innodb.result:
        Fixed test case after innodb optimize->analyze fix
      mysys/mf_pack.c:
        Added comments
      sql/log_event.cc:
        Fixed usage of fn_format()
      sql/slave.cc:
        Indentation fixes and comments cleanup
      sql/sql_repl.cc:
        Comment cleanup
      68524c81
  29. 21 Jun, 2003 1 commit
    • unknown's avatar
      Can't believe it: one more cset (04-27) which never found his way to the central · 71438155
      unknown authored
      repository (incredible that I forgot to push, but why not).
      So unfortunately the bugfix missed 3.23.57 and will be in .58 :(
      Instead of looking like working (bug #198), replication between
      a 3.23 slave and 4.0 master should frankly stop. Here we detect
      4.0 masters in the 3.23 slave code when we see a strange Rotate
      event, and in that case we print an error and stop.
      4.0.13 and older masters will be "often" caught (see the patch); 4.0.14
      and newer masters will always be immediately caught.
      
      
      sql/slave.cc:
        Instead of looking like working (bug #198), replication between
        a 3.23 slave and 4.0 master should frankly stop. Here we detect
        4.0 masters in the 3.23 slave code when we see a strange Rotate
        event, and in that case we print an error and stop.
        4.0.13 and older masters will be "often" caught (see the patch); 4.0.14
        and newer masters will always be immediately caught.
      71438155
  30. 17 Jun, 2003 1 commit
    • unknown's avatar
      Changed change_master() to use ER_MASTER_INFO (better display). · b518744d
      unknown authored
      mysql-test/r/rpl_rotate_logs.result:
        result update
      mysql-test/t/rpl_rotate_logs.test:
        comments and test update with the error code
      sql/slave.cc:
        A DBUG_PRINT
      sql/sql_repl.cc:
        Use ER_MASTER_INFO instead of custom message and zero error code (which display
        badly).
      b518744d
  31. 16 Jun, 2003 1 commit
    • unknown's avatar
      Fix for nightly build test failure (test update). · 366fd92e
      unknown authored
      More messages.
      Testcase for bug 651.
      
      
      client/mysqltest.c:
        More explicit error message if MASTER_POS_WAIT() returns NULL.
      mysql-test/r/rpl_loaddata.result:
        result update
      mysql-test/r/rpl_master_pos_wait.result:
        result update
      mysql-test/t/rpl000001.test:
        sync_with_master (=MASTER_POS_WAIT()) was called when we could expect the SQL slave thread had stopped.
        As I yesterday changed code so that "SQL thread stops => MASTER_POS_WAIT() returns NULL immediately" (bugfix),
        sync_with_master received NULL (on build.mysql.com, not on my machine; this is a question of milliseconds,
        if the slave server will process MASTER_POS_WAIT() before or after the slave SQL thread has stopped), and
        in mysqltest.c, sync_with_master complained that it could not sync.
        So I just remove this sync_with_master, which does not make sense anymore: we just wait for the slave SQL
        thread to stop.
      mysql-test/t/rpl_loaddata.test:
        Discovered we had wait_for_slave_to_stop, so used it as it automates things.
      mysql-test/t/rpl_master_pos_wait.test:
        Discovered we had 'send' to send a query without waiting for the resultn so could had a testcase for bug 651.
        Shorter timeouts as there is no risk the position is reached.
      sql/slave.cc:
        A longer DBUG_PRINT.
      366fd92e
  32. 15 Jun, 2003 1 commit
    • unknown's avatar
      Simplified a test. · 292f91e8
      unknown authored
      thd->enter_cond() and exit_cond(), so that the I/O thread accepts to stop
      when it's waiting for relay log space.
      Reset ignore_log_space_limit to 0 when the SQL thread terminates.
      
      
      mysql-test/r/rpl_relayspace.result:
        result update
      mysql-test/t/rpl_relayspace-slave.opt:
        smaller relay_log_space_limit to speed up things.
      mysql-test/t/rpl_relayspace.test:
        Less queries in the test, to make it simpler.
        Testcase if the IO thread blocked in wait_for_relay_log_space
        accepts to stop when STOP SLAVE.
      sql/slave.cc:
        thd->enter_cond() and exit_cond(), so that the I/O thread accepts to stop
        when it's waiting on cond (waiting for relay log space).
        Reset ignore_log_space_limit to 0 when the SQL thread terminates.
      292f91e8
  33. 14 Jun, 2003 1 commit
    • unknown's avatar
      - Fix for bug 651: now a dying SQL slave threads wakes up any waiting MASTER_POS_WAIT(). · 58d679e3
      unknown authored
      Could not add a testcase for this: if the test goes into a MASTER_POS_WAIT, it waits
      until this terminates (even doing "connection other_con" to launch "stop slave" is blocked).
      - In MASTER_POS_WAIT() don't test if the I/O slave is running, but if the SQL thread
      is running.
      - Some DBUG info for this bugfix.
      
      
      sql/slave.cc:
        Fix for bug 651: now a dying SQL slave threads wakes up any waiting MASTER_POS_WAIT().
        In MASTER_POS_WAIT() don't test if the I/O slave is running, but if the SQL thread
        is running.
        Some DBUG info.
      58d679e3