An error occurred fetching the project authors.
  1. 22 Nov, 2004 1 commit
    • unknown's avatar
      Bug#6252 - Duplicate columns in keys should fail · 1dc1ad9c
      unknown authored
        Added check for duplicate column in key
        Added tests and fixed tests which exploit bug
      
      
      mysql-test/r/delete.result:
        Fix test as it exploited Bug#6252
      mysql-test/r/innodb.result:
        Test for Bug#6126
      mysql-test/r/key.result:
        Test for Bug#6126/6252
      mysql-test/r/type_blob.result:
        Fix test as it exploited Bug#6252
      mysql-test/t/delete.test:
        Fix test as it exploited Bug#6252
      mysql-test/t/innodb.test:
        Test for Bug#6126
      mysql-test/t/key.test:
        Test for Bug#6126/6252
      mysql-test/t/type_blob.test:
        Fix test as it exploited Bug#6252
      sql/sql_table.cc:
        Bug#6252 - Duplicate columns in keys should fail
          Added check for duplicate column.
      1dc1ad9c
  2. 10 Nov, 2004 1 commit
    • unknown's avatar
      Fix for BUG#6522 "Replication fails due to a rolled back transaction in the binlog" · 12fbc41f
      unknown authored
      When we are writing a transaction to the binlog, we log BEGIN/COMMIT with zero error code.
      Example: all statements of trans succeeded, connection lost and so implicit rollback:
      we don't want ER_NET* errors to be logged in the BEGIN/ROLLBACK events, while statement
      events have 0. If there was really a serious error code, it's already in the statement events.
      
      
      sql/log.cc:
        When we write the cached binlog segment to disk binlog at COMMIT/ROLLBACK time:
        imagine this is rollback due to net timeout, after all statements of
        the transaction succeeded. Then we want a zero-error code in BEGIN.
        In other words, if there was a really serious error code it's already
        in the transaction's statement events.
      sql/sql_table.cc:
        out of date comment
      12fbc41f
  3. 03 Nov, 2004 1 commit
    • unknown's avatar
      Fix for bug#5551 (Version 4). · 539e2130
      unknown authored
      The idea of the fix is that the administrative statements 
      OPTIMIZE TABLE, REPAIR TABLE and ANALYZE TABLE should not 
      generate binlog errors if there is no errors on the master.
      
      
      sql/sql_parse.cc:
        No binlog error generated
      sql/sql_table.cc:
        Documentation
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      539e2130
  4. 28 Oct, 2004 1 commit
  5. 26 Oct, 2004 1 commit
  6. 14 Oct, 2004 2 commits
    • unknown's avatar
      BUG#5625 - MyISAM Index corruption on ALTER TABLE x ENABLE KEYS due to full tmpdir. · fc27da08
      unknown authored
      Added a try to a normal repair() if repair_by_sort() failed.
      This was not done with ENABLE KEYS and OPTIMIZE TABLE.
      Fixed error code handling in mysql_alter_table().
      
      
      sql/ha_myisam.cc:
        BUG#5625 - MyISAM Index corruption on ALTER TABLE x ENABLE KEYS due to full tmpdir.
        Added a try to a normal repair() if repair_by_sort() failed.
        This was not done with ENABLE KEYS and OPTIMIZE TABLE.
      sql/sql_table.cc:
        BUG#5625 - MyISAM Index corruption on ALTER TABLE x ENABLE KEYS due to full tmpdir.
        Added a translation from 'bool' return value to '< 0' error indication,
        which is used within mysql_execute_command() and must as such be
        handed over by mysql_alter_table(). A returncode >= 0 is interpreted
        as 'I have already called send_ok()'.
      fc27da08
    • unknown's avatar
      true,false -> TRUE, FALSE · 33073189
      unknown authored
      Simple fixes/optimization of things discovered during review of new pushed code
      
      
      include/my_sys.h:
        Ensure that clear_alloc_root() interacts correctly with alloc_root_inited()
      mysys/hash.c:
        More comments
        Simple optimization (merge identical code)
      mysys/my_bitmap.c:
        Change inline -> static inline
      sql/examples/ha_archive.cc:
        Fixed compiler warning
      sql/ha_ndbcluster.cc:
        true,false -> TRUE, FALSE
        Change if (false) -> #ifdef NOT_USED
      sql/ha_ndbcluster.h:
        true,false -> TRUE, FALSE
      sql/handler.cc:
        More comments
        Remove not needed initializations.
        #ifdef not used code
      sql/item_cmpfunc.h:
        true,false -> TRUE, FALSE
      sql/item_strfunc.cc:
        Move local variables to function beginning
        Remove wrong comments
      sql/log_event.h:
        true,false -> TRUE, FALSE
      sql/sql_base.cc:
        true,false -> TRUE, FALSE
        More comments
      sql/sql_help.cc:
        true,false -> TRUE, FALSE
      sql/sql_lex.cc:
        Simple optimization of new code
      sql/sql_parse.cc:
        true,false -> TRUE, FALSE
      sql/sql_prepare.cc:
        true,false -> TRUE, FALSE
      sql/sql_table.cc:
        true,false -> TRUE, FALSE
      sql/sql_yacc.yy:
        true,false -> TRUE, FALSE
      33073189
  7. 10 Oct, 2004 1 commit
    • unknown's avatar
      Blob support for the group_concat() function. · b123f514
      unknown authored
      (Bug #4315: GROUP_CONCAT with ORDER BY returns strange results for TEXT fields
       Bug #5564: Strange behaviour with group_concat and distinct
       Bug #5970: group_concat doesn't print warnings)
      
      
      b123f514
  8. 07 Oct, 2004 2 commits
    • unknown's avatar
      Fix for bug #5915 "ALTER TABLE behaves differently when converting column · 34789efd
      unknown authored
      to auto_increment in 4.1".
      Now we are enforcing NO_AUTO_VALUE_ON_ZERO mode during ALTER TABLE only
      if we are converting one auto_increment column to another auto_increment
      column (this also includes most common case when we don't do anything
      with such column).
      
      Also now when we convert some column to TIMESTAMP NOT NULL column with
      ALTER TABLE we convert NULL values to current timestamp, (as we do this
      in INSERT). One can still get old behavior by setting system TIMESTAMP
      variable to 0.
      
      
      mysql-test/r/auto_increment.result:
        Added tests for ALTER TABLE converting columns containing NULL and 0
        values to AUTO_INCREMENT columns.
      mysql-test/r/type_timestamp.result:
        Removed test for creation of TIMESTAMP(19) columns (it is 4.0 specific).
        Added test for ALTER TABLE converting columns containing NULL values
        to TIMESTAMP columns.
      mysql-test/t/auto_increment.test:
        Added tests for ALTER TABLE converting columns containing NULL and 0
        values to AUTO_INCREMENT columns.
      mysql-test/t/type_timestamp.test:
        Removed test for creation of TIMESTAMP(19) columns (it is 4.0 specific).
        Added test for ALTER TABLE converting columns containing NULL values
        to TIMESTAMP columns.
      sql/field_conv.cc:
        Fix bug #5915 "ALTER TABLE behaves differently when converting column
        to auto_increment in 4.1". Also now when we are converting some column
        to TIMESTAMP column, we are converting NULL values to CURRENT_TIMESTAMP
        (as it was initially planned).
        
        do_copy_timestamp(): Fixed comment.
        do_copy_next_number(): We should also set auto_increment_field_not_null
          to FALSE if we have NULL in source field.
        Copy_field::set(): Moved setting of copy functions for TIMESTAMP and
          AUTO_INCREMENT fields to proper place (this was dead code before).
      sql/sql_table.cc:
        Fix for bug #5915 "ALTER TABLE behaves differently when converting column
        to auto_increment in 4.1".
        
        Instead of always forcing NO_AUTO_VALUE_ON_ZERO in ALTER TABLE it is
        better to do this only if we are converting one auto_increment column
        to another auto_increment column (this also includes most common case
        when we don't do anything with such column).
      34789efd
    • unknown's avatar
      After merge fixes · 96e7be58
      unknown authored
      Some bigger code changes was necessary becasue of the multi-table-update and the new HANDLER code
      
      
      include/hash.h:
        Added back function that's was used in 4.0
      mysql-test/r/delete.result:
        Update results after merge
      mysql-test/r/flush_table.result:
        Update results after merge
      mysql-test/r/func_str.result:
        Update results after merge
      mysql-test/r/handler.result:
        Update results after merge
        Change is big becasue in MySQL 4.1 you are not allowed to qualify the handler alias with a databasename
      mysql-test/r/multi_update.result:
        More startup cleanups
      mysql-test/r/rename.result:
        More startup-cleanups
      mysql-test/r/select.result:
        More startup cleanups
      mysql-test/r/show_check.result:
        More startup-cleanups
      mysql-test/t/ctype_latin1_de.test:
        Cleanup
      mysql-test/t/derived.test:
        Portability fix
      mysql-test/t/handler.test:
        Update results after merge
        Change is big becasue in MySQL 4.1 you are not allowed to qualify the handler alias with a databasename
      mysql-test/t/multi_update.test:
        More startup cleanups
      mysql-test/t/range.test:
        More comments
      mysql-test/t/rename.test:
        More startup cleanups
      mysql-test/t/select.test:
        More startup cleanups
      mysql-test/t/show_check.test:
        More startup cleanups
      mysql-test/t/type_timestamp.test:
        Add back test deleted during merge
      sql/item_cmpfunc.cc:
        After merge fixes
      sql/item_func.cc:
        Remove compiler warning
      sql/mysql_priv.h:
        After merge fixes
      sql/mysqld.cc:
        After merge fixes
      sql/sql_acl.cc:
        More debugging
      sql/sql_base.cc:
        After merge fixes
        (This fix was needed bacause of multi-table-update reopens tables)
      sql/sql_handler.cc:
        After merge fixes
      sql/sql_lex.h:
        After merge fixes
      sql/sql_select.cc:
        After merge fixes
      sql/sql_show.cc:
        After merge fixes
      sql/sql_table.cc:
        After merge fixes
        Simple cleanup of mysql_discard_or_import_tablespace
      sql/sql_update.cc:
        After merge fixes
        Rework mysql_multi_update to take into account derived tables.
      sql/sql_yacc.yy:
        After merge fixes
      96e7be58
  9. 05 Oct, 2004 1 commit
    • unknown's avatar
      Reverted patch for new usage of open_count as it caused more problems than it solved · 0d76cb7e
      unknown authored
      Cleaned up patch for checking locks for multi-table updates
      
      
      myisam/mi_close.c:
        Reverted patch for new usage of open_counts
      myisam/mi_locking.c:
        Reverted patch for new usage of open_counts
      sql/ha_myisam.cc:
        Reverted patch for new usage of open_counts
      sql/handler.cc:
        Removed compiler warning
      sql/sql_acl.cc:
        Removed compiler warning
      sql/sql_table.cc:
        No need to unlock after failed call to external_lock()
      sql/sql_update.cc:
        Cleaned up (and made it more secure) patch for checking locks for multi-table updates
      0d76cb7e
  10. 01 Oct, 2004 1 commit
    • unknown's avatar
      Support for TIMESTAMP columns holding NULL values. Unlike all other · 7b511544
      unknown authored
      column types TIMESTAMP is NOT NULL by default, so in order to have 
      TIMESTAMP column holding NULL valaues you have to specify NULL as
      one of its attributes (this needed for backward compatibility).
      
      Main changes:
      Replaced TABLE::timestamp_default_now/on_update_now members with
      TABLE::timestamp_auto_set_type flag which is used everywhere
      for determining if we should auto-set value of TIMESTAMP field 
      during this operation or not. We are also use Field_timestamp::set_time()
      instead of handler::update_timestamp() in handlers.
      
      
      mysql-test/r/type_timestamp.result:
        Added test for TIMESTAMP columns which are able to store NULL values.
      mysql-test/t/type_timestamp.test:
        Added test for TIMESTAMP columns which are able to store NULL values.
      sql/field.cc:
        Added support for TIMESTAMP fields holding NULL values.
        We don't need Field_timestamp::set_timestamp_offsets() anymore.
        Instead we need Field_timestamp::get_auto_set_type() function
        which will convert TIMESTAMP auto-set type stored in Field in 
        unireg_check to value from timestamp_auto_set_type_enum.
        (We can't replace this function with additional Field_timestamp member
        and some code in constructor because then we will have troubles
        with Field::new_field() method).
        We should also set field to not null in Field_timestamp::set_time() now.
      sql/field.h:
        Added support for TIMESTAMP fields holding NULL values.
        We don't need Field_timestamp::set_timestamp_offsets() anymore.
        Instead we need Field_timestamp::get_auto_set_type() function,
        which will convert TIMESTAMP auto-set type stored in Field in 
        unireg_check to value from timestamp_auto_set_type_enum.
        We also have to support NULL values in Field_timestamp::get_timestamp()
        function.
      sql/field_conv.cc:
        Added comment clarifying behavior in case of TIMESTAMP fields which are
        able to store NULL values.
      sql/ha_berkeley.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_heap.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_innodb.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_isam.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_isammrg.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_myisam.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_myisammrg.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_ndbcluster.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/handler.cc:
        handler::update_timestamp() is no longer needed since now we use
        Field_timestamp::set_time() instead.
        (we can't use handler::update_timestamp() anyway since field position
        only is not enough for TIMESTAMP fields which are able to store NULLs)
      sql/handler.h:
        handler::update_timestamp() is no longer needed since now we use
        Field_timestamp::set_time() instead.
      sql/item_timefunc.cc:
        Since now TIMESTAMP fields can hold NULL values we should take this into
        account.
      sql/sql_base.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now. 
        (Here we use Field_timestamp::get_auto_set_type() to setup its value
         before further statement execution).
      sql/sql_insert.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now.
      sql/sql_load.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now.
      sql/sql_parse.cc:
        Added support for TIMESTAMP fields holding NULL values.
        We should distinguish NULL default values and non-specified default
        values for such fields (because latter could mean DEFAULT NOW()
        ON UPDATE NOW() in some cases).
      sql/sql_show.cc:
        Added support for TIMESTAMP fields holding NULL values.
        Unlike all other fields these are NOT NULL by default
        so we have to specify NULL attribute explicitly for them.
      sql/sql_table.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now.
      sql/sql_update.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now.
      sql/sql_yacc.yy:
        Added support for TIMESTAMP fields holding NULL values.
        Unlike all other fields these are NOT NULL by default
        (so we have to set NOT_NULL_FLAG properly for them).
      sql/table.h:
        Added timestamp_auto_set_type enum which values are used for indicating
        during which operations we should automatically set TIMESTAPM field
        value to current timestamp.
        TABLE: Replaced timestamp_default_now/on_update_now members with
        timestamp_auto_set_type flag (Now when TIMESTAMP field are able to 
        store NULL values, single position of field in record is not enough 
        for updating this field anyway).
      7b511544
  11. 26 Sep, 2004 1 commit
  12. 24 Sep, 2004 1 commit
    • unknown's avatar
      BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S). · 697cb7b1
      unknown authored
      BUG#4335 - one name can be handler open'ed many times.
      Reworked the HANDLER functions and interface.
      Using a HASH to store information on open tables that
      survives FLUSH TABLE.
      HANDLER tables alias names must now be unique, though it
      is allowed in 4.0 to qualify them with the database name
      of the base table.
      
      
      mysql-test/r/flush_table.result:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Moved pure handler test results to handler.result.
        Added the new test results.
      mysql-test/r/handler.result:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Moved pure handler test results from flush_table.result to here.
      mysql-test/t/flush_table.test:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Moved pure handler tests to handler.test.
        Added new tests.
      mysql-test/t/handler.test:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Moved pure handler tests from flush_table.test to here.
      sql/mysql_priv.h:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Reworked the handler interface.
      sql/sql_base.cc:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Replaced mysql_ha_close_list() by the better named
        function mysql_ha_flush() with readable options.
      sql/sql_class.cc:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Added initialization for the handler tables hash.
        Changed the handler tables clean-up code.
        Unreleted to bug: Changed the order of THD initialization
        to avoid warning messages on Linux with gcc.
      sql/sql_class.h:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Added the handler tables HASH to THD.
      sql/sql_handler.cc:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Completely reworked the handler functions.
        Added an introducing comment, describing the new functionality.
      sql/sql_table.cc:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        replaced mysql_ha_close() by the better named
        function mysql_ha_flush() with readable options.
      697cb7b1
  13. 18 Sep, 2004 1 commit
    • unknown's avatar
      bug#2831 - --extenral-locking does not fully work with --myisam-recover. · a7919a11
      unknown authored
      Changed the semantics of open_count so that it is decremented
      at every unlock (if it was incremented due to data changes).
      So it indicates a crash, if it is non-zero after a lock.
      The table will then be repaired.
      
      
      myisam/mi_close.c:
        bug#2831 - --extenral-locking does not fully work with --myisam-recover.
        To avoid flushing the open_count at every unlock,
        we need to do so at close at least.
      myisam/mi_locking.c:
        bug#2831 - --extenral-locking does not fully work with --myisam-recover.
        open_count is now decremented at unlock (from a writelock) with
        mi_unlock_open_count(). After every new lock the state is read
        from the index file and the open_count checked. If not zero,
        another server must have crashed, so the table is marked as crashed.
        In certain situations the decremented open_count mut be flushed to
        the index file. I tried to keep these extra flushes as seldom as possible.
      sql/ha_myisam.cc:
        bug#2831 - --extenral-locking does not fully work with --myisam-recover.
        Added code to repair the table, if it is marked crashed after
        successful locking and the --myisam-recover option is set.
      sql/sql_table.cc:
        This does not really belong to the bugfix for #2831.
        But it was detected during fixing the external locking.
      a7919a11
  14. 13 Sep, 2004 1 commit
    • unknown's avatar
      WL1424 Multiple MySQL Servers: SHOW TABLES etc. should detect new and delete old tables. · 5a464356
      unknown authored
      include/my_base.h:
        Added new bit to table create options
        Removed old error code HA_ERR_OLD_METADAT and reused it for HA_ERR_NO_SUCH_TABLE.
      mysql-test/r/ndb_autodiscover.result:
        Updated test cases
      mysql-test/t/ndb_autodiscover.test:
        Updated test cases
      mysql-test/t/ndb_autodiscover2.test:
        Updated test cases
      sql/discover.cc:
        Moved function create_table_from_handler to handler.cc
      sql/ha_ndbcluster.cc:
        Improved discover functionality
        Added .ndb file
        Changed error code mappings for a table that does not exist in engine
        Check for ndb object in THD
        Updated ndbcluster_discover, ndbcluster_list_tables and ndbcluster_can_discover
      sql/ha_ndbcluster.h:
        Improved discover
      sql/handler.cc:
        Added new error message mapping.
        Moved function ha_create_table_from_engine to handler level
        Added new functions ha_can_discover, ha_list_tables and ha_table_exists
      sql/handler.h:
        Added new error message mapping.
        Moved function ha_create_table_from_engine to handler level
        Added new functions ha_can_discover, ha_list_tables and ha_table_exists
      sql/mysql_priv.h:
        Removed create_table_from_handler, moved to handler.h
      sql/sql_base.cc:
        Renamed function create_table_from_handler
      sql/sql_show.cc:
        Added new function mysql_discover_files and mysql_list_files. 
        Modified mysql_find_files to discover new and delete "old" files/tables.
      sql/sql_table.cc:
        Renamed create_table_from_handler
        Call ha_create_table_from_engine, in order to discover the the frm file before it can be dropped.
      sql/table.cc:
        Added mapping of the error code HA_ERR_NO_SUCH_TABLE
      5a464356
  15. 07 Sep, 2004 2 commits
    • unknown's avatar
      after merge fixes · 49d90b09
      unknown authored
      49d90b09
    • unknown's avatar
      A set of mysql_home_path-related fixes · 89ee6395
      unknown authored
      mysys/mf_format.c:
        I think here i fixed a bug
      sql/item_strfunc.cc:
        mysql_real_data_home added
      sql/sql_class.cc:
        it's more closer to what manual says
      sql/sql_load.cc:
        code rewritten to be similar
      sql/sql_table.cc:
        mysql_real_data_home added to the path
      89ee6395
  16. 06 Sep, 2004 2 commits
    • unknown's avatar
      Fix of previous push. · 6f46f997
      unknown authored
      sql/sql_table.cc:
        stupid me. error already exists in the function. Using a local 'int error' resulted in global 'error' not being inited, which probably made next steps (those testing global error) go wrong!
      6f46f997
    • unknown's avatar
      Replacing class Disable_binlog by macros. Patch already approved by Monty. · ea971987
      unknown authored
      sql/log.cc:
        removing unneeded class Disable_binlog
      sql/sql_class.h:
        removing unneeded class Disable_binlog
      sql/sql_table.cc:
        As discussed, class Disable_binlog is removed and replaced by macros.
      ea971987
  17. 04 Sep, 2004 1 commit
  18. 03 Sep, 2004 1 commit
    • unknown's avatar
      renamed ha_recovery_logging to ha_enable_transaction · e8c2e418
      unknown authored
      added tests to alter table for "large" alter tables and truncates in ndbcluster
      added debug printout in restart() in ndbcluster
      added flag THD::transaction.on to enable/disable transaction
      
      
      mysql-test/r/ndb_alter_table.result:
        added tests to alter table for "large" alter tables and truncates
      mysql-test/t/ndb_alter_table.test:
        added tests to alter table for "large" alter tables and truncates
      ndb/src/ndbapi/NdbConnection.cpp:
        added debug printout in restart()
      sql/ha_ndbcluster.cc:
        added support for large alter table and truncate
      sql/handler.cc:
        renamed ha_recovery_logging to ha_enable_transaction
      sql/handler.h:
        renamed ha_recovery_logging to ha_enable_transaction
      sql/sql_class.cc:
        added flag THD::transaction.on to enable/disable transaction
      sql/sql_class.h:
        added flag THD::transaction.on to enable/disable transaction
      sql/sql_delete.cc:
        added disable transaction for mysql_truncate
      sql/sql_table.cc:
        renamed ha_recovery_logging to ha_enable_transaction
      e8c2e418
  19. 02 Sep, 2004 1 commit
    • unknown's avatar
      Remove extra '/' after mysql_real_data_home · 1b51f98e
      unknown authored
      Add missing parameter to strxnmov() that caused some INTO OUTFILE commands to core dump
      
      
      mysql-test/mysql-test-run.sh:
        Ensure that clients used the supplied --socket argument
      mysql-test/r/lowercase_table.result:
        Remove tables used in other tests that may affect this one
      mysql-test/r/rename.result:
        Remove tables used in other tests that may affect this one
      mysql-test/t/lowercase_table.test:
        Remove tables used in other tests that may affect this one
      mysql-test/t/rename.test:
        Remove tables used in other tests that may affect this one
      sql/item_cmpfunc.cc:
        Remove not relevant comment
      sql/sql_class.cc:
        Add missing parameter to strxnmov() that caused some INTO OUTFILE commands to core dump
      sql/sql_load.cc:
        Remove extra '/' after mysql_real_data_home
      sql/sql_table.cc:
        Remove extra '/' after mysql_real_data_home
      1b51f98e
  20. 24 Aug, 2004 1 commit
    • unknown's avatar
      Portablity fixes & simple optimizations · 20f24a42
      unknown authored
      sql/ha_ndbcluster.cc:
        Added missing cast
      sql/item.cc:
        Portability fix (for windows)
      sql/lock.cc:
        Cleanup + more comments
      sql/sql_class.cc:
        Portability fix + more comments
      sql/sql_select.cc:
        Portability fix
      sql/sql_table.cc:
        Simpler handling of auto_increment in ALTER TABLE
      20f24a42
  21. 23 Aug, 2004 1 commit
    • unknown's avatar
      Fixed uninitialized variable · 7d4ad390
      unknown authored
      Fixed error messages
      
      
      sql/share/czech/errmsg.txt:
        Fixed error message to us long
      sql/share/danish/errmsg.txt:
        Fixed error message to us long
      sql/share/dutch/errmsg.txt:
        Fixed error message to us long
      sql/share/english/errmsg.txt:
        Fixed error message to us long
      sql/share/estonian/errmsg.txt:
        Fixed error message to us long
      sql/share/french/errmsg.txt:
        Fixed error message to us long
      sql/share/german/errmsg.txt:
        Fixed error message to us long
      sql/share/greek/errmsg.txt:
        Fixed error message to us long
      sql/share/hungarian/errmsg.txt:
        Fixed error message to us long
      sql/share/italian/errmsg.txt:
        Fixed error message to us long
      sql/share/japanese/errmsg.txt:
        Fixed error message to us long
      sql/share/korean/errmsg.txt:
        Fixed error message to us long
      sql/share/norwegian-ny/errmsg.txt:
        Fixed error message to us long
      sql/share/norwegian/errmsg.txt:
        Fixed error message to us long
      sql/share/polish/errmsg.txt:
        Fixed error message to us long
      sql/share/portuguese/errmsg.txt:
        Fixed error message to us long
      sql/share/romanian/errmsg.txt:
        Fixed error message to us long
      sql/share/russian/errmsg.txt:
        Fixed error message to us long
      sql/share/serbian/errmsg.txt:
        Fixed error message to us long
      sql/share/slovak/errmsg.txt:
        Fixed error message to us long
      sql/share/spanish/errmsg.txt:
        Fixed error message to us long
      sql/share/swedish/errmsg.txt:
        Fixed error message to us long
      sql/share/ukrainian/errmsg.txt:
        Fixed error message to us long
      sql/sql_table.cc:
        Fixed uninitialized variable
      7d4ad390
  22. 20 Aug, 2004 1 commit
    • unknown's avatar
      after merge fix · 0745a2b7
      unknown authored
      myisam/Makefile.am:
        put zlib at the end (libtool adds the whole bunch of dependencies right after that)
      sql/Makefile.am:
        put zlib at the end (libtool adds the whole bunch of dependencies right after that)
      0745a2b7
  23. 19 Aug, 2004 2 commits
    • unknown's avatar
      (manual port from 4.0 - was needed) · e7157aba
      unknown authored
      Fix for BUG#4971 "CREATE TABLE ... TYPE=HEAP SELECT ... stops slave (wrong DELETE in binlog)":
      replacing the no_log argument of mysql_create_table() by some safer method
      (temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
      DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
      is opened by mysql_create_table().
      
      
      mysql-test/r/rpl_heap.result:
        result update
      mysql-test/t/rpl_heap.test:
        changing test to test a bug (but anyway, mysql-test-run --manager looks like not working in 4.1 currently,
        so this test is never run).
      sql/log.cc:
        new class Disable_binlog used to temporarily disable binlogging for one thread.
      sql/mysql_priv.h:
        removing argument no_log from mysql_create_table(); no_log was not perfect as some
        binlogging could still be done by open_unireg_entry() for a HEAP table.
      sql/sql_class.h:
        new class Disable_binlog used to temporarily disable binlogging for one thread.
      sql/sql_parse.cc:
        removing no_log arg from mysql_create_table()
      sql/sql_table.cc:
        removing no_log from mysql_create_table(); instead using new class Disable_binlog.
        Disabling binlogging in some cases, where the binlogging is done later by some other code
        (case of CREATE SELECT and ALTER).
      e7157aba
    • unknown's avatar
      cosmetic change · f758ada4
      unknown authored
      sql/sql_class.h:
        comment
      sql/sql_table.cc:
        smarter use of the Disable_binlog object (using a block so that when leaving it either way, the object gets
        destroyed and so properties of the thread get reset).
      f758ada4
  24. 18 Aug, 2004 1 commit
    • unknown's avatar
      Fix for BUG#4971 "CREATE TABLE ... TYPE=HEAP SELECT ... stops slave (wrong DELETE in binlog)": · 95334ac6
      unknown authored
      replacing the no_log argument of mysql_create_table() by some safer method
      (temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
      DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
      is opened by mysql_create_table().
      
      
      mysql-test/r/rpl_heap.result:
        result update
      mysql-test/t/rpl_heap.test:
        testing a bug
      sql/log.cc:
        new class Disable_binlog used to temporarily disable binlogging for one thread.
      sql/mysql_priv.h:
        removing argument no_log from mysql_create_table(); no_log was perfect as some
        binlogging could still be done by open_unireg_entry() for a HEAP table.
      sql/sql_class.h:
        new class Disable_binlog used to temporarily disable binlogging for one thread.
      sql/sql_parse.cc:
        removing no_log
      sql/sql_table.cc:
        removing no_log from mysql_create_table(); instead using new class Disable_binlog.
        Disabling binlogging in some cases, where the binlogging is done later by some other code
        (case of CREATE SELECT and ALTER).
      95334ac6
  25. 07 Aug, 2004 1 commit
  26. 31 Jul, 2004 1 commit
    • unknown's avatar
      Fix for: · 00e7ec42
      unknown authored
      Bug #4810 "deadlock with KILL when the victim was in a wait state"
      (I included mutex unlock into exit_cond() for future safety)
      and BUG#4827 "KILL while START SLAVE may lead to replication slave crash"
      
      
      sql/lock.cc:
        we did exit_cond() before unlock(LOCK_open), which led to deadlocks with THD::awake(). Fixing this.
      sql/log.cc:
        mutex unlock is now included in exit_cond()
      sql/repl_failsafe.cc:
        we did exit_cond() before unlock(LOCK_rpl_status), which led to deadlocks with THD::awake(). Fixing this.
      sql/slave.cc:
        we did exit_cond() before unlock(cond_lock), which led to deadlocks with THD::awake(). Fixing this.
        Fixing also that if killed while waiting for slave thread to start, we don't release the mutex
        (that caused a double release of the mutex => crash).
      sql/sql_class.h:
        comments about exit_cond()/enter_cond().
        Mutex unlock is now included in exit_cond() so that it's always done in the good order.
      sql/sql_table.cc:
        unlock is now included in exit_cond().
      00e7ec42
  27. 30 Jul, 2004 1 commit
  28. 17 Jul, 2004 1 commit
    • unknown's avatar
      Fixes for · cf8dbcc6
      unknown authored
      BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines",
      BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table" with a test file.
      It was not possible to add a test for BUG#4506 as in the test suite we must use --short-form
      which does not display the "# at" lines.
      
      
      client/mysqlbinlog.cc:
        Fix for BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines"
        when reading a remote binlog, the start position is not always BIN_LOG_HEADER_SIZE (4).
      sql/sql_table.cc:
        Fix for BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table"
        we must my_error() _before_ we write to the binlog, so that a meaningful error code is available
        in thd->net.last_errno for storage of the DROP TABLE statement into the binlog.
      cf8dbcc6
  29. 09 Jul, 2004 1 commit
    • unknown's avatar
      Cleanup of db option cacheing · b4220977
      unknown authored
      Some bug fixes to last pushed code
      
      
      mysql-test/mysql-test-run.sh:
        Fix for new valgrind (2.1.1)
      mysql-test/r/bdb.result:
        Updated results
      mysql-test/t/ps_1general.test:
        removed wrong error condition
      sql/ha_berkeley.cc:
        Fix for index_flags() in new code
      sql/item_strfunc.cc:
        Cleanup (fixed indentation, removed short variable names)
      sql/mysql_priv.h:
        Cleanup of db option cacheing
      sql/mysqld.cc:
        Cleanup of db option cacheing
      sql/sql_db.cc:
        Cleanup of db option cacheing
      sql/sql_parse.cc:
        Cleanup of db option cacheing
      sql/sql_table.cc:
        sprintf -> strxmov
      sql/table.cc:
        key_read should be tested on key parts, not the whole key
      b4220977
  30. 08 Jul, 2004 1 commit
  31. 27 Jun, 2004 1 commit
    • unknown's avatar
      Added missing my_time.c file to mysqlclient project · 6cf30922
      unknown authored
      Moved include <assert.h> to my_global.h
      
      
      VC++Files/client/mysqlclient.dsp:
        Added missing my_time.c file to mysqlclient project
      include/my_dbug.h:
        Moved include <assert.h> to my_global.h
        Removed NDEBUG as asserts should be indenpendent of if we are using DBUG or not
      include/my_global.h:
        Added assert.h as this is included in a lot of places
      sql/sql_table.cc:
        Initialize forgotten variable
      6cf30922
  32. 24 Jun, 2004 1 commit
    • unknown's avatar
      bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock. · 8f6664c5
      unknown authored
      Redesigned the handler close functions so that they are usable
      at different places where waiting for closing tables is done.
      
      
      mysql-test/r/flush_table.result:
        bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
        Added the test results.
      mysql-test/t/flush_table.test:
        bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
        Activated old test case.
        Added new test cases.
      sql/mysql_priv.h:
        bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
        Made mysql_ha_close() more flexible.
        Removed mysql_ha_closeall(), which closed only one table despite its name.
        Added mysql_ha_close_list(), which closes the complete list or all tables and does not lock.
        Removed a duplicate declaration.
      sql/sql_base.cc:
        bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
        Added proper close calls before some wait points to avoid deadlocks
        or infinite loops.
      sql/sql_handler.cc:
        bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
        Redesigned the internal function find_table_ptr_by_name().
        It can now suppress locking and tells if the requested table
        has been flushed by itself.
        Extended mysql_ha_close() so that it can now suppres locking
        and error reporting. That way it can be used at more places and the
        old function mysql_ha_closeall() is now obsolete.
        Added a new function mysql_ha_close_list() which closes a whole list
        of HANDLER tables or all HANDLER tables, if the list is NULL.
        Furthermore is can close all 'old' (marked for flush) HANDLER tables.
      sql/sql_table.cc:
        bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
        Replaced the obsolte mysql_ha_closeall() by the new mysql_ha_close().
      8f6664c5
  33. 23 Jun, 2004 2 commits
    • unknown's avatar
      lower_case_table_names=2 (Keep case for table names) was not honored · 3db93f80
      unknown authored
      with ALTER TABLE and CREATE/DROP INDEX. (Bug #3109)
      Make net_buffer_length visible for mysql clients (Bug #4206)
      
      
      include/mysql.h:
        Make net_buffer_length visible for mysql clients
      libmysql/libmysql.c:
        Make net_buffer_length visible for mysql clients
      mysql-test/mysql-test-run.sh:
        Don't give warning for some common 'safe' warnings
      mysql-test/r/lowercase_table2.result:
        Test name conversion with ALTER TABLE / CREATE INDEX (Bug #3109)
      mysql-test/t/lowercase_table2.test:
        Test name conversion with ALTER TABLE / CREATE INDEX (Bug #3109)
      scripts/mysql_install_db.sh:
        Removed not used variable
      sql/sql_table.cc:
        lower_case_table_names=2 (Keep case for table names) was not honored
        with ALTER TABLE and CREATE/DROP INDEX. (Bug #3109)
      3db93f80
    • unknown's avatar
      handler interface cleanups: · 9a554b47
      unknown authored
        more logical table/index_flags
        return  HA_ERR_WRONG_COMMAND instead of abstract methods where appropriate
        max_keys and other limits renamed to max_supported_keys/etc
        max_keys/etc are now wrappers to max_supported_keys/etc 
        ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to real {index,rnd}_{init,end} to enforce strict pairing
      
      
      include/myisam.h:
        increasing myisam_max_temp_file_length
      include/my_base.h:
        handler interface cleanup
      myisam/mi_static.c:
        warning removed
      mysql-test/Makefile.am:
        followup
      mysql-test/r/fulltext.result:
        fulltext indexes are not ordered
      mysql-test/r/rpl_user_variables.result:
        followup
      sql/field.cc:
        index_flags
      sql/filesort.cc:
        rnd_init -> ha_rnd_init
        rnd_end -> ha_rnd_end
      sql/ha_berkeley.cc:
        cleanup
      sql/ha_berkeley.h:
        table/index_flags revamped
      sql/ha_heap.cc:
        ensure index is accessed only after index_init (esp. important for temp tables)
      sql/ha_heap.h:
        table/index_flags revamped
      sql/ha_innodb.cc:
        don't workaround MySQL sloppiness
      sql/ha_innodb.h:
        table/index_flags revamped
      sql/ha_isam.h:
        table/index_flags revamped
      sql/ha_isammrg.h:
        table/index_flags revamped
      sql/ha_myisam.cc:
        ensure index is accessed only after index_init (esp. important for temp tables)
      sql/ha_myisam.h:
        table/index_flags revamped
      sql/ha_myisammrg.h:
        table/index_flags revamped
      sql/handler.cc:
        handler interface cleanups
      sql/handler.h:
        handler interface cleanups:
          more logical table/index_flags
          return  HA_ERR_WRONG_COMMAND instead of abstract methods
          max_keys and other limits renamed to max_supported_keys/etc
          max_keys/etc are now wrappers to max_supported_keys/etc 
          ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to enforce strict pairing
      sql/item_subselect.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/lex.h:
        renamed to avoid conflicts
      sql/opt_range.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
        table/index_flags cleanup
      sql/opt_range.h:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/opt_sum.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
        table/index_flags cleanup
      sql/records.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_acl.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_cache.cc:
        cleanup
      sql/sql_delete.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_handler.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_help.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_insert.cc:
        table/index_flags cleanup
      sql/sql_select.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
        table/index_flags cleanup
      sql/sql_table.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
        table/index_flags cleanup
      sql/sql_update.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_yacc.yy:
        INDEX -> INDEX_SYM
      sql/table.cc:
        table/index_flags cleanup
      9a554b47
  34. 11 Jun, 2004 1 commit