1. 26 May, 2005 3 commits
    • unknown's avatar
      bug#10190 - ndb · 9077fea5
      unknown authored
        ndb_restore invalid handling of distribution keys when restoring meta data
        (also aligned printout with that of ndb_desc)
      
      
      ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        Don't call it a distribution key if all keys are set as distribution key
      ndb/tools/Makefile.am:
        Use same format as desc when printing meta in ndb_restore
      ndb/tools/restore/Restore.cpp:
        Use same format as desc when printing meta in ndb_restore
      9077fea5
    • unknown's avatar
      Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0 · 4330c39c
      unknown authored
      into mysql.com:/home/jonas/src/mysql-5.0
      
      4330c39c
    • unknown's avatar
      init_db.sql: · 0a6e71aa
      unknown authored
        Updated test data in system tables
      
      
      mysql-test/lib/init_db.sql:
        Updated test data in system tables
      0a6e71aa
  2. 25 May, 2005 13 commits
  3. 24 May, 2005 19 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 joreland@bk-internal.mysql.com:/home/bk/mysql-5.0 · dec98871
      unknown authored
      into mysql.com:/home/jonas/src/mysql-5.0
      
      
      BitKeeper/deleted/.del-ctype-cp932.c:
        Auto merged
      configure.in:
        Auto merged
      libmysqld/Makefile.am:
        Auto merged
      mysql-test/r/ctype_ucs.result:
        Auto merged
      mysql-test/t/ctype_ucs.test:
        Auto merged
      strings/ctype-big5.c:
        Auto merged
      strings/ctype-ucs2.c:
        Auto merged
      dec98871
    • 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 mysql.com:/home/jonas/src/mysql-4.1 · 56f4bee5
      unknown authored
      into mysql.com:/home/jonas/src/mysql-5.0
      
      
      mysql-test/t/ndb_restore.test:
        Auto merged
      56f4bee5
    • unknown's avatar
      ndb - mysqltestrun · 3047f531
      unknown authored
        run ndb_select_all --no-defaults
      
      
      mysql-test/t/ndb_restore.test:
        run ndb_select_all --no-defaults
      3047f531
    • 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
  4. 23 May, 2005 5 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