1. 26 May, 2005 13 commits
  2. 25 May, 2005 15 commits
    • unknown's avatar
      Merge mysql.com:/Users/kent/mysql/bk/mysql-5.0-build · 5752ecea
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-5.0
      
      
      myisammrg/myrg_open.c:
        Auto merged
      mysys/my_getwd.c:
        Auto merged
      sql/unireg.cc:
        Auto merged
      5752ecea
    • unknown's avatar
      Fix MERGE tables on Microsoft Windows. This a backport of the · 55301a10
      unknown authored
      fix from the main 5.0 tree. (Bug #10687)
      
      
      myisammrg/myrg_open.c:
        Call fn_format() if file has a path.
      mysys/my_getwd.c:
        Check for '/' even if it is not FN_LIBCHAR in has_path()
      55301a10
    • unknown's avatar
      Move function from header file to make it easier to debug · 865b8917
      unknown authored
      
      sql/item.cc:
        Move function to make it easier to debug
      sql/item.h:
        Move function to make them easier to debug
      865b8917
    • unknown's avatar
      Merge hasky:/my/mysql-build into mysql.com:/home/my/mysql-5.0 · 5ec889c7
      unknown authored
      
      sql/sql_lex.h:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      5ec889c7
    • unknown's avatar
      Merge mysql.com:/data0/mysqldev/my/mysql-5.0-build · d8dbb838
      unknown authored
      into mysql.com:/data0/mysqldev/tomas/mysql-5.0-build
      
      
      d8dbb838
    • unknown's avatar
      Manual merge. · 7e5651ca
      unknown authored
      7e5651ca
    • unknown's avatar
      2286913e
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · e38f06f7
      unknown authored
      into mysql.com:/home/my/mysql-5.0
      
      
      sql/sql_base.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      e38f06f7
    • unknown's avatar
      Fix that we can read tables with the 'older' decimal format used in 5.0.3 & 5.0.4 · 1834f889
      unknown authored
      We will however give a warning when opening such a table that users should use ALTER TABLE ... FORCE to fix
      the table. In future release we will fix that REPAIR TABLE will be able to handle this case
      
      
      sql/sql_lex.h:
        Support for ALTER TABLE ... FORCE
      sql/sql_table.cc:
        CHECK TABLE now gives a note if table->s->crashed was set
      sql/sql_yacc.yy:
        Support for ALTER TABLE ... FORCE
      sql/table.cc:
        
        Fix that we can read tables with the 'older' decimal format used in 5.0.3 & 5.0.4
        (Now we store display length in the .frm table while we previously stored precision)
      sql/table.h:
        Store in TABLE_SHARE version number of MySQL where table was created (or checked)
      1834f889
    • unknown's avatar
      Cleanup's during review · c6283dbb
      unknown authored
      Added ASSERT() to detect wrongly packed fields
      
      
      sql/field.h:
        Fixed comments to right format
      sql/opt_range.cc:
        Merged code
      sql/sql_base.cc:
        Fixed indentation
      sql/sql_insert.cc:
        Fixed comments to right format
      sql/sql_select.cc:
        Simplify code
      sql/unireg.cc:
        Simply code for calculating key_buff_length
        Added ASSERT() to detect wrongly packed fields
      c6283dbb
    • unknown's avatar
      Added a missing "make clean" to the RPM "spec" file which had caused the... · ce11270f
      unknown authored
      Added a missing "make clean" to the RPM "spec" file which had caused the original 4.1.12 RPMs to be broken.
      (bug#10674, bug#10681)
      
      
      support-files/mysql.spec.sh:
        Added a missing "make clean" which had caused the original 4.1.12 RPMs to be broken.
        (bug#10674, bug#10681)
      ce11270f
    • unknown's avatar
      WL#2286 - Compile MySQL w/YASSL support · f0f9b595
      unknown authored
      Merge with latest yaSSL, fix compilation error for SSE2 processors.
      
      
      extra/yassl/include/yassl_int.hpp:
        Merge with latest yaSSL.
      extra/yassl/src/log.cpp:
        Merge with latest yaSSL.
      extra/yassl/src/yassl_int.cpp:
        Merge with latest yaSSL.
      extra/yassl/taocrypt/include/integer.hpp:
        Merge with latest yaSSL.
      extra/yassl/taocrypt/src/integer.cpp:
        Fix compilation error for SSE2 processors.
      f0f9b595
    • unknown's avatar
      srv0start.c: · d9d47c6a
      unknown authored
        innobase_shutdown_for_mysql(): Do very fast shutdown
        only if srv_fast_shutdown==2, not if srv_fast_shutdown!=0
        (Bug #9673)
      
      
      innobase/srv/srv0start.c:
        innobase_shutdown_for_mysql(): Do very fast shutdown
        only if srv_fast_shutdown==2, not if srv_fast_shutdown!=0
        (Bug #9673)
      d9d47c6a
    • unknown's avatar
      BUG#10831 ndb mgmd LogDestination maxfiles does not rotate logs properly · 605f7061
      unknown authored
      
      ndb/src/common/util/File.cpp:
        my_stat returns NULL on failure, not non-zero.
        
        i.e. exactly the opposite of stat(2).
        
        providing confusion for unix programmers, who expect errors to be non-zero.
        
        Clean up File_class::exists(char*) to use the my_stat interface properly.
      605f7061
    • unknown's avatar
      BUG#10796 Incorrect check-cpu result for ppc linux gcc · 5b77d9b8
      unknown authored
      
      BUILD/check-cpu:
        Add no_march variable to indicate that this architecture doesn't support the -march flag to GCC
      5b77d9b8
  3. 24 May, 2005 12 commits
    • unknown's avatar
      Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0 · 9ae42419
      unknown authored
      into xiphis.org:/usr/home/antony/work2/p3-bug7241.6
      
      
      9ae42419
    • unknown's avatar
      Fix after merge · e35bd059
      unknown authored
      e35bd059
    • unknown's avatar
      Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1 · e07f6ebf
      unknown authored
      into sinisa.nasamreza.org:/mnt/work/mysql-4.1
      
      
      e07f6ebf
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 424e4ee1
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-5.0-bg5860
      
      
      424e4ee1
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0 · 3c50d954
      unknown authored
      into mysql.com:/home/svoj/devel/mysql/yassl-mysql-5.0
      
      
      3c50d954
    • unknown's avatar
      Upgrade yaSSL to 0.9.9. · 1ae7e564
      unknown authored
      1ae7e564
    • unknown's avatar
      Merge serg@bk-internal.mysql.com:/home/bk/mysql-4.1/ · d839f3a9
      unknown authored
      into serg.mylan:/usr/home/serg/Abk/mysql-4.1
      
      
      d839f3a9
    • unknown's avatar
      simplifying new/my_arg_new wrapping · d3f7ec30
      unknown authored
      d3f7ec30
    • unknown's avatar
      Manual merge of patch fixing several trigger related bugs with main tree. · 896786ea
      unknown authored
      
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      sql/sql_insert.cc:
        Manual merge
      sql/sql_update.cc:
        Manual merge
      896786ea
    • unknown's avatar
      Fix for bugs: · 1fa7c69d
      unknown authored
       #5860 "Multi-table UPDATE does not activate update triggers"
       #6812 "Triggers are not activated for INSERT ... SELECT"
       #8755 "Trigger is not activated by LOAD DATA".
      This patch also implements proper handling of triggers for special forms
      of insert like REPLACE or INSERT ... ON DUPLICATE KEY UPDATE. 
      Also now we don't call after trigger in case when we have failed to
      inserted/update or delete row. Trigger failure should stop statement
      execution.
      
      I have not properly tested handling of errors which happen inside of
      triggers in this patch, since it is simplier to do this once we will be
      able to access tables from triggers.
      
      
      mysql-test/r/trigger.result:
        Added tests for triggers behavior for various non-standard forms of
        INSERT such as REPLACE and INSERT ... ON DUPLICATE KEY UPDATE.
        Also added tests for bugs #5860 "Multi-table UPDATE does not activate
        update triggers", #6812 "Triggers are not activated for INSERT ... SELECT"
        and #8755 "Trigger is not activated by LOAD DATA".
      mysql-test/t/trigger.test:
        Added tests for triggers behavior for various non-standard forms of
        INSERT such as REPLACE and INSERT ... ON DUPLICATE KEY UPDATE.
        Also added tests for bugs #5860 "Multi-table UPDATE does not activate
        update triggers", #6812 "Triggers are not activated for INSERT ... SELECT"
        and #8755 "Trigger is not activated by LOAD DATA".
      sql/item.cc:
        Since it turned out that at trigger loading time we can't say in which
        buffer TABLE::record[0] or record[1] old version of row will be stored
        we have to change our approach to binding of Item_trigger_field to
        Field instances.
        Now after trigger parsing (in Item_trigger_field::setup_table()) we only
        find index of proper Field in the TABLE::field array. Then before trigger
        is invoked we set Table_triggers_list::old_field/new_field so they point
        to arrays holding Field instances bound to buffers with proper row
        versions. And as last step in Item_trigger_field::fix_fields() we get
        pointer to Field from those arrays using saved field index.
        
        Item_trigger_field::setup_field()/fix_fields() were changed to implement
        this approach.
      sql/item.h:
        Since it turned out that at trigger loading time we can't say in which
        buffer TABLE::record[0] or record[1] old version of row will be stored
        we have to change our approach to binding of Item_trigger_field to
        Field instances.
        Now after trigger parsing (in Item_trigger_field::setup_table()) we only
        find index of proper Field in the TABLE::field array. Then before trigger
        is invoked we set Table_triggers_list::old_field/new_field so they point
        to arrays holding Field instances bound to buffers with proper row
        versions. And as last step in Item_trigger_field::fix_fields() we get
        pointer to Field from those arrays using saved field index.
        
        Item_trigger_field:
        - Added field_idx member to store index of Field object corresponding to
          this Item in TABLE::field array.
        - Added triggers member to be able to access to parent Table_trigger_list
          object from fix_fields() method.
        - setup_field() no longer needs to know for which type of event this
          trigger is, since it does not make decision Field for which buffer
          (record[0] or record[1] is appropriate for this Item_trigger_field)
      sql/mysql_priv.h:
        Added fill_record_n_invoke_before_triggers() methods. They are simple
        wrappers around fill_record() which invoke proper before trigger right
        after filling record with values.
      sql/sql_base.cc:
        Added fill_record_n_invoke_before_triggers() methods. They are simple
        wrappers around fill_record() which invoke proper before trigger right
        after filling record with values.
      sql/sql_delete.cc:
        mysql_delete():
          Now we stop statement execution if one of triggers failed, we also
          don't execute after delete trigger if we failed to delete row from
          the table (We also pass information about which buffer contains old
          version of row to process_triggers()).
        multi_delete::send_data()/do_deletes():
          Now we also invoke triggers in case of multi-delete.
      sql/sql_insert.cc:
        mysql_insert():
          Moved invocation of before triggers to fill_record_n_invoke_before_triggers()
          method. After triggers are now executed as part of write_record().
          (as nice side effect now we also stop statement execution if one of
          triggers fail).
        write_record():
          Invoke after insert trigger after performing insert. Also invoke proper
          triggers if insert is converted to update or conflicting row is deleted.
          Cleaned up error handling a bit - no sense to report error via
          handler::print_error if it was not generated by handler method and
          was reported before.
          Also now we will execute after trigger only if we really have written
          row to the table. 
        select_insert::send_data()/store_values():
          We should also execute INSERT triggers for INSERT ... SELECT statement.
      sql/sql_load.cc:
        read_fixed_length()/read_sep_field():
          We should execute INSERT triggers when processing LOAD DATA statement.
          Small cleanup in auto-increment related code. Also moved check for
          thd->killed which is used to abort LOAD DATA in case of problems
          in 'traditional' mode to better place..
      sql/sql_trigger.cc:
        Since it turned out that at trigger loading time we can't say in which
        buffer TABLE::record[0] or record[1] old version of row will be stored
        we have to change our approach to binding of Item_trigger_field to
        Field instances.
        Now after trigger parsing (in Item_trigger_field::setup_table()) we only
        find index of proper Field in the TABLE::field array. Then before trigger
        is invoked we set Table_triggers_list::old_field/new_field so they point
        to arrays holding Field instances bound to buffers with proper row
        versions. And as last step in Item_trigger_field::fix_fields() we get
        pointer to Field from those arrays using saved field index.
        
        Table_triggers_list methods were changed to implement this approach
        (see also comments for sql_trigger.h).
      sql/sql_trigger.h:
        Since it turned out that at trigger loading time we can't say in which
        buffer TABLE::record[0] or record[1] old version of row will be stored
        we have to change our approach to binding of Item_trigger_field to
        Field instances.
        Now after trigger parsing (in Item_trigger_field::setup_table()) we only
        find index of proper Field in the TABLE::field array. Then before trigger
        is invoked we set Table_triggers_list::old_field/new_field so they point
        to arrays holding Field instances bound to buffers with proper row
        versions. And as last step in Item_trigger_field::fix_fields() we get
        pointer to Field from those arrays using saved field index.
        
        Changed Table_triggers_list to implement this new approach:
        - Added record1_field member to store array of Field objects bound
          to TABLE::record[1] buffer (instead of existing old_field member)
        - Added new_field member and changed meaning of old_field member.
          During trigger execution they should point to arrays of Field objects
          bound to buffers holding new and old versions of row respectively.
        - Added 'table' member to be able to get access to TABLE instance
          (for which this trigger list object was created) from process_triggers()
          method.
        - Now process_triggers() method sets old_field and new_field members
          properly before executing triggers body (basing on new 
          old_row_is_record1 parameter value).
        - Renamed prepare_old_row_accessors_method() to prepare_record1_accessors()
        
        Also added has_before_update_triggers() method which allows to check
        whenever any before update triggers exist for table.
      sql/sql_update.cc:
        mysql_update():
          Now we invoke before triggers in fill_record_n_invoke_before_triggers()
          method. Also now we abort statement execution when one of triggers fail.
        safe_update_on_fly():
          When we are trying to understand if we can update first table in multi
          update on the fly we should take into account that BEFORE UPDATE
          trigger can change field values.
        multi_update::send_data()/do_updates()
          We should execute proper triggers when doing multi-update
          (in both cases when we do it on the fly and using temporary tables).
      1fa7c69d
    • unknown's avatar
      Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1 · 5e5eb0a6
      unknown authored
      into zim.(none):/home/brian/mysql/mysql-4.1
      
      
      5e5eb0a6
    • unknown's avatar
      ha_archive.cc: · cfb54ed5
      unknown authored
        Use local seach path for "mysql_priv.h"
      mysqld.dsp:
        Added the ARCHIVE storage engine to max
      ha_archive.h:
        VC6, but not VC7, needs a cast of byte[] to char* to make
        the compile select the right conversion function in String
      
      
      sql/examples/ha_archive.h:
        VC6, but not VC7, needs a cast of byte[] to char* to make
        the compile select the right conversion function in String
      VC++Files/sql/mysqld.dsp:
        Added the ARCHIVE storage engine to max
      sql/examples/ha_archive.cc:
        Use local seach path for "mysql_priv.h"
      cfb54ed5