An error occurred fetching the project authors.
  1. 12 Nov, 2004 1 commit
    • unknown's avatar
      Fix for bug #5890 "Triggers fail for DELETE without WHERE". · bb43e831
      unknown authored
      If we have DELETE with always true WHERE clause we should not use 
      optimized delete_all_rows() method for tables with DELETE triggers,
      because in this case we will lose side-effect of deletion.
      
      
      mysql-test/r/trigger.result:
        Added test for bug #5890 "Triggers fail for DELETE without WHERE".
      mysql-test/t/trigger.test:
        Added test for bug #5890 "Triggers fail for DELETE without WHERE".
      sql/sql_delete.cc:
        mysql_delete(): 
          We should not use optimized delete_all_rows() method for tables
          with DELETE triggers, because in this case we will lose side-effect
          of deletion.
      sql/sql_trigger.h:
        Added new Table_triggers_list::has_delete_triggers() method which
        allows to understand quickly if we have some DELETE triggers in
        our list.
      bb43e831
  2. 11 Nov, 2004 1 commit
  3. 25 Oct, 2004 1 commit
    • unknown's avatar
      fixed detection of updating table on which we select (BUG#6032) · 9f9893c9
      unknown authored
      mysql-test/r/view.result:
        Trys update table from which we select using views and subqueries
      mysql-test/t/view.test:
        Trys update table from which we select using views and subqueries
      sql/sql_acl.cc:
        fix of fix for bug BUG#5976
      sql/sql_base.cc:
        protection against temporary tables which have not table->table->table_cache_key
        fixed unique check to skip the same table instences
      sql/sql_delete.cc:
        removed next_independent to allow to check VIEW subqueries
      sql/sql_insert.cc:
        removed next_independent to allow to check VIEW subqueries
      sql/sql_parse.cc:
        removed next_independent to allow to check VIEW subqueries
      sql/sql_update.cc:
        removed next_independent to allow to check VIEW subqueries
      sql/sql_view.cc:
        removed next_independent to allow to check VIEW subqueries
        optimisation to mark as non-updatable views with subqueries by same table.
      sql/table.h:
        removed next_independent to allow to check VIEW subqueries
      9f9893c9
  4. 19 Sep, 2004 1 commit
  5. 08 Sep, 2004 1 commit
    • unknown's avatar
      test of updating and fetching from the same table check (BUG##5157) · 7de077f7
      unknown authored
      mysql-test/r/lowercase_view.result:
        test of updating and fetching from the same table check
      mysql-test/r/view.result:
        test of updating and fetching from the same table check
      mysql-test/t/lowercase_view.test:
        test of updating and fetching from the same table check
      mysql-test/t/view.test:
        test of updating and fetching from the same table check
      sql/mysql_priv.h:
        unique table test
      sql/sql_base.cc:
        unique table test which take into account views added
      sql/sql_delete.cc:
        unique table test which take into account views added
      sql/sql_insert.cc:
        unique table test which take into account views added
      sql/sql_parse.cc:
        unique table test which take into account views added
      sql/sql_update.cc:
        unique table test which take into account views added
      sql/sql_view.cc:
        unique table test which take into account views added
      sql/table.h:
        save next independent (do not belong to current view) table
      7de077f7
  6. 07 Sep, 2004 1 commit
    • unknown's avatar
      WL#1218 "Triggers". Some very preliminary version of patch. · 52ac4935
      unknown authored
      Mostly needed for Monty for him getting notion what needed for triggers 
      from new .FRM format. 
      
      Things to be done:
      - Right placement of trigger's invocations
      - Right handling of errors in triggers (including transaction rollback)
      - Support for priviliges
      - Right handling of DROP/RENAME table (hope that it will be handled automatically
        with merging of .TRG into .FRM file)
      - Saving/restoring some information critical for trigger creation and replication
        with their definitions (e.g. sql_mode, creator, ...)
      - Replication
      
      Already has some known bugs so probably not for general review.
      
      
      include/mysqld_error.h:
        Added trigger related error codes.
      sql/Makefile.am:
        Added sql_trigger.* files to list of sources from which mysqld is built.
      sql/item.cc:
        Added Item_trigger_field class representing field of new/old version of row which is 
        inserted/updated/deleted and for which trigger is invoked.
      sql/item.h:
        Added enums for describing trigger properties. (Here because of dependencies).
        Added Item_trigger_field class representing field of new/old version of row which is 
        inserted/updated/deleted and for which trigger is invoked.
      sql/item_func.cc:
        Added Item_func_set_user_var::print_as_stmt() for printing of assignment to ser variable
        from stored procedures.
        Added comment clarifying why we don't need set no_send_ok when calling stored functions.
      sql/item_func.h:
        Added Item_func_set_user_var::print_as_stmt() for printing of assignment to ser variable
        from stored procedures.
      sql/lex.h:
        Symbols used in statements defining triggers were added.
      sql/mysql_priv.h:
        Exported some functions needed for triggers implementation.
      sql/parse_file.cc:
        Cleaned up FILE_OPTIONS_STRLIST handling (needed for triggers).
      sql/parse_file.h:
        Cleaned up FILE_OPTIONS_STRLIST handling (needed for triggers).
      sql/share/czech/errmsg.txt:
        Added trigger related error messages.
      sql/share/danish/errmsg.txt:
        Added trigger related error messages.
      sql/share/dutch/errmsg.txt:
        Added trigger related error messages.
      sql/share/english/errmsg.txt:
        Added trigger related error messages.
      sql/share/estonian/errmsg.txt:
        Added trigger related error messages.
      sql/share/french/errmsg.txt:
        Added trigger related error messages.
      sql/share/german/errmsg.txt:
        Added trigger related error messages.
      sql/share/greek/errmsg.txt:
        Added trigger related error messages.
      sql/share/hungarian/errmsg.txt:
        Added trigger related error messages.
      sql/share/italian/errmsg.txt:
        Added trigger related error messages.
      sql/share/japanese/errmsg.txt:
        Added trigger related error messages.
      sql/share/korean/errmsg.txt:
        Added trigger related error messages.
      sql/share/norwegian-ny/errmsg.txt:
        Added trigger related error messages.
      sql/share/norwegian/errmsg.txt:
        Added trigger related error messages.
      sql/share/polish/errmsg.txt:
        Added trigger related error messages.
      sql/share/portuguese/errmsg.txt:
        Added trigger related error messages.
      sql/share/romanian/errmsg.txt:
        Added trigger related error messages.
      sql/share/russian/errmsg.txt:
        Added trigger related error messages.
      sql/share/serbian/errmsg.txt:
        Added trigger related error messages.
      sql/share/slovak/errmsg.txt:
        Added trigger related error messages.
      sql/share/spanish/errmsg.txt:
        Added trigger related error messages.
      sql/share/swedish/errmsg.txt:
        Added trigger related error messages.
      sql/share/ukrainian/errmsg.txt:
        Added trigger related error messages.
      sql/sp_head.cc:
        sp_head::init_strings(): added support for triggers 
          (we don't have most of strings for them)
        sp_head::execute_function(): triggers don't require RETURN
        sp_head::reset_lex(): added propagation of trigger properties to LEX used for 
         parsing of statements composing trigger body.
        Added two more SP instructions:
        - sp_instr_set_user_var for setting user variables in stored functions and triggers
          (we can't use sp_instr_stmt and "SET @A:=..." statement since it will close open 
          tables and thus break execution of calling statement.
        - sp_instr_set_trigger_field for assignment to fields of row being updated/inserted in
          triggers
      sql/sp_head.h:
        Added new type of sp_head object - TYPE_ENUM_TRIGGER
        Added two more SP instructions:
        - sp_instr_set_user_var for setting user variables in stored functions and triggers
          (we can't use sp_instr_stmt and "SET @A:=..." statement since it will close open 
          tables and thus break execution of calling statement.
        - sp_instr_set_trigger_field for assignment to fields of row being updated/inserted in
          triggers
      sql/sql_base.cc:
        Now freeing memory occupied by trigger related structures when closing tables.
        open_unireg_entry(): added loading of triggers for table.
        find_field_in_real_table() is now public since it required by Item_trigger_field in item.cc
      sql/sql_delete.cc:
        Added triggers invocation for DELETE (should be fixed for sure :))
      sql/sql_insert.cc:
        Added triggers invocation for INSERT (should be fixed for sure :))
      sql/sql_lex.cc:
        Added trg_new_row_fake_var variable pointer to which is used for distinguishing between
        assignment to NEW row field (when parsing trigger definition) and structured variable.
        Added initialization of LEX->trg_table to lex_start(). (When triggers are parsed during
        opening of table it points to table object.)
      sql/sql_lex.h:
        Added trigger related commands.
        Added st_trg_chistics structure describing properties of trigger being created
        (as struct and as LEX member).
        Added trg_new_row_fake_var variable pointer to which is used for
        distinguishing between assignment to NEW row field (when parsing trigger definition)
        and structured variable.
        Added LEX::trg_table which points to table being opened when we are parsing trigger
        definition while opening table.
      sql/sql_parse.cc:
        Added support for CREATE/DROP TRIGGER commands.
      sql/sql_table.cc:
        Cleanup. close_cached_table() always returns 0 and its result is not analyzed in most
        places so chenged its return type to void.
      sql/sql_update.cc:
        Added triggers invocation for UPDATE (should be fixed for sure :))
      sql/sql_yacc.yy:
        Added support for CREATE/DROP TRIGGER statements.
        Added support for OLD/NEW row identifiers in trigger.
        Made assignment to user variables not to break execution of stored function or trigger.
      sql/table.h:
        Added TABLE::triggers member representing triggers for this table.
      52ac4935
  7. 03 Sep, 2004 2 commits
    • unknown's avatar
      Cleanup of new code pushed into 5.0 since last pull · d0211cf5
      unknown authored
      Merged the different find_xxxx_table_in_list functions to one + some inline functions
      
      
      mysql-test/r/view.result:
        Fix result (remove not used view from show tables)
      sql/item_subselect.cc:
        Remove not used functions
      sql/item_subselect.h:
        Remove not used functions
      sql/mysql_priv.h:
        Merged the different find_xxxx_table_in_list functions to one + some inline functions
      sql/sql_acl.cc:
        More debugging + simple cleanups
      sql/sql_base.cc:
        Merged the different find_xxxx_table_in_list functions to one + some inline functions
        Indentation cleanups & more comments
      sql/sql_delete.cc:
        Namechange
      sql/sql_insert.cc:
        Simple optimizations & Style cleanups
        Merged common code (in mysql_prepare_insert_check_table)
      sql/sql_lex.cc:
        function name changes
        More comments
      sql/sql_parse.cc:
        Function name changes
        Made check_one_table_access returning bool
        More debugging in 'check_access'
        Added function 'check_some_access', which is used when creating a view
      sql/sql_prepare.cc:
        Resetting flag directly after test makes code easier to read
      sql/sql_select.cc:
        Code simplifications
      sql/sql_show.cc:
        Indentation cleanups.
        Fixed typo in name
      sql/sql_update.cc:
        Function name change
      sql/sql_view.cc:
        Simple optimizations.
        Style fixes.
        Remove view_field_names[]
        Simplified 'check_key_in_view()'
      sql/table.cc:
        Simplified new code in openfrm()
        variable name change i -> item
        Indentation changes
      sql/table.h:
        Fixed typo in variable name
        Method name change in field iterator: end() -> end_of_fields()
      tests/client_test.c:
        Changed number to macro
      d0211cf5
    • 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
  8. 31 Aug, 2004 1 commit
    • unknown's avatar
      fixed open_and_lock_tables result processing (all open_and_lock_tables revision) · 6e314e04
      unknown authored
      fixed printing of COLLATE operation
      (BUG#5155)
      
      
      mysql-test/r/case.result:
        fixed printing of COLLATE operation
      mysql-test/r/func_if.result:
        fixed printing of COLLATE operation
      mysql-test/r/func_in.result:
        fixed printing of COLLATE operation
      mysql-test/r/func_str.result:
        fixed printing of COLLATE operation
      mysql-test/r/func_test.result:
        fixed printing of COLLATE operation
      mysql-test/r/view.result:
        VIEW with collation
      mysql-test/t/view.test:
        VIEW with collation
      sql/item_strfunc.cc:
        fixed printing of COLLATE operation
      sql/item_strfunc.h:
        fixed printing of COLLATE operation
      sql/sp_head.cc:
        fixed open_and_lock_tables result processing
      sql/sql_base.cc:
        fixed open_and_lock_tables result processing
      sql/sql_delete.cc:
        fixed open_and_lock_tables result processing
      sql/sql_help.cc:
        fixed open_and_lock_tables result processing
      sql/sql_load.cc:
        fixed open_and_lock_tables result processing
      sql/sql_parse.cc:
        fixed open_and_lock_tables result processing
      sql/sql_prepare.cc:
        fixed open_and_lock_tables result processing
      sql/sql_show.cc:
        fixed open_and_lock_tables result processing
      sql/sql_update.cc:
        fixed open_and_lock_tables result processing
      6e314e04
  9. 23 Aug, 2004 1 commit
    • unknown's avatar
      Fix for BUG#5033 "When using temporary tables truncate does NOT reset the auto_increment counter" · e9c25d93
      unknown authored
      (ok'd by CTO to fix it in 4.0).
      Fix to make mysql-test-run work with all Valgrind versions.
      
      
      mysql-test/mysql-test-run.sh:
        fixing mysql-test-run.sh so that it works indifferently with Valgrind 1.x, 2.x
        (versions <= 2.0.0 refuse --tool option; versions >=2.1.2 require it; 2.1.0 accepts it).
        I hope the shell code is portable enough; anyway Valgrind only runs on Linux...
        I tested it with 2.0.0, 2.1.0, 2.1.2.
      mysql-test/r/truncate.result:
        result update
      mysql-test/t/truncate.test:
        testing if TRUNCATE resets autoinc counter for temp tables (BUG#5033); testing difference with DELETE FROM.
      sql/sql_delete.cc:
        in mysql_truncate(), always reset the autoinc counter, as manual says (even if it's a temp table, which was BUG#5033).
      e9c25d93
  10. 15 Jul, 2004 1 commit
    • unknown's avatar
      VIEW · 8790b1e6
      unknown authored
      two TABLE_LIST copy eliminated
      
      
      include/mysqld_error.h:
        errors of view
      libmysqld/Makefile.am:
        new view file
      mysql-test/r/connect.result:
        SHOW TABLE show type of table
      mysql-test/r/ctype_recoding.result:
        SHOW TABLE show type of table
      mysql-test/r/drop.result:
        SHOW TABLE show type of table
      mysql-test/r/grant.result:
        new two privileges (CRETEA|SHOW VIEW)
      mysql-test/r/lowercase_table.result:
        SHOW TABLE show type of table
      mysql-test/r/ps_1general.result:
        SHOW TABLE show type of table
      mysql-test/r/rename.result:
        SHOW TABLE show type of table
      mysql-test/r/rpl000009.result:
        SHOW TABLE show type of table
      mysql-test/r/rpl_error_ignored_table.result:
        SHOW TABLE show type of table
      mysql-test/r/select.result:
        SHOW TABLE show type of table
      mysql-test/r/system_mysql_db.result:
        SHOW TABLE show type of table
        new two privileges (CRETEA|SHOW VIEW)
      mysql-test/t/system_mysql_db_fix.test:
        removing all system tables
      scripts/mysql_fix_privilege_tables.sql:
        new two privileges (CRETEA|SHOW VIEW)
      sql/Makefile.am:
        new VIEW related file
      sql/ha_myisammrg.cc:
        two TABLE_LIST copy eliminated
      sql/item.cc:
        VIEW
      sql/item.h:
        VIEW
      sql/item_subselect.cc:
        VIEW
      sql/item_subselect.h:
        VIEW
      sql/lex.h:
        VIEW
      sql/lock.cc:
        VIEW
      sql/mysql_priv.h:
        VIEW
      sql/mysqld.cc:
        VIEW
        new parameter - sql_updatable_view_key
      sql/opt_sum.cc:
        two TABLE_LIST copy eliminated
      sql/set_var.cc:
        new parameter - sql_updatable_view_key
      sql/share/czech/errmsg.txt:
        errors messages of views
      sql/share/danish/errmsg.txt:
        errors messages of views
      sql/share/dutch/errmsg.txt:
        errors messages of views
      sql/share/english/errmsg.txt:
        errors messages of views
      sql/share/estonian/errmsg.txt:
        errors messages of views
      sql/share/french/errmsg.txt:
        errors messages of views
      sql/share/german/errmsg.txt:
        errors messages of views
      sql/share/greek/errmsg.txt:
        errors messages of views
      sql/share/hungarian/errmsg.txt:
        errors messages of views
      sql/share/italian/errmsg.txt:
        errors messages of views
      sql/share/japanese/errmsg.txt:
        errors messages of views
      sql/share/korean/errmsg.txt:
        errors messages of views
      sql/share/norwegian-ny/errmsg.txt:
        errors messages of views
      sql/share/norwegian/errmsg.txt:
        errors messages of views
      sql/share/polish/errmsg.txt:
        errors messages of views
      sql/share/portuguese/errmsg.txt:
        errors messages of views
      sql/share/romanian/errmsg.txt:
        errors messages of views
      sql/share/russian/errmsg.txt:
        errors messages of views
      sql/share/serbian/errmsg.txt:
        errors messages of views
      sql/share/slovak/errmsg.txt:
        errors messages of views
      sql/share/spanish/errmsg.txt:
        errors messages of views
      sql/share/swedish/errmsg.txt:
        errors messages of views
      sql/share/ukrainian/errmsg.txt:
        errors messages of views
      sql/slave.cc:
        two TABLE_LIST copy eliminated
      sql/sp.cc:
        VIEW
      sql/sql_acl.cc:
        VIEW
      sql/sql_acl.h:
        VIEW
      sql/sql_base.cc:
        VIEW
      sql/sql_cache.cc:
        two TABLE_LIST copy eliminated
      sql/sql_class.h:
        VIEW
      sql/sql_db.cc:
        two TABLE_LIST copy eliminated
      sql/sql_delete.cc:
        VIEW
      sql/sql_derived.cc:
        VIEW
      sql/sql_handler.cc:
        two TABLE_LIST copy eliminated
      sql/sql_help.cc:
        two TABLE_LIST copy eliminated
      sql/sql_insert.cc:
        VIEW
      sql/sql_lex.cc:
        VIEW
      sql/sql_lex.h:
        VIEW
      sql/sql_load.cc:
        VIEW
      sql/sql_olap.cc:
        VIEW
      sql/sql_parse.cc:
        two TABLE_LIST copy eliminated
        VIEW
      sql/sql_prepare.cc:
        VIEW
      sql/sql_rename.cc:
        two TABLE_LIST copy eliminated
      sql/sql_select.cc:
        VIEW
      sql/sql_show.cc:
        VIEW
      sql/sql_table.cc:
        VIEW
      sql/sql_union.cc:
        VIEW
      sql/sql_update.cc:
        VIEW
      sql/sql_yacc.yy:
        VIEW
      sql/table.cc:
        VIEW
      sql/table.h:
        VIEW
      sql/tztime.cc:
        two TABLE_LIST copy eliminated
      sql/unireg.h:
        VIEW
      tests/client_test.c:
        VIEW
      8790b1e6
  11. 23 Jun, 2004 1 commit
    • 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
  12. 09 Jun, 2004 1 commit
    • unknown's avatar
      Making DROP TABLE IF EXISTS, DROP DATABASE IF EXISTS, DELETE FROM, UPDATE be logged to · 43489240
      unknown authored
      binlog even if they changed nothing, and a test for this.
      This is useful when users use these commands to clean up their master and slave by issuing
      one command on master (assume master and slave have slightly different data for some
      reason and you want to clean up both).
      Note that I have not changed multi-table DELETE and multi-table UPDATE because their
      error-reporting mechanism is more complicated.
      
      
      mysql-test/r/mysqlbinlog.result:
        result update
      mysql-test/r/rpl_charset.result:
        result update
      mysql-test/r/rpl_flush_log_loop.result:
        result update
      mysql-test/r/rpl_replicate_do.result:
        result update
      mysql-test/r/rpl_temporary.result:
        result update
      mysql-test/t/mysqlbinlog.test:
        moving SET TIMESTAMP up as DROP shows up in binlog
      sql/sql_db.cc:
        DROP DATABASE IF EXISTS is now always logged to binlog, even if db did not exist
      sql/sql_delete.cc:
        DELETE FROM t is now always logged to binlog even if no rows deleted (but in this case, only if really no error).
      sql/sql_table.cc:
        DROP TABLE IF EXISTS is now always logged to binlog even if table did not exist
      sql/sql_update.cc:
        UPDATE is now always logged to binlog even if no rows updated (but in this case, only if really no error).
      43489240
  13. 19 May, 2004 1 commit
    • unknown's avatar
      PS and SP made compatible in mechanism used for preparing query for rexecutions (Bug #2266) · 16227c28
      unknown authored
      mysql-test/r/sp.result:
        test suite for Bug #2266
      mysql-test/t/sp.test:
        test suite for Bug #2266
      sql/item_subselect.cc:
        made ancestor for Statement (Item_arena)
      sql/item_subselect.h:
        made ancestor for Statement (Item_arena)
      sql/item_sum.cc:
        made ancestor for Statement (Item_arena)
      sql/item_sum.h:
        made ancestor for Statement (Item_arena)
      sql/mysql_priv.h:
        reset_stmt_for_execute use PS and SP
      sql/sp_head.cc:
        sp_head use Item_arena as ancestor to be PS cleunup compatible
        SP use PS storing/restoring/cleanup mechanisms
        cleanup() of SP Items added
        Items created in temporary memory pool during SP execution saved for normal freeing after SP execution
      sql/sp_head.h:
        sp_head use Item_arena
      sql/sql_base.cc:
        made ancestor for Statement (Item_arena)
        results of wild_setup made permanent
        setup_conds make natural joins expanding only once and store results in PS/SP memory
      sql/sql_class.cc:
        made ancestor for Statement (Item_arena)
      sql/sql_class.h:
        made ancestor for Statement (Item_arena)
        method to detect PS preparation added
      sql/sql_delete.cc:
        storing where for DELETE and mark first execution
      sql/sql_derived.cc:
        use method
      sql/sql_insert.cc:
        mark first execution for INSERT
      sql/sql_lex.cc:
        flags to correctly make transformations of query and storing them in memory of PS/SP
        made ancestor for Statement (Item_arena)
      sql/sql_lex.h:
        reved variable od SP ol saving data
        flags to correctly make transformations of query and storing them in memory of PS/SP
      sql/sql_parse.cc:
        cleunup unit for any query
      sql/sql_prepare.cc:
        made ancestor for Statement (Item_arena)
        storing where moved to preparation
        changed interface of reset_stmt_for_execute to use it is SP
        do not restore where/order by/group by before first execution (but tables and unit can be chenged without execution and should be prepared (subqueries executes on demand))
      sql/sql_select.cc:
        storing where for SELECT/multi-DELETE/... and mark first execution
      sql/sql_union.cc:
        made ancestor for Statement (Item_arena)
      sql/sql_update.cc:
        storing where for UPDATE and mark first execution
      16227c28
  14. 12 May, 2004 1 commit
    • unknown's avatar
      This is first cset for WL#1394 "Optimize index merge when all involved index... · 3600d09a
      unknown authored
      This is first cset for WL#1394 "Optimize index merge when all involved index ranges include only values with equal keys"
      The main idea is to exploit the fact that key scans for "key=const" return ordered sequences of rowids.
      
      
      include/my_base.h:
        Added HA_EXTRA_KEYREAD_PRESERVE_FIELDS flag
      include/my_bitmap.h:
        Added a couple of utility functions
      include/my_sys.h:
        Added my_conunt_bits_ushort function
      innobase/include/row0mysql.h:
        Added support for HA_EXTRA_KEYREAD_PRESERVE_FIELDS
      innobase/row/row0sel.c:
        Added support for HA_EXTRA_KEYREAD_PRESERVE_FIELDS
      mysys/my_bit.c:
        Added my_count_bits_ushort function
      mysys/my_bitmap.c:
        Added a couple of utility functions
      sql/ha_berkeley.cc:
        Added cmp_ref rowid comparison function.
      sql/ha_berkeley.h:
        Added cmp_ref rowid comparison function.
      sql/ha_heap.h:
        Added cmp_ref rowid comparison function.
      sql/ha_innodb.cc:
        Added cmp_ref rowid comparison function and support from HA_EXTRA_KEYREAD_PRESERVE_FIELDS
      sql/ha_innodb.h:
        Added cmp_ref rowid comparison function.
      sql/handler.h:
        Added cmp_ref rowid comparison function.
      sql/opt_range.cc:
        Added QUICK_ROR_{INTERSECT,UNION}_SELECT classes and related optimizer code
      sql/opt_range.h:
        Added QUICK_ROR_{INTERSECT,UNION}_SELECT classes
      sql/sql_delete.cc:
        Changed to use new ROWID comparison function
        also always call quick->reset() for quick selects
      sql/sql_select.cc:
        Account for new quick select types
      sql/sql_select.h:
        New, proper rowid ordering/comparison function to be used with Unique class etc.
      sql/sql_test.cc:
        Account for new quick select types
      sql/sql_update.cc:
        Account for new quick select types
      3600d09a
  15. 04 May, 2004 1 commit
    • unknown's avatar
      WL#1567: Add ROW_COUNT() Function to retrieve count of rows updated/inserted/deleted · 7c4ceb73
      unknown authored
      mysql-test/r/sp.result:
        New test cases for function ROW_COUNT().
      mysql-test/t/sp.test:
        New test cases for function ROW_COUNT().
      sql/item_func.cc:
        New Item_func_row_count.
      sql/item_func.h:
        New Item_func_row_count.
      sql/lex.h:
        New symbol for function ROW_COUNT().
      sql/sql_class.h:
        New slot in THD for storing the row_count after insert, delete and update.
      sql/sql_delete.cc:
        Set thd->row_count_func when deleting.
      sql/sql_insert.cc:
        Set thd->row_count_func when inserting.
      sql/sql_parse.cc:
        Stored procedure CALLs send the row count from the last insert, delete or update.
      sql/sql_update.cc:
        Set thd->row_count_func when updating.
      sql/sql_yacc.yy:
        New function ROW_COUNT().
      7c4ceb73
  16. 12 Apr, 2004 1 commit
    • unknown's avatar
      Added missing return statement · 0ba6cb48
      unknown authored
      sql/sql_delete.cc:
        Added missing return
      sql/sql_lex.cc:
        Comment fixes
      sql/sql_parse.cc:
        Comment fixes
      0ba6cb48
  17. 09 Apr, 2004 1 commit
    • unknown's avatar
      after review PS fixes · 8ab58393
      unknown authored
      sql/item_cmpfunc.cc:
        merged in one if
      sql/mysql_priv.h:
        removed unused paremeter of check_one_table_access
        declaration of new function for SP share code
      sql/set_var.cc:
        function descriotion added
        unneeded parantses removed
      sql/sql_acl.cc:
        new parameter to limit number of checked tables for check_grant
      sql/sql_acl.h:
        new parameter to limit number of checked tables for check_grant
      sql/sql_delete.cc:
        preparation moved in separate function
      sql/sql_insert.cc:
        preparation moved in separate function
      sql/sql_lex.cc:
        comment style fixed
        unneeded assignment removed
      sql/sql_parse.cc:
        new parameter to limit number of checked tables for check_grant
        table list manipulation removed (because of above)
        new precheck function
      sql/sql_prepare.cc:
        function rewrited to shere code with sql_prepare.cc
        flow control fixed
      sql/sql_show.cc:
        new parameter to limit number of checked tables for check_grant
      sql/sql_update.cc:
        preparation moved in separate function
      sql/table.h:
        flag renamed
      8ab58393
  18. 15 Mar, 2004 1 commit
  19. 04 Mar, 2004 1 commit
    • unknown's avatar
      Rollback UPDATE/DELETE statements on kill · 0b751edc
      unknown authored
      nsure that rows in a multi-row INSERT DELAYED are inserted atomicly
      
      
      mysql-test/mysql-test-run.sh:
        Make test case safe for openserver/unixware (Bug #2700)
      sql/sql_delete.cc:
        Rollback statement on kill
      sql/sql_insert.cc:
        Ensure that rows in a multi-row INSERT DELAYED are inserted atomicly (without releasing logs).
        This is needed to ensure that the mysqlbinlog is consistent.
        Bug #2491
      sql/sql_list.h:
        Ensure that rows in a multi-row INSERT DELAYED is inserted atomicly (without releasing logs).
        This is needed to ensure that the mysqlbinlog is consistent.
        Bug #2491
      sql/sql_update.cc:
        Rollback statement on kill
      0b751edc
  20. 22 Feb, 2004 1 commit
    • unknown's avatar
      Cleanups · 522e83b6
      unknown authored
      acinclude.m4:
        Remove innobase/libodbc
      innobase/Makefile.am:
        Remove innobase/libodbc
      sql/sql_delete.cc:
        Indentation cleanup
      sql/sql_yacc.yy:
        Fixed wrong merge
      522e83b6
  21. 19 Feb, 2004 1 commit
    • unknown's avatar
      Fix for a bug #2799. · e022b278
      unknown authored
      Multi-table delete's with tables having foreign key constraints
      did not return the error.
      
      Also added tests for multi-table updates.
       
      
      
      e022b278
  22. 02 Feb, 2004 1 commit
    • unknown's avatar
      just tried to find all 'skipp' and replace it with 'skip'. · f1bfba29
      unknown authored
      client/sql_string.cc:
        skipp -> skip
      dbug/dbug.c:
        skipp -> skip
      myisam/mi_create.c:
        skipp -> skip
      myisam/mi_dynrec.c:
        skipp -> skip
      myisam/mi_packrec.c:
        skipp -> skip
      myisam/mi_rrnd.c:
        skipp -> skip
      myisam/mi_test1.c:
        skipp -> skip
      myisam/myisampack.c:
        skipp -> skip
      myisam/rt_test.c:
        skipp -> skip
      myisam/sp_test.c:
        skipp -> skip
      mysys/default.c:
        skipp -> skip
      mysys/mf_iocache.c:
        skipp -> skip
      mysys/mf_pack.c:
        skipp -> skip
      mysys/mf_wcomp.c:
        skipp -> skip
      mysys/typelib.c:
        skipp -> skip
      sql/filesort.cc:
        skipp -> skip
      sql/item_strfunc.cc:
        skipp -> skip
      sql/mysqld.cc:
        skipp -> skip
      sql/opt_range.h:
        skipp -> skip
      sql/sql_delete.cc:
        skipp -> skip
      sql/sql_select.cc:
        skipp -> skip
      sql/sql_string.cc:
        skipp -> skip
      sql/sql_update.cc:
        skipp -> skip
      strings/ctype-bin.c:
        skipp -> skip
      strings/ctype-simple.c:
        skipp -> skip
      strings/r_strinstr.c:
        skipp -> skip
      strings/strinstr.c:
        skipp -> skip
      strings/strstr.c:
        skipp -> skip
      f1bfba29
  23. 01 Feb, 2004 1 commit
    • unknown's avatar
      now all tables of query are locked in one place (including derived tables) · 68c0a299
      unknown authored
      fixed BUG#2120 and other problem with EXPLAINing derived tables
      
      
      mysql-test/r/derived.result:
        correct tables names & Co in derived tables
        test case for BUG#2120
      mysql-test/t/derived.test:
        test case for BUG#2120
      sql/mysql_priv.h:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/repl_failsafe.cc:
        correct initialization of TABLE_LIST
      sql/sql_acl.cc:
        used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
      sql/sql_base.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/sql_delete.cc:
        all tables processing is done during opening
      sql/sql_derived.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables) to sutisfy "all query tables locking" at the moment
      sql/sql_insert.cc:
        all tables processing is done during opening
        correct initialization of TABLE_LIST
      sql/sql_lex.cc:
        now table list will be created for whole query
        layout fix
        correct check of updated table in subqueries
      sql/sql_lex.h:
        now table list will be created for whole query
        correct check of updated table in subqueries
      sql/sql_olap.cc:
        THIS FUNCTION IS USED NOWHERE
        it will be good to remove it at all (handle_olaps)
      sql/sql_parse.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/sql_prepare.cc:
        new creating list parameters
        all tables processing is done during opening
      sql/sql_select.cc:
        all tables processing is done during opening
      sql/sql_select.h:
        now it used only within file where is defined
      sql/sql_udf.cc:
        used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
      sql/sql_update.cc:
        all tables processing is done during opening
      68c0a299
  24. 21 Dec, 2003 1 commit
    • unknown's avatar
      Update for VC++ · 4f72061f
      unknown authored
      (Fixed project files, compiler warnings etc..)
      
      
      BitKeeper/etc/ignore:
        added mysql_priv.h
      VC++Files/libmysqld/libmysqld.dsp:
        Update for VC++to
      VC++Files/sql/mysqld.dsp:
        Update for VC++
      client/mysqlbinlog.cc:
        Remove not used variable
      sql-common/client.c:
        Fix for compilation with VC++
      sql/filesort.cc:
        Remove not used variable
      sql/item_timefunc.cc:
        Fixed compiler warnings
      sql/log_event.cc:
        Fixed compiler warnings
        - One can't portable allocate an stack-array dynamicly
        - Changed sql_mode to ulong to match THD.variables.sql_mode (If they are not the same we get a lot of compiler warnings)
      sql/log_event.h:
        Changed sql_mode to ulong to match THD.variables.sql_mode (If they are not the same we get a lot of compiler warnings)
      sql/sp.cc:
        sql_mode to ulong
        Don't use strcpy
        Replaced sprintf() with strmov
      sql/sp_cache.cc:
        Fixed compiler warning
      sql/sp_head.cc:
        Removed not used variable
      sql/sp_rcontext.cc:
        Removed not used variable
      sql/sp_rcontext.h:
        Fixed compiler warning
      sql/sql_class.cc:
        Portability fix
      sql/sql_delete.cc:
        Fixed compiler warning
      sql/sql_insert.cc:
        Fixed compiler warning
      sql/sql_update.cc:
        Fixed compiler warning
      4f72061f
  25. 20 Dec, 2003 2 commits
    • unknown's avatar
      Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe · 65c44414
      unknown authored
      A after merge fix for last merge
      
      
      innobase/btr/btr0btr.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/btr/btr0sea.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/buf/buf0buf.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/buf/buf0flu.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/buf/buf0lru.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/buf/buf0rea.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/com/com0shm.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/data/data0data.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/data/data0type.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/dict/dict0crea.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/dict/dict0dict.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/fil/fil0fil.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/fsp/fsp0fsp.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/fut/fut0lst.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/ha/ha0ha.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/ibuf/ibuf0ibuf.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/include/univ.i:
        Disabled ut_sprintf/ut_fprintf. Not needed as all number arguments to printf are now casted
      innobase/lock/lock0lock.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/log/log0log.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/log/log0recv.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/mem/mem0dbg.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/mem/mem0pool.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/mtr/mtr0log.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/mtr/mtr0mtr.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/os/os0file.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/os/os0sync.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/page/page0cur.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/page/page0page.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/read/read0read.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/rem/rem0cmp.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/rem/rem0rec.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/row/row0mysql.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
        Heikki, please check the change of % to %%
      innobase/row/row0sel.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/row/row0undo.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/srv/srv0srv.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/srv/srv0start.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/sync/sync0arr.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/sync/sync0rw.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/sync/sync0sync.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/trx/trx0purge.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/trx/trx0rec.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/trx/trx0roll.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/trx/trx0sys.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/trx/trx0trx.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/trx/trx0undo.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/usr/usr0sess.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/ut/ut0mem.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      innobase/ut/ut0ut.c:
        Add cast of integer/longlong to (ulong) to make printf/sprintf 64 bit safe
      sql/sql_delete.cc:
        After merge fix
      65c44414
    • unknown's avatar
      one line was removed during merge · 28f7dbdb
      unknown authored
      28f7dbdb
  26. 19 Dec, 2003 2 commits
    • unknown's avatar
      Fixed memory overrun bug in DELETE ... ORDER BY · 7592a736
      unknown authored
      7592a736
    • unknown's avatar
      THD::lex now points to THD::main_lex like in 5.0 · 8d987f9e
      unknown authored
      All tests pass (client_test included)
      
      
      libmysqld/lib_sql.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/filesort.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/ha_innodb.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/ha_myisam.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_cmpfunc.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_create.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_func.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_subselect.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/item_sum.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/mysql_priv.h:
        THD::lex now points to THD::main_lex like in 5.0
      sql/mysqld.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/protocol.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/repl_failsafe.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/slave.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_acl.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_base.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_cache.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_class.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_class.h:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_delete.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_error.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_insert.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_lex.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_lex.h:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_parse.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_prepare.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_repl.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_select.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_table.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_union.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_update.cc:
        THD::lex now points to THD::main_lex like in 5.0
      sql/sql_yacc.yy:
        THD::lex now points to THD::main_lex like in 5.0
      8d987f9e
  27. 16 Dec, 2003 1 commit
    • unknown's avatar
      Fix for BUG#2083 · e97722e4
      unknown authored
      "EE_ error codes (EE_DELETE, EE_WRITE) end up in the binlog, making slave stop".
      The problem was that during execution of the command on the master, an error
      can occur (for example, not space left on device, then mysqld waits and when
      there is space it completes successfully: so finally it worked but the error
      EE_WRITE remains in thd->net.last_errno and thd->net.last_error).
      To know if finally the command succeeded, we test the 'error' variable in
      every place, and if it shows no failure we reset thd->net.last_err* using
      the function THD::clear_error() which is backported from 4.1.
      A new test to see if now only real errors get to the binlog (note: the test
      uses "rm").
      
      Also a bit of memory free/alloc saving in log_event.cc (do not free the whole
      mem_root after every query in the slave SQL thread: we can keep the initial
      block of it; which will be freed when the thread terminates).
      
      
      sql/log_event.cc:
        In the slave SQL thread, it's a waste to free the initial block of the mem_root
        after every query. We can instead keep it. It will be freed when the thread
        terminates (in THD::~THD()).
      sql/sql_acl.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_base.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_class.h:
        Backport of THD::clear_error() from 4.1:
        clears the error in thd->net.last_errno
      sql/sql_db.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_delete.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_insert.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_parse.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_rename.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_table.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_update.cc:
        clear the error in thd->net.last_errno as there was no error
      e97722e4
  28. 12 Dec, 2003 1 commit
    • unknown's avatar
      sql_delete.cc, sql_update.cc, sql_class.h: · 0a79eedb
      unknown authored
        Simplification of the previous fix for multi-update/delete.
      
      
      sql/sql_class.h:
        Simplification of the previous fix for multi-update/delete.
      sql/sql_update.cc:
        Simplification of the previous fix for multi-update/delete.
      sql/sql_delete.cc:
        Simplification of the previous fix for multi-update/delete.
      0a79eedb
  29. 11 Dec, 2003 2 commits
    • unknown's avatar
      Many files: · 9570d010
      unknown authored
        Fixed a bug causing a crash for multi-update/multi-delete
        with impossible where (bug #1860).
      
      
      sql/sql_class.h:
        Fixed a bug causing a crash for multi-update/multi-delete
        with impossible where (bug #1860).
      sql/sql_delete.cc:
        Fixed a bug causing a crash for multi-update/multi-delete
        with impossible where (bug #1860).
      sql/sql_update.cc:
        Fixed a bug causing a crash for multi-update/multi-delete
        with impossible where (bug #1860).
      mysql-test/t/multi_update.test:
        Fixed a bug causing a crash for multi-update/multi-delete
        with impossible where (bug #1860).
      mysql-test/r/multi_update.result:
        Fixed a bug causing a crash for multi-update/multi-delete
        with impossible where (bug #1860).
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      9570d010
    • unknown's avatar
      Fixed a possible memory leak on MacOSX when using the shared libmysql.so library (Bug #2061) · 287661e6
      unknown authored
      mysql_server_init() now returns error code if something went wrong (Bug #2062)
      Don't use my_fopen() when reading symlink information as this may cause problems when a lot of files are opened.
      Free thread keys with pthread_key_delete() instead of relying on automatic free. (Bug #2062)
      Fixed bug in UNION statement with alias '*'. (Bug #1249)
      Fixed a bug in DELETE ... ORDER BY ... LIMIT where the rows where not deleted in the proper order. (Bug #1024).
      FOUND_ROWS() could return incorrect number of rows after a query with an impossible WHERE condition.
      HOW DATABASES doesn't anymore show .sym files (on windows) that doesn't point to a valid directory. (Bug #1385)
      
      
      include/config-win.h:
        Ensure that USE_SYMDIR is set for all windows versions
        (This is set in makefiles, so this is just an extra safety measure)
      include/my_pthread.h:
        Fixed a possible memory leak on MacOSX when using the shared libmysql.so library (Bug #2061)
      include/my_sys.h:
        my_init() now returns error code if something went wrong
      include/mysql.h:
        mysql_once_init() now returns error code if something went wrong
      include/mysql_com.h:
        my_init() now returns error code if something went wrong
      libmysql/libmysql.c:
        mysql_server_init() and mysql_once_init() now returns error code if something went wrong (Bug #2062)
      mysql-test/r/limit.result:
        Update results
      mysql-test/r/select_found.result:
        Update results
      mysql-test/r/union.result:
        Update results
      mysql-test/t/limit.test:
        Added test for DELETE ... ORDER BY ... LIMIT (bug #1024)
      mysql-test/t/select_found.test:
        Added test for problem with impossible WHERE (Bug #1468)
      mysql-test/t/union.test:
        Added test for problem with alias '*' (Bug #1249)
      mysys/mf_pack.c:
        Don't use my_fopen() when reading symlink information as this may cause problems when a lot of files are opened.
      mysys/my_init.c:
        my_init() now returns error code if something went wrong
      mysys/my_lib.c:
        More debug information
      mysys/my_thr_init.c:
        Free thread keys with pthread_key_delete() instead of relying on automatic free. (Bug #2062)
      sql/sql_base.cc:
        Fixed bug in UNION statement with alias '*'. (Bug #1249)
      sql/sql_delete.cc:
        Fixed a bug in DELETE ... ORDER BY ... LIMIT where the rows where not deleted in the proper order. (Bug #1024).
      sql/sql_select.cc:
        FOUND_ROWS() could return incorrect number of rows after a query with an impossible WHERE condition.
      sql/sql_show.cc:
        SHOW DATABASES doesn't anymore show .sym files (on windows) that doesn't point to a valid directory. (Bug #1385)
      sql/sql_yacc.yy:
        Allow syntax UNION DISTINCT
      287661e6
  30. 06 Dec, 2003 1 commit
  31. 19 Nov, 2003 1 commit
  32. 18 Nov, 2003 1 commit
    • unknown's avatar
      CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS · e72124c4
      unknown authored
      New multi-key-cache handling. This was needed becasue the old one didn't work reliable with MERGE tables.
      ALTER TABLE table_name ... CHARACTER SET  ... now changes all char/varchar/text columns to the given character set
      (One must use ALTER TABLE ... DEFAULT CHARACTER SET ... to change the default character set)
      Fixed that have_compress is detected properly (fixes problems with func_compress.test on platforms without zlib)
      New syntax for CACHE INDEX ('keys' is optional if no index name is given and one mentions the key cache name only ones)
      Removed compiler warnings
      Added mysql_set_server_option() to allow clients like PHP to easaily set/reset the multi-statement flag.
      
      
      BUILD/compile-pentium-valgrind-max:
        Add test of isam
      client/mysql.cc:
        CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
      include/my_base.h:
        Remove HA_EXTRA_SET_KEY_CACHE
      include/my_no_pthread.h:
        Add defines to ignore rw-locks when running without threads
      include/my_sys.h:
        Added function for multi-key-caches
      include/myisam.h:
        Added function to handle multi-key-caches
      include/mysql.h:
        Added mysql_set_server_option
      include/mysql_com.h:
        CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
        Added enum_mysql_set_option
      include/mysqld_error.h:
        Added error message for unknown key cache
      innobase/srv/srv0start.c:
        Removed warning that is confused for MySQL users
      libmysql/libmysql.c:
        Added mysql_set_server_option()
      libmysql/libmysql.def:
        Added mysql_set_server_option()
      myisam/ft_nlq_search.c:
        Removed compiler warning
      myisam/ft_static.c:
        Removed compiler warning and fixed wrong return value
      myisam/mi_check.c:
        Clean up multi-key-cache usage
      myisam/mi_checksum.c:
        Removed not used variable
      myisam/mi_close.c:
        keycache -> key_cache
      myisam/mi_delete_all.c:
        keycache -> key_cache
      myisam/mi_extra.c:
        keycache -> key_cache
        Removed HA_EXTRA_SET_KEY_CACHE
      myisam/mi_keycache.c:
        Changed logic so that it's MyISAM that is responsible for assign tables to different key caches instead of the upper level
      myisam/mi_locking.c:
        Don't change key cache on unlock (must be done before)
      myisam/mi_open.c:
        Fetch key cache to use from multi_key_cache_search()
      myisam/mi_page.c:
        keycache -> key_cache
      myisam/mi_panic.c:
        keycache -> key_cache
      myisam/mi_preload.c:
        keycache -> key_cache
      myisam/mi_test1.c:
        Use KEY_CACHE_BLOCK_SIZE
      myisam/mi_test2.c:
        Always test resize_key_cache()
      myisam/mi_test3.c:
        Use KEY_CACHE_BLOCK_SIZE instead of 512
      myisam/myisamchk.c:
        update for multiple key caches
      myisam/myisamdef.h:
        Remove reg_keycache
        Add unique_name_length for storing length of unique_file_name
      myisam/myisamlog.c:
        Change how end_key_cache() is called
      mysql-test/mysql-test-run.sh:
        Fixed web link
        Added name of failed test to abort row.
      mysql-test/r/alter_table.result:
        Testing of ALTER TABLE ... [DEFAULT] CHARACTER SET
      mysql-test/r/case.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/cast.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/create.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/ctype_collate.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/ctype_latin1_de.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/ctype_many.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/ctype_mb.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/ctype_recoding.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/ctype_ucs.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/derived.result:
        Use STRAIGHT_JOIN to make join order predictable
      mysql-test/r/fulltext.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/func_str.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/func_system.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/gis-rtree.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/innodb.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/key_cache.result:
        Update test for new key cache syntax.
        Added more tests
      mysql-test/r/merge.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/preload.result:
        New syntax
      mysql-test/r/show_check.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/sql_mode.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/subselect.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/type_blob.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/type_enum.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/type_nchar.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/type_set.result:
        Update result for DEFAULT CHARSET...
      mysql-test/r/union.result:
        Use STRAIGHT_JOIN to make join order predictable
      mysql-test/t/alter_table.test:
        Testing of ALTER TABLE ... [DEFAULT] CHARACTER SET
      mysql-test/t/ctype_many.test:
        Update result for DEFAULT CHARSET...
      mysql-test/t/derived.test:
        Use STRAIGHT_JOIN to make join order predictable
      mysql-test/t/isam.test:
        Use disable warnings for test loop
      mysql-test/t/join.test:
        Update test now when we only support 61 tables in join
      mysql-test/t/key_cache.test:
        Update test for new key cache syntax.
        Added more tests
      mysql-test/t/preload.test:
        Update for new syntax
      mysql-test/t/union.test:
        Use STRAIGHT_JOIN to make join order predictable
      mysys/Makefile.am:
        Added mf_keycaches.c
      mysys/hash.c:
        TRUE -> 1
      mysys/mf_keycache.c:
        Removed compiler warnings
        Striped end space
        Fixed indentation and improved function comments
        TRUE -> 1
        Changed parameters to end_key_cache() to make it easer to use
        Fixed bug when using key blocks size > 1024 bytes (First part of index file could be overwritten with wrong data)
        Split function flush_key_blocks into two functions to not get mutex used twice when called from flush_all_key_blocks()
      mysys/my_bitmap.c:
        More debugging
        Safe bitmap_free()
        Fixed indentation
      mysys/my_getopt.c:
        Ensure that we initialize option->value, option->max_value and value from GET_ASK_ADDR
      mysys/my_thr_init.c:
        Remove not used mutex THR_LOCK_keycache
      mysys/typelib.c:
        Fixed function comments
      sql-common/client.c:
        CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
        Fixed the multi_result flag is set also on SELECT;s
      sql/ha_myisam.cc:
        Fixed multiple key_cache handling
        (Now done on MyISAM level)
      sql/ha_myisammrg.cc:
        Fixed multiple key_cache handling
        (Now done on MyISAM level)
      sql/handler.cc:
        New multi key cache handling
      sql/handler.h:
        New multi key cache handling
        Added support for default character set
      sql/item.h:
        Added function cleanup() (Needed for prepared statements / cursors)
      sql/item_cmpfunc.h:
        Added cleanup function
      sql/item_func.cc:
        Indentation cleanup
      sql/mysql_priv.h:
        New multi-key-cache functions
        Removed LOCK_assign
      sql/mysqld.cc:
        New multi-key-cache handling
        Fixed that variable have_compress is set correctly
      sql/protocol.cc:
        SELECT didn't work reliable in multi-statements
      sql/set_var.cc:
        Support for new key cache variables
      sql/set_var.h:
        Support for new key cache variables
      sql/share/czech/errmsg.txt:
        New error messages
      sql/share/danish/errmsg.txt:
        New error messages
      sql/share/dutch/errmsg.txt:
        New error messages
      sql/share/english/errmsg.txt:
        New error messages
      sql/share/estonian/errmsg.txt:
        New error messages
      sql/share/french/errmsg.txt:
        New error messages
      sql/share/german/errmsg.txt:
        New error messages
      sql/share/greek/errmsg.txt:
        New error messages
      sql/share/hungarian/errmsg.txt:
        New error messages
      sql/share/italian/errmsg.txt:
        New error messages
      sql/share/japanese/errmsg.txt:
        New error messages
      sql/share/korean/errmsg.txt:
        New error messages
      sql/share/norwegian-ny/errmsg.txt:
        New error messages
      sql/share/norwegian/errmsg.txt:
        New error messages
      sql/share/polish/errmsg.txt:
        New error messages
      sql/share/portuguese/errmsg.txt:
        New error messages
      sql/share/romanian/errmsg.txt:
        New error messages
      sql/share/russian/errmsg.txt:
        New error messages
      sql/share/serbian/errmsg.txt:
        New error messages
      sql/share/slovak/errmsg.txt:
        New error messages
      sql/share/spanish/errmsg.txt:
        New error messages
      sql/share/swedish/errmsg.txt:
        New error messages
      sql/share/ukrainian/errmsg.txt:
        New error messages
      sql/sql_base.cc:
        Removed all key_cache handling (this is now done on MyISAM level)
        Change table_charset -> default_table_charset
      sql/sql_db.cc:
        table_charset -> default_table_charset
      sql/sql_delete.cc:
        table_charset -> default_table_charset
      sql/sql_lex.cc:
        CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
      sql/sql_lex.h:
        New option to store a name and length
      sql/sql_parse.cc:
        Support for mysql_set_server_option()
        Reset "default" keycache status variables in 'FLUSH STATUS' (Need to be improved later)
      sql/sql_show.cc:
        Add DEFAULT before CHARSET (for table character sets)
        Fetch key cache variables from 'sql_key_cache'
      sql/sql_table.cc:
        table_charset -> default_table_charset
        New multi-key-cache handling
      sql/sql_test.cc:
        Write information from all key caches
      sql/sql_yacc.yy:
        Changed syntax for CACHE INDEX ...
        Force user to use DEFAULT before database/table level character sets
      sql/structs.h:
        Added SHOW_KEY_CACHE_LONG (to get values from sql_key_cache)
      sql/table.cc:
        table_charset -> default_table_charset
      sql/table.h:
        New key cache handling (this is now done in mysys/mf_keycaches.c)
      sql/unireg.h:
        A
      e72124c4
  33. 17 Nov, 2003 1 commit
    • unknown's avatar
      IGNORE option was added for DELETE statement (WL#1334) · 900d00c8
      unknown authored
      mysql-test/r/delete.result:
        test of new IGNORE option for DELETE
      mysql-test/r/subselect.result:
        test moved to delete.test
      mysql-test/t/delete.test:
        test of new IGNORE option for DELETE
      mysql-test/t/subselect.test:
        test moved to delete.test
      sql/sql_delete.cc:
        set errors ignoring for simple delete command
      sql/sql_yacc.yy:
        add IGNORE option for DELETE command
      900d00c8
  34. 11 Oct, 2003 2 commits
    • unknown's avatar
      Add new user variables for tuning memory usage: · 74ea4594
      unknown authored
      query_alloc_block_size, query_prealloc_size, range_alloc_block_size,transaction_alloc_block_size and transaction_prealloc_size
      Add more checks for "out of memory" detection in range optimization
      
      
      configure.in:
        Added detection of mallinfo
      mysql-test/r/variables.result:
        Test of new variables
      mysql-test/t/variables.test:
        Test of new variables
      sql/ha_berkeley.cc:
        Use init_sql_alloc instead of init_alloc_root for better OOM detection
      sql/log_event.cc:
        Add new user variables for tuning memory usage
      sql/mysql_priv.h:
        Add new user variables for tuning memory usage
      sql/mysqld.cc:
        Add new user variables for tuning memory usage
      sql/opt_ft.cc:
        Add new user variables for tuning memory usage
      sql/opt_ft.h:
        Add new user variables for tuning memory usage
      sql/opt_range.cc:
        Add new user variables for tuning memory usage
        Add more checks for out of memory conditions
      sql/opt_range.h:
        Add new user variables for tuning memory usage
      sql/set_var.cc:
        Add new user variables for tuning memory usage
      sql/sql_acl.cc:
        Add new user variables for tuning memory usage
      sql/sql_class.h:
        Add new user variables for tuning memory usage
      sql/sql_delete.cc:
        Add new user variables for tuning memory usage
      sql/sql_parse.cc:
        Add new user variables for tuning memory usage
      sql/sql_select.cc:
        Add new user variables for tuning memory usage
      sql/sql_test.cc:
        Add information about memory useage if system supports mallinfo()
      sql/sql_udf.cc:
        Add new user variables for tuning memory usage
      sql/sql_update.cc:
        Add new user variables for tuning memory usage
      sql/table.cc:
        Add new user variables for tuning memory usage
      74ea4594
    • unknown's avatar
      key_map with more that 64 bits width · 2e1115ed
      unknown authored
      sql/field.cc:
        typedef Bitmap<64> key_map
        all tests pass
      sql/ha_berkeley.cc:
        typedef Bitmap<64> key_map
        all tests pass
      sql/ha_berkeley.h:
        typedef Bitmap<64> key_map
        all tests pass
      sql/item.cc:
        typedef Bitmap<64> key_map
        all tests pass
      sql/item_func.cc:
        typedef Bitmap<64> key_map
        all tests pass
      sql/opt_sum.cc:
        typedef Bitmap<64> key_map
        all tests pass
      sql/sql_delete.cc:
        typedef Bitmap<64> key_map
        all tests pass
      sql/sql_show.cc:
        typedef Bitmap<64> key_map
        all tests pass
      sql/sql_test.cc:
        typedef Bitmap<64> key_map
        all tests pass
      sql/sql_update.cc:
        typedef Bitmap<64> key_map
        all tests pass
      include/my_bitmap.h:
        more bitmap methods
      mysys/my_bitmap.c:
        more bitmap methods
      sql/field.h:
        init bitmaps
      sql/ha_innodb.h:
        optimization
      sql/ha_isam.cc:
        optimization
      sql/ha_myisam.cc:
        optimization
      sql/ha_myisammrg.cc:
        optimization
      sql/handler.h:
        optimization
      sql/mysqld.cc:
        bitmap_init() interface changed
      sql/opt_range.cc:
        optimization
      sql/opt_range.h:
        optimization
      sql/slave.cc:
        bitmap_init() interface changed
      sql/sql_base.cc:
        optimization
      sql/sql_select.cc:
        init bitmaps
        using const for bitmaps whenever possible
      sql/sql_select.h:
        cleanup
      sql/table.cc:
        always init bitmaps
      BitKeeper/etc/ignore:
        Added sql/udf_example.so to the ignore list
      sql/mysql_priv.h:
        use Bitmap over ulonglong by default
      2e1115ed
  35. 16 Aug, 2003 1 commit
    • unknown's avatar
      Code cleanup · 3808546d
      unknown authored
      sql/item.cc:
        As far as now transformer called after setup_wild() it is impossible to have '*' Item
      sql/item.h:
        As far as now transformer called after setup_wild() it is impossible to have '*' Item
      sql/item_subselect.cc:
        replaced Item_ref_on_list_position (which need erly ref_array initialisation)
      sql/mysql_priv.h:
        setup_ref_array moved to st_select_lex class
      sql/sql_delete.cc:
        setup_ref_array moved to st_select_lex class
      sql/sql_derived.cc:
        setup_ref_array moved to st_select_lex class
      sql/sql_lex.cc:
        removed double initialisation
        select_n_having_items moved to any query initializations, because it used in setup_ref_array method
        setup_ref_array moved to st_select_lex class
      sql/sql_lex.h:
        setup_ref_array moved to st_select_lex class
      sql/sql_select.cc:
        setup_ref_array moved to st_select_lex class
      sql/sql_table.cc:
        setup_ref_array moved to st_select_lex class
      sql/sql_union.cc:
        setup_ref_array moved to st_select_lex class
      sql/sql_update.cc:
        setup_ref_array moved to st_select_lex class
      3808546d