1. 25 May, 2005 7 commits
    • 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 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
      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
  2. 24 May, 2005 16 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 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
      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
      ha_archive.cc: · 1ac18ce2
      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"
      1ac18ce2
    • unknown's avatar
      Merge · 579c84f1
      unknown authored
      
      mysql-test/r/lock.result:
        Auto merged
      mysql-test/r/rpl_log.result:
        Auto merged
      mysql-test/t/lock.test:
        Auto merged
      mysql-test/r/rpl_rotate_logs.result:
        SCCS merged
      sql/sql_parse.cc:
        SCCS merged
      sql/sql_repl.cc:
        SCCS merged
      579c84f1
    • unknown's avatar
      Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-4.1 · 7689c886
      unknown authored
      into xiphis.org:/usr/home/antony/work2/p3-bug7241.5
      
      7689c886
    • unknown's avatar
      Add comments · 1f20ec78
      unknown authored
      1f20ec78
    • unknown's avatar
      8f1883a4
    • unknown's avatar
      Bug#7241 - Invalid response when DELETE .. USING and LOCK TABLES used. · 5f554d93
      unknown authored
        Only acquire necessary write lock for multi-delete
      
      
      mysql-test/r/lock.result:
        Test for Bug#7241
      mysql-test/t/lock.test:
        Test for Bug#7241
      sql/sql_parse.cc:
        Bug#7241
          Don't acquire write lock on all tables.
          Make sure to set lock_type on real table_list
      5f554d93
    • unknown's avatar
      Merge gluh@gluh:/home/gluh/release/mysql-5.0-build · 9281212c
      unknown authored
      into mysql.com:/home/gluh/MySQL/Merge/mysql-5.0
      
      9281212c
    • unknown's avatar
      7897158b
    • unknown's avatar
      Merge pmartin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 1daf6a23
      unknown authored
      into mysql.com:/home/pem/work/mysql-5.0
      
      1daf6a23
  3. 23 May, 2005 17 commits
    • unknown's avatar
    • unknown's avatar
      Merge bk-internal.mysql.com:/data0/bk/mysql-4.1 · 0f70d3f0
      unknown authored
      into bk-internal.mysql.com:/data0/bk/mysql-5.0
      
      
      BitKeeper/etc/gone:
        auto-union
      BitKeeper/etc/logging_ok:
        auto-union
      mysql-test/r/lowercase_table.result:
        Auto merged
      mysql-test/t/lowercase_table.test:
        Auto merged
      mysys/my_open.c:
        Auto merged
      0f70d3f0
    • unknown's avatar
      marking the file gone again to hopefully get the tree on its feet · 8c95f6cf
      unknown authored
      
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      8c95f6cf
    • unknown's avatar
      Fixed on BUG#6048: Stored procedure causes operating system reboot · c6f2053a
      unknown authored
        Memory leak in locally evalutated expressions during SP execution fixed by
        reusing allocated item slots when possible.
        Note: No test case added, since the test is a stress test that tries to make
        the machine to run out of memory.
        Second attempt, now tested with debug build, valgrind build, max (optimized)
        build, with and without --debug, --vagrind and --ps-protocol.
        Errors in trigger and view test with --debug in debug build where present
        before this patch, and likewise for valgrind warnings for view test in
        valgrind build with --ps-protocol.
      
      
      sql/item.cc:
        Init rsize in Item (for SP item reusal).
      sql/item.h:
        Addes special new operator for reuse of Items, for SP internal use only.
      sql/sp_head.cc:
        Reuse items assigned internally in SPs when possible.
      sql/sp_rcontext.cc:
        Reuse items assigned internally in SPs when possible.
        Moved the local variable assignment here (from sp_head) to avoid
        duplicated code.
      sql/sp_rcontext.h:
        New arg to sp_rcontext::set_item_eval() (and some coding style).
      sql/sql_class.cc:
        Adjusted call to new set_item_eval().
      c6f2053a
    • unknown's avatar
      BUG# 9148 Denial of service · cccf60ee
      unknown authored
      fixups of test case and comment formatting
      
      
      BitKeeper/deleted/.del-reserved_win_names-master.opt~e56da049a7ce9a5b:
        ***MISSING TEXT***
      mysql-test/r/lowercase_table.result:
        added my test for bug #9148 to this test case
      mysql-test/t/lowercase_table.test:
        added my test for bug #9148 to this test case
      mysys/my_fopen.c:
        reformatted comments
      mysys/my_open.c:
        reformatted comments
      cccf60ee
    • unknown's avatar
      mysqld.dsp: · d3cf1b2b
      unknown authored
        Added BLACKHOLE and FEDERATED storage engines for max builds
        Some preparations for including yaSSL
      ha_federated.cc:
        Use local seach path for "mysql_priv.h"
      
      
      sql/ha_federated.cc:
        Use local seach path for "mysql_priv.h"
      VC++Files/sql/mysqld.dsp:
        Added BLACKHOLE and FEDERATED storage engines for max builds
        Some preparations for including yaSSL
      d3cf1b2b
    • unknown's avatar
    • unknown's avatar
      A comment for view_prepare_mode. · 6b18a016
      unknown authored
      
      sql/sql_lex.h:
        A comment.
      6b18a016
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 21642c60
      unknown authored
      into neptunus.(none):/home/msvensson/mysql/mysql-5.0-tmp
      
      
      include/my_global.h:
        Auto merged
      ndb/src/cw/cpcd/Process.cpp:
        Auto merged
      strings/my_vsnprintf.c:
        Auto merged
      21642c60
    • unknown's avatar
      Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.0 · 66eb5fcc
      unknown authored
      into mdk10.(none):/home/reggie/bk/mysql-5.0
      
      66eb5fcc
    • unknown's avatar
      merged changes from 4.1 · e174a236
      unknown authored
      
      include/my_global.h:
        Auto merged
      ndb/src/cw/cpcd/Process.cpp:
        Auto merged
      ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp:
        Auto merged
      strings/my_vsnprintf.c:
        Auto merged
      e174a236
    • unknown's avatar
      BUG#10687 - Merge engine fails under Windows · f7be4503
      unknown authored
      This final cset is to fix a syntax problem in ha_myisammrg.cc where a / was left out of a format string.
      It also adds a check in has_path to avoid a possible redundant comparison.
      
      ha_myisammrg.cc:
        Replaced missing / in format string
      my_getwd.c:
        Added test to see if FN_LIBCHAR != '/' before doing comparison to avoid redundant comparison
      
      
      mysys/my_getwd.c:
        Added test to see if FN_LIBCHAR != '/' before doing comparison to avoid redundant comparison
      sql/ha_myisammrg.cc:
        Replaced missing / in format string
      f7be4503
    • unknown's avatar
      Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-4.1 · 876b872c
      unknown authored
      into mdk10.(none):/home/reggie/bk/mysql-4.1
      
      876b872c
    • unknown's avatar
      BUG# 10687: Merge engine fails under Windows · 6da55897
      unknown authored
      This cset is to roll out the cset applied earlier from Ingo.
      This bug has been fixed with a different cset.
      
      
      
      sql/ha_myisammrg.cc:
        removed the patch applied earlier
      strings/my_vsnprintf.c:
        removed the patch applied earlier.  The patch was to add %c ability.  
        Monty has already done this.
      6da55897
    • unknown's avatar
      Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0.6-build · 9f6ce171
      unknown authored
      into neptunus.(none):/home/msvensson/mysql/mysql-5.0-tmp
      
      
      VC++Files/mysys/mysys.dsp:
        Auto merged
      include/my_global.h:
        Auto merged
      myisam/rt_split.c:
        Auto merged
      sql/field_conv.cc:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      strings/my_vsnprintf.c:
        Auto merged
      9f6ce171
    • unknown's avatar
      Build fixes for icc, compile _without_ "-no-gnu" · f33e874c
      unknown authored
      
      include/my_global.h:
        icc does not define __ICC when emulating gcc. Use __INTEL_COMPILER to check for icc.
      ndb/src/cw/cpcd/Process.cpp:
        Remove rlimit64
      ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp:
        Remove dirent64
      f33e874c
    • unknown's avatar
      BUG# 10687: MERGE Engine fails on Windows · 5d46490f
      unknown authored
      This is a replacement for the original patch given by Ingo.  This one comes
      from Monty.
      The problem is that merge files now use unix style pathnames on all 
      platforms.  The merge file open code was not properly converting those
      pathnames back to non-unix when necessary.
      
      
      myisammrg/myrg_open.c:
        use fn_format to convert pathnames if the files in the merge file have a pathname
      mysys/my_getwd.c:
        add a test for '/' in the code that determines if a string inlucdes a pathname
      5d46490f