1. 26 May, 2005 14 commits
  2. 25 May, 2005 15 commits
    • unknown's avatar
      Merge mysql.com:/Users/kent/mysql/bk/mysql-5.0-build · bf05cb6e
      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
      bf05cb6e
    • unknown's avatar
      Fix MERGE tables on Microsoft Windows. This a backport of the · 1ae7ff4d
      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()
      1ae7ff4d
    • unknown's avatar
      Move function from header file to make it easier to debug · aafa2328
      unknown authored
      
      sql/item.cc:
        Move function to make it easier to debug
      sql/item.h:
        Move function to make them easier to debug
      aafa2328
    • unknown's avatar
      Merge hasky:/my/mysql-build into mysql.com:/home/my/mysql-5.0 · 51aa8cd0
      unknown authored
      
      sql/sql_lex.h:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      51aa8cd0
    • unknown's avatar
      Merge mysql.com:/data0/mysqldev/my/mysql-5.0-build · 4de0e470
      unknown authored
      into mysql.com:/data0/mysqldev/tomas/mysql-5.0-build
      
      4de0e470
    • unknown's avatar
      Manual merge. · 703d3508
      unknown authored
      703d3508
    • unknown's avatar
      b7ca6b34
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · f93d9cf9
      unknown authored
      into mysql.com:/home/my/mysql-5.0
      
      
      sql/sql_base.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      f93d9cf9
    • unknown's avatar
      Fix that we can read tables with the 'older' decimal format used in 5.0.3 & 5.0.4 · edaca67e
      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)
      edaca67e
    • unknown's avatar
      Cleanup's during review · 8c21fd51
      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
      8c21fd51
    • unknown's avatar
      Added a missing "make clean" to the RPM "spec" file which had caused the... · 5950a11a
      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)
      5950a11a
    • unknown's avatar
      WL#2286 - Compile MySQL w/YASSL support · 4ba71f13
      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.
      4ba71f13
    • unknown's avatar
      srv0start.c: · d5037e54
      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)
      d5037e54
    • unknown's avatar
      BUG#10831 ndb mgmd LogDestination maxfiles does not rotate logs properly · b7f005ce
      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.
      b7f005ce
    • unknown's avatar
      BUG#10796 Incorrect check-cpu result for ppc linux gcc · 431ef177
      unknown authored
      
      BUILD/check-cpu:
        Add no_march variable to indicate that this architecture doesn't support the -march flag to GCC
      431ef177
  3. 24 May, 2005 11 commits
    • unknown's avatar
      Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0 · 5f55424c
      unknown authored
      into xiphis.org:/usr/home/antony/work2/p3-bug7241.6
      
      5f55424c
    • unknown's avatar
      Fix after merge · 8b1c352a
      unknown authored
      8b1c352a
    • unknown's avatar
      Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1 · 5f9ab414
      unknown authored
      into sinisa.nasamreza.org:/mnt/work/mysql-4.1
      
      5f9ab414
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 5f4ad7f2
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-5.0-bg5860
      
      5f4ad7f2
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0 · 10d750e2
      unknown authored
      into mysql.com:/home/svoj/devel/mysql/yassl-mysql-5.0
      
      10d750e2
    • unknown's avatar
      Upgrade yaSSL to 0.9.9. · c73e068e
      unknown authored
      c73e068e
    • unknown's avatar
      Merge serg@bk-internal.mysql.com:/home/bk/mysql-4.1/ · ac3b6e11
      unknown authored
      into serg.mylan:/usr/home/serg/Abk/mysql-4.1
      
      ac3b6e11
    • unknown's avatar
      simplifying new/my_arg_new wrapping · 84554063
      unknown authored
      84554063
    • unknown's avatar
      Manual merge of patch fixing several trigger related bugs with main tree. · 4a40f946
      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
      4a40f946
    • unknown's avatar
      Fix for bugs: · efc2479d
      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).
      efc2479d
    • unknown's avatar
      Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1 · e0801def
      unknown authored
      into zim.(none):/home/brian/mysql/mysql-4.1
      
      e0801def