Commit graph

473 commits

Author SHA1 Message Date
unknown
c6283dbba9 Cleanup's during review
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
2005-05-25 18:33:32 +03:00
unknown
896786eadd Manual merge of patch fixing several trigger related bugs with main tree.
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
2005-05-24 22:35:41 +04:00
unknown
1fa7c69d31 Fix for bugs:
#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).
2005-05-24 22:19:33 +04:00
unknown
3e2988d00f Fixes to merge from 4.1
client/mysqldump.c:
  Temporarily disable unused (and broken) code.
mysql-test/r/group_min_max.result:
  Update results
mysql-test/r/mysqldump.result:
  Update results
mysql-test/r/subselect.result:
  Update results
mysql-test/t/group_min_max.test:
  Ignore number of rows in output of most explain results
sql/sql_insert.cc:
  Fix reference to max_unique_length
2005-05-18 15:40:34 -07:00
unknown
2de8a4bc8c Resolve merge from 4.1
mysql-test/r/grant_cache.result:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/t/grant_cache.test:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
sql/ha_myisammrg.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/handler.h:
  Resolve merge
sql/table.cc:
  Resolve merge
2005-05-18 13:54:36 -07:00
unknown
0461b482cb Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
After review version.
Added a condition for MERGE tables. These do not have unique
indexes. But every key could be a unique key on the underlying
MyISAM table. So get the maximum key length for MERGE tables
instead of the maximum unique key length. This is used for
buffer allocation in write_record().


mysql-test/r/merge.result:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  The test result.
mysql-test/t/merge.test:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  The test case does not in all cases show the problem
  without the bugfix. The improper memory allocation
  might get through undetected in many cases.
sql/ha_myisammrg.h:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  Set a table_flag for the MERGE engine telling that any index
  might be unique without being specified as such.
sql/handler.h:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  Added a new table_flag telling that any index
  might be unique without being specified as such.
sql/sql_insert.cc:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  Changed the freeing of the memory to be symmetric to its
  allocation (my_safe_alloc -> my_safe_afree).
  This is not directly related to the bug.
sql/table.cc:
  Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
  Added a condition for MERGE tables. These do not have unique
  indexes. But every key could be a unique key on the underlying
  MyISAM table. So get the maximum key length for MERGE tables
  instead of the maximum unique key length. This is used for
  buffer allocation in write_record().
2005-05-18 19:40:39 +02:00
unknown
c0dca5f45b Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/ram/work/5.0.b6267


mysql-test/r/system_mysql_db.result:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2005-05-18 12:41:36 +05:00
unknown
c07f07c3e6 a fix (bug #6267: ENUM ... NOT NULL w/o default treated differently than other data types).
the behavior of enum changed to be consistent.


mysql-test/r/system_mysql_db.result:
  a fix (bug #6267: ENUM ... NOT NULL w/o default treated differently than other data types).
mysql-test/r/type_enum.result:
  a fix (bug #6267: ENUM ... NOT NULL w/o default treated differently than other data types).
mysql-test/r/type_ranges.result:
  a fix (bug #6267: ENUM ... NOT NULL w/o default treated differently than other data types).
sql/sql_insert.cc:
  a fix (bug #6267: ENUM ... NOT NULL w/o default treated differently than other data types).
  Don't issue warnings for enum fields.
sql/sql_parse.cc:
  a fix (bug #6267: ENUM ... NOT NULL w/o default treated differently than other data types).
  set NO_DEFAULT_VALUE_FLAG flag for enum fields as well.
2005-05-13 16:44:14 +05:00
unknown
623444963e Manual merge
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
2005-05-10 16:41:47 -07:00
unknown
e02416c53c Many files:
Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
view.test:
  Added test case for bug #8528.
view.result:
  Added test case for bug #8528. Fixed other test cases.


mysql-test/r/view.result:
  Added test case for bug #8528. Fixed other test cases.
mysql-test/t/view.test:
  Added test case for bug #8528.
sql/sql_base.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/sql_delete.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/sql_insert.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/sql_parse.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/sql_prepare.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/sql_select.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/sql_update.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/sql_view.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/table.cc:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
sql/table.h:
  Fixed bug #8528.
  Representation for single-table views was made similar to
  representation for multi-table views.
2005-05-10 16:31:13 -07:00
unknown
4989274681 Merge
BitKeeper/etc/logging_ok:
  auto-union
mysql-test/r/create.result:
  Auto merged
mysql-test/r/insert_update.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_yacc.yy:
  SCCS merged
2005-05-07 16:50:22 +01:00
unknown
bb42494438 Bug#9725 - "disapearing query/hang" and "unknown error" with "on duplicate key update"
INSERT IGNORE...UPDATE causes break in protocol or unknown error message.
  Fix so that protocol doesn't break by properly ignoring dups.


mysql-test/r/insert_update.result:
  Test for Bug#9725
mysql-test/t/insert_update.test:
  Test for Bug#9725
sql/sql_insert.cc:
  Ignore the failure in update_row when IGNORE is set.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-05-07 13:31:37 +01:00
unknown
a6acc4462c Merge with 4.1
BitKeeper/etc/logging_ok:
  auto-union
configure.in:
  Auto merged
include/config-win.h:
  Auto merged
include/my_global.h:
  Auto merged
mysql-test/r/drop.result:
  Auto merged
mysys/default.c:
  Auto merged
mysys/mf_keycache.c:
  Auto merged
sql/field.h:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
  Auto merged
mysql-test/r/cast.result:
  Merge
mysql-test/t/cast.test:
  Merge
sql/sql_insert.cc:
  Merge
sql/sql_select.cc:
  Merge
2005-04-30 09:46:08 +03:00
unknown
df0a4ed64e Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/my/mysql-4.1


sql/sql_insert.cc:
  Auto merged
2005-04-28 00:41:39 +03:00
unknown
2cd93843bf Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
After merge fix.
2005-04-27 22:58:11 +02:00
unknown
ace2de52ae Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Merge from 4.1


configure.in:
  Auto merged
BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003:
  Auto merged
sql/sql_insert.cc:
  Auto merged
2005-04-27 21:02:38 +02:00
unknown
3238612840 Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
After merge fix.
2005-04-27 20:54:19 +02:00
unknown
f63c8f53b0 Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Added protection against global read lock while creating and
initializing a delayed insert handler.
Allowed to ignore a global read lock when locking the table
inside the delayed insert handler.
Added some minor improvements.


sql/lock.cc:
  Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
  Changed mysql_lock_tables() to allow for ignoring global read lock.
  Added functions to set/unset protection against global read lock.
sql/mysql_priv.h:
  Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
  Changed existing and added new function declarations.
sql/sql_insert.cc:
  Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
  Added and extended some comments.
  Added a protection against global read lock while a handler is
  created and initialized.
  Moved the unlock of the delayed insert object past its last usage
  in delayed_get_table().
  Changed the table locking in handle_delayed_insert() so that it
  does not wait for global read lock.
2005-04-27 12:40:37 +02:00
unknown
bf17c826de Cleanups during review
mysys/default.c:
  Cleanup:
  - Just test once for recursion level
  - Don't test explicitely for \r or \n as my_isspace() already does that
sql/sql_insert.cc:
  Fix argument
sql/sql_select.cc:
  Fixed indentation
  added comment
2005-04-26 23:24:59 +03:00
unknown
ac6d9b2e50 Bug#7806 - insert on duplicate key and auto-update of timestamp
Merged fix for bugfix to 5.0.


sql/table.h:
  Auto merged
2005-04-22 17:13:18 +02:00
unknown
3431b2179f Bug#7806 - insert on duplicate key and auto-update of timestamp
A fix of the original patch.
Correctly clear a bit from an enum value.
2005-04-22 12:30:09 +02:00
unknown
7941c9af51 C99 Portability fix 2005-04-21 21:47:58 +02:00
unknown
264cf5c509 C99 Portability fix 2005-04-21 18:38:34 +01:00
unknown
e0d8dde3de After merge fix. 2005-04-21 10:29:05 +02:00
unknown
ecb51a667e Hand merge, which needs fixes.
mysql-test/r/type_timestamp.result:
  Auto merged
mysql-test/t/type_timestamp.test:
  Auto merged
sql/table.h:
  Auto merged
ndb/test/ndbapi/Makefile.am:
  Using local 5.0 version.
sql/mysql_priv.h:
  Merged.
sql/sql_insert.cc:
  Merge needs fixes.
2005-04-20 15:50:29 +02:00
unknown
3be2d4897e Bug#7806 - insert on duplicate key and auto-update of timestamp
Modified the check for the timestamp field so that the flags for
the automatic for inserts and updates are cleared independently.


mysql-test/r/type_timestamp.result:
  Bug#7806 - insert on duplicate key and auto-update of timestamp
  The test result.
mysql-test/t/type_timestamp.test:
  Bug#7806 - insert on duplicate key and auto-update of timestamp
  The test case.
sql/mysql_priv.h:
  Bug#7806 - insert on duplicate key and auto-update of timestamp
  Made check_insert_fields() static. It is used only in sql_insert.cc.
sql/sql_insert.cc:
  Bug#7806 - insert on duplicate key and auto-update of timestamp
  Modified the check of the insert fields so that an explicit
  assignment of the timestamp field does only disable the automatic
  for inserts and retains the automatic for updates.
  Added a check if the update fields contain the timestamp field.
  In this case, the automatic on update is disabled, but not the
  automatic on insert. This is called from mysql_prepare_insert().
sql/table.h:
  Bug#7806 - insert on duplicate key and auto-update of timestamp
  Extended a comment to warn about usage of enum timestamp_auto_set_type.
2005-04-19 15:12:32 +02:00
unknown
5cdec5d6ba Merge
mysql-test/r/create.result:
  Auto merged
mysql-test/r/ctype_latin1_de.result:
  Auto merged
mysql-test/r/grant.result:
  Auto merged
mysql-test/r/grant2.result:
  Auto merged
mysql-test/r/limit.result:
  Auto merged
mysql-test/r/order_by.result:
  Auto merged
mysql-test/r/rpl000001.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/r/strict.result:
  Auto merged
mysql-test/r/type_blob.result:
  Auto merged
mysql-test/r/type_ranges.result:
  Auto merged
mysql-test/r/warnings.result:
  Auto merged
mysql-test/t/ctype_latin1_de.test:
  Auto merged
mysql-test/t/limit.test:
  Auto merged
mysql-test/t/order_by.test:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/type_blob.test:
  Auto merged
mysql-test/t/type_ranges.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
mysql-test/t/strict.test:
  SCCS merged
2005-04-05 19:45:34 -07:00
unknown
892a6138ff Eliminate warnings noticed by VC7. This includes fixing my_mmap() on
Windows to call CreateFileMapping() with correct arguments, and
propogating the introduction of query_id_t to everywhere query ids are
passed around. (Bug #8826)


libmysql/libmysql.c:
  Make implicit cast explicit
myisam/mi_open.c:
  Make cast of value to smaller data size explicit
myisam/mi_packrec.c:
  Cast file size (my_off_t) to size_t for mmap
mysys/my_mmap.c:
  Fix Windows version of my_mmap() to use the right parameters
  for call to CreateFileMapping()
sql/field.cc:
  Use temporary value of correct type
sql/field.h:
  Use query_id_t for query_id value
sql/ha_berkeley.cc:
  Fix flag check
sql/ha_innodb.h:
  Use query_id_t for query_id value
sql/handler.cc:
  Explain opt_using_transactions calculation, and add cast
sql/handler.h:
  Fix forward declaration of COND
sql/item.cc:
  Fix val_bool() tests of val_int() to avoid implicit cast
sql/item_cmpfunc.cc:
  Fix typo in switch label
sql/item_func.cc:
  Make implicit cast explicit
sql/item_strfunc.cc:
  Now that query_id is a query_id_t, need to cast it to a ulong here
sql/item_subselect.cc:
  Fix test of value
sql/log.cc:
  Cast my_off_t used for file size to size_t for memory allocation
  Also cast my_off_t when using it to calculate the number of pages for TC log
  Cast total_ha_2pc to uchar when saving it
sql/mysql_priv.h:
  Move up query_id definition so it can be used more widely
sql/opt_range.cc:
  Add unused delete operator to prevent compiler warning
sql/set_var.cc:
  Cast value for max_user_connections
sql/sql_cache.cc:
  Remove unused label
sql/sql_class.h:
  Fix query id values to be of type query_id_t
sql/sql_db.cc:
  Move variable only used inside #ifdef within the #ifdef
sql/sql_help.cc:
  Remove unused label
sql/sql_insert.cc:
  Use query_id_t for query id values
sql/sql_lex.h:
  Add unused delete operator to prevent compiler warning
sql/sql_select.cc:
  Remove unused variable
  Make cast of value explicit
sql/sql_select.h:
  Use query_id_t for query id values
sql/sql_table.cc:
  Make comparison to function pointer explicit
sql/sql_update.cc:
  Use query_id_t for query id values
sql/table.h:
  Use query_id_t for query id values
strings/ctype-simple.c:
  Add cast of long value to (char) in expression
strings/ctype-ucs2.c:
  Add cast of long value to (char) in expression
strings/ctype-utf8.c:
  Make cast to smaller size explicit
2005-03-18 16:12:25 -08:00
unknown
8c6a02dff2 Fix for sp.test failure in --ps-protocol mode (2nd attempt).
Now we should call open_and_lock_tables() even if table list is empty -
to cache stored routines used by query and open and lock tables required
for their execution.


sql/sql_insert.cc:
  Now we should call open_and_lock_tables() even if table list is empty -
  to cache stored routines used by query and open and lock tables required
  for their execution.
sql/sql_prepare.cc:
  Now we should call open_and_lock_tables() even if table list is empty -
  to cache stored routines used by query and open and lock tables required
  for their execution. Thus we have to move most of functionality from 
  select_like_statement_test() to separate function to be able to reuse it
  for multi-update processing (for which tables are open and locked in 
  mysql_multi_update_prepare() call).
2005-03-10 16:05:48 +03:00
unknown
45a26d449d merge with 4.1
BitKeeper/etc/ignore:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
client/mysql.cc:
  Auto merged
client/mysqldump.c:
  Auto merged
innobase/dict/dict0dict.c:
  Auto merged
innobase/fil/fil0fil.c:
  Auto merged
innobase/row/row0sel.c:
  Auto merged
mysql-test/r/select_found.result:
  Auto merged
mysql-test/r/type_set.result:
  Auto merged
mysys/default.c:
  Auto merged
sql/field.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
strings/ctype-simple.c:
  Auto merged
include/mysql_com.h:
  Merge
sql/filesort.cc:
  merge
2005-02-28 12:18:39 +02:00
unknown
8b8c9452dd Fixed wrong memory references found by purify
(No really critical errors found, but a few possible wrong results)


innobase/dict/dict0dict.c:
  Replace memcmp with comparison of characters to avoid warnings from purify when 'sptr' points to a very short string
mysql-test/r/select_found.result:
  Add missing drop table
mysql-test/r/type_set.result:
  More tests
mysql-test/t/select_found.test:
  Add missing drop table
mysql-test/t/type_set.test:
  More tests
mysys/my_init.c:
  Avoid warning from purify (purify doesn't handle getrusage() properly)
sql/field.h:
  enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters
sql/filesort.cc:
  enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters
sql/item_cmpfunc.cc:
  Fixed warning from purify. (Not critical as the arguments are passed to a function but not used)
  Allocate Arg_comparator() with 'new' instead of sql_alloc() to ensure proper initialization
sql/mysqld.cc:
  Wait for signal handler to stop when running --bootstrap
  (Fixes warning from purify)
sql/sql_insert.cc:
  Initialize slot used by innodb.cc (not critical)
sql/sql_lex.h:
  Better comments
sql/sql_repl.cc:
  memcmp -> bcmp() to avoid warning from purify
sql/sql_select.cc:
  Fix for out-of-bound memory reference when doing DISTINCT on const expressions
strings/ctype-simple.c:
  Fixes to not access uninitialized memory
  (Not critical)
2005-02-28 11:59:46 +02:00
unknown
248e449451 Remove compiler warnings and remove not used variables
(Found during build process)


extra/comp_err.c:
  Remove compiler warnings
extra/perror.c:
  Remove compiler warnings
innobase/dict/dict0dict.c:
  Remove compiler warnings
innobase/dict/dict0load.c:
  Remove compiler warnings
innobase/pars/pars0sym.c:
  Remove compiler warnings
innobase/row/row0row.c:
  Remove compiler warnings
innobase/row/row0sel.c:
  Remove compiler warnings
libmysqld/lib_sql.cc:
  Remove not used variables
myisam/mi_key.c:
  Remove compiler warnings
regex/engine.c:
  Added comment
sql/derror.cc:
  Remove not used variables
sql/examples/ha_archive.cc:
  Fixed bug in blob handling
  Removed not used variable
sql/field.cc:
  Remove compiler warnings
  Remove not used variables
sql/filesort.cc:
  Remove compiler warnings
sql/ha_heap.cc:
  Remove not used variable
sql/ha_innodb.cc:
  Remove not used variables
  Remove compiler warnings
sql/handler.cc:
  Remove compiler warnings and remove not used variables
sql/item.cc:
  Remove compiler warnings and remove not used variables
sql/item_subselect.cc:
  Remove compiler warnings
sql/item_sum.cc:
  Remove compiler warnings
sql/item_sum.h:
  Remove compiler warnings and remove not used variables
sql/log.cc:
  Remove compiler warnings and remove not used variables
sql/log_event.cc:
  Remove compiler warnings
sql/mysqld.cc:
  Remove compiler warnings and remove not used variables
sql/opt_range.cc:
  Remove compiler warnings and remove not used variables
sql/slave.cc:
  Remove compiler warnings and remove not used variables
sql/sp_pcontext.cc:
  Remove compiler warnings and remove not used variables
sql/sql_acl.cc:
  Remove compiler warnings and remove not used variables
sql/sql_analyse.cc:
  Remove compiler warnings and remove not used variables
sql/sql_base.cc:
  Remove compiler warnings and remove not used variables
sql/sql_db.cc:
  Remove compiler warnings and remove not used variables
sql/sql_help.cc:
  Remove compiler warnings and remove not used variables
sql/sql_insert.cc:
  Remove compiler warnings and remove not used variables
sql/sql_load.cc:
  Remove compiler warnings and remove not used variables
sql/sql_parse.cc:
  Remove compiler warnings and remove not used variables
sql/sql_prepare.cc:
  Remove compiler warnings and remove not used variables
sql/sql_select.cc:
  Remove compiler warnings and remove not used variables
sql/sql_show.cc:
  Remove compiler warnings and remove not used variables
sql/sql_table.cc:
  Remove compiler warnings
sql/sql_union.cc:
  Remove compiler warnings
sql/sql_update.cc:
  Remove compiler warnings and remove not used variables
sql/sql_yacc.yy:
  Remove compiler warnings and remove not used variables
sql/strfunc.cc:
  Remove compiler warnings and remove not used variables
strings/ctype-ucs2.c:
  Remove compiler warnings
tests/mysql_client_test.c:
  Remove compiler warnings and remove not used variables
tools/mysqlmanager.c:
  Remove compiler warnings and remove not used variables
2005-02-25 16:53:22 +02:00
unknown
61a88ff0a1 Merge serg.mylan:/usr/home/serg/Abk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0-xa


configure.in:
  Auto merged
mysql-test/r/drop_temp_table.result:
  Auto merged
mysql-test/r/innodb.result:
  Auto merged
mysql-test/t/innodb.test:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2005-02-18 12:02:46 +01:00
unknown
28f79321f6 Bug#8147
Merge from 4.1


mysql-test/r/insert_update.result:
  Auto merged
2005-02-17 17:38:13 +00:00
unknown
2d8b51991c manually merged
client/mysqlbinlog.cc:
  Auto merged
configure.in:
  Auto merged
include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
innobase/trx/trx0trx.c:
  Auto merged
mysql-test/include/varchar.inc:
  Auto merged
mysql-test/r/bdb.result:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/r/mysqlbinlog2.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/user_var.test:
  Auto merged
mysys/hash.c:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/set_var.h:
  Auto merged
sql/slave.cc:
  Auto merged
sql/slave.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_repl.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
mysql-test/r/ctype_ucs.result:
  ul
mysql-test/r/drop_temp_table.result:
  ul
mysql-test/r/innodb.result:
  ul
mysql-test/r/insert_select.result:
  ul
mysql-test/r/mix_innodb_myisam_binlog.result:
  ul
mysql-test/r/rpl_change_master.result:
  ul
mysql-test/r/rpl_charset.result:
  ul
mysql-test/r/rpl_error_ignored_table.result:
  ul
mysql-test/r/rpl_flush_log_loop.result:
  ul
mysql-test/r/rpl_flush_tables.result:
  ul
mysql-test/r/rpl_loaddata.result:
  ul
mysql-test/r/rpl_loaddata_rule_m.result:
  ul
mysql-test/r/rpl_log.result:
  ul
mysql-test/r/rpl_max_relay_size.result:
  ul
mysql-test/r/rpl_relayrotate.result:
  ul
mysql-test/r/rpl_replicate_do.result:
  ul
mysql-test/r/rpl_rotate_logs.result:
  ul
mysql-test/r/rpl_temporary.result:
  ul
mysql-test/r/rpl_timezone.result:
  ul
mysql-test/r/rpl_until.result:
  ul
mysql-test/r/rpl_user_variables.result:
  ul
mysql-test/r/user_var.result:
  ul
2005-02-14 21:50:09 +01:00
unknown
d5c0360898 Review fixed
sql/ha_federated.cc:
  Fixed compiler warnings and some indentation problems (still a lot more indentation problems to fix, will come in a later patch)
sql/mysql_priv.h:
  Remove duplicated append_escaped()
sql/sql_analyse.cc:
  Remove duplicated append_escaped()
sql/sql_insert.cc:
  Move extra(HA_EXTRA_IGNORE_DUP_KEY) to a more logical places
  Add missing DBUG_RETURN()
2005-02-02 22:39:21 +02:00
unknown
042448aa33 query_id and my_xid -> ulonglong
fix for binlog+autocommit+tclog
comments, style fixes


libmysqld/libmysqld.rc:
  Change mode to -rw-rw-r--
libmysqld/resource.h:
  Change mode to -rw-rw-r--
configure.in:
  check for getpagesize
include/my_global.h:
  typo ?
include/my_pthread.h:
  bug in thread_safe_decrement_and_test()
mysql-test/r/bdb.result:
  results updated
mysql-test/r/innodb.result:
  results updated
mysql-test/r/mix_innodb_myisam_binlog.result:
  results updated
mysql-test/r/rpl_relayrotate.result:
  results updated
sql/ha_berkeley.cc:
  style fixes
sql/ha_innodb.cc:
  fixes to follow innodb coding style
sql/handler.cc:
  more comments. XA COMMIT ONE PHASE fix.
sql/handler.h:
  my_xid -> ulonglong. comments
sql/item_func.cc:
  DO RELEASE_LOCK("...") is no cache_stmt
sql/log.cc:
  comments, better error messages
sql/log_event.cc:
  even in autocommit mode we may need to cache_stmt
  xid is ulonglong
sql/log_event.h:
  more comments.
sql/mysql_priv.h:
  query_id is ulonglong
sql/mysqld.cc:
  default value for --log-tc changed
sql/share/errmsg.txt:
  better error messages
sql/sql_class.h:
  cleanup, comments
sql/sql_delete.cc:
  deleting from temporary tables is not always transactional
sql/sql_insert.cc:
  insert into temporary table is not always transactional
sql/sql_load.cc:
  load data into temp table is not always transactional
sql/sql_parse.cc:
  comments. bad merge fixed. xa_state_names[]
sql/sql_table.cc:
  create/drop temp table is not always transactional
sql/sql_update.cc:
  update temp table is not always transactional
2005-01-27 22:38:56 +01:00
unknown
8fd38c7ab3 Fix for failing INSERT IGNORE in test ndb_insert 2005-01-25 15:08:51 +01:00
unknown
ab7f56e365 BUG#6034 - Error code 124: Wrong medium type.
Version for 5.0. Committed for merge.
If the result table is one of the select tables in INSERT SELECT,
we must not disable the result tables indexes before selecting.
Now the preparation is split into two prepare methods.
The first detects the situation and defers some preparations
until the second phase.


mysql-test/r/insert_select.result:
  BUG#6034 - Error code 124:  Wrong medium type.
  The test results.
mysql-test/t/insert_select.test:
  BUG#6034 - Error code 124:  Wrong medium type.
  The test case.
sql/sql_class.h:
  BUG#6034 - Error code 124:  Wrong medium type.
  Added a new method for deferred preparation actions.
sql/sql_insert.cc:
  BUG#6034 - Error code 124:  Wrong medium type.
  If the insert table is one of the select tables, a part 
  of the result table preparations like disabling indexes
  has to be done after the select phase.
  This is now done in the new method select_insert::prepare2().
sql/sql_select.cc:
  BUG#6034 - Error code 124:  Wrong medium type.
  The result table preparation is now split into prepare() and
  prepare2(). Disabling indexes and other preparation stuff
  is deferred until after the selection phase.
2005-01-19 21:20:55 +01:00
unknown
88bd301d36 XA (not completely polished out yet)
include/my_pthread.h:
  cleanup. don't use gcc extensions
innobase/include/trx0sys.ic:
  Jan's fix for innobase_xa_prepare
innobase/read/read0read.c:
  Jan's fix for innobase_xa_prepare
innobase/trx/trx0trx.c:
  Jan's fix for innobase_xa_prepare
mysql-test/include/varchar.inc:
  test fix
mysql-test/r/ctype_ucs.result:
  new log event - all binlog positions are changed :(
mysql-test/r/drop_temp_table.result:
  new log event - all binlog positions are changed :(
mysql-test/r/insert_select.result:
  new log event - all binlog positions are changed :(
mysql-test/r/mix_innodb_myisam_binlog.result:
  new log event - all binlog positions are changed :(
mysql-test/r/myisam.result:
  test fix
mysql-test/r/rpl000015.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_change_master.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_charset.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_error_ignored_table.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_flush_log_loop.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_flush_tables.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_loaddata.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_loaddata_rule_m.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_loaddata_rule_s.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_log.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_log_pos.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_max_relay_size.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_relayrotate.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_replicate_do.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_reset_slave.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_rotate_logs.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_server_id1.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_server_id2.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_temporary.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_timezone.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_until.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_user_variables.result:
  new log event - all binlog positions are changed :(
mysql-test/r/user_var.result:
  new log event - all binlog positions are changed :(
mysql-test/t/ctype_ucs.test:
  new log event - all binlog positions are changed :(
mysql-test/t/mix_innodb_myisam_binlog.test:
  new log event - all binlog positions are changed :(
mysql-test/t/mysqlbinlog.test:
  new log event - all binlog positions are changed :(
mysql-test/t/mysqlbinlog2.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_charset.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_error_ignored_table.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_loaddata_rule_m.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_loaddata_rule_s.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_log.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_log_pos.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_user_variables.test:
  new log event - all binlog positions are changed :(
mysql-test/t/user_var.test:
  new log event - all binlog positions are changed :(
mysys/hash.c:
  typo fixed
sql/ha_berkeley.cc:
  handlerton framework
sql/ha_berkeley.h:
  handlerton framework
sql/ha_innodb.cc:
  handlerton framework
sql/ha_innodb.h:
  handlerton framework
sql/handler.cc:
  new transaction handling, handlerton framework, two-phase commit, XA support
sql/handler.h:
  new transaction handling, handlerton framework, two-phase commit, XA support
sql/lex.h:
  XA commands
sql/log.cc:
  new transaction handling, handlerton framework, two-phase commit,
  XA support, tc-logging, TC_LOG_MMAP class
sql/log_event.cc:
  Xid_log_event
sql/log_event.h:
  Xid_log_event, LOG_EVENT_BINLOG_CLOSED_F flag
sql/mysql_priv.h:
  wrapper for query_id++
sql/mysqld.cc:
  new command-line options --log-tc, --log-tc-size, --tc-heuristic-recover,
  new status variables Tc_log_page_size, Tc_log_max_pages_used, Tc_log_page_waits.
  init/stop tc logging
sql/set_var.h:
  warning fixed
sql/share/errmsg.txt:
  XA error messages
sql/sp_head.cc:
  s/query_id++/next_query_id()/
sql/sql_base.cc:
  typo fixed. new transaction handling.
sql/sql_class.cc:
  cleanup of THD.transaction
sql/sql_class.h:
  TC_LOG classes, new status variables, new savepoint handling, XA support
sql/sql_insert.cc:
  comments
sql/sql_lex.cc:
  s/found_colon/found_semicolon/
sql/sql_lex.h:
  SQLCOM_XA_xxx, XA related changes in Lex
sql/sql_parse.cc:
  cleanup, XA commands, new savepoint handling
sql/sql_repl.cc:
  two functions moved to log.cc
sql/sql_repl.h:
  two functions moved to log.cc
sql/sql_trigger.cc:
  s/lex.name_and_length/lex.ident/
sql/sql_yacc.yy:
  XA commands, cleanup
2005-01-16 13:16:23 +01:00
unknown
2f19824d20 Enable warnings for 'no default' fields being set to default when they
are not specified in an insert. Most of these changes are actually to
clean up the test suite to either specify defaults to avoid warnings,
or add the warnings to the results. Related to bug #5986.


mysql-test/t/index_merge_ror.test:
  Set default on columns to avoid warnings
mysql-test/t/ctype_many.test:
  Add defaults to avoid warnings
mysql-test/t/ctype_latin1_de.test:
  Add defaults to avoid warnings
mysql-test/t/gis-rtree.test:
  Remove field that isn't used in test
mysql-test/t/limit.test:
  set default values
mysql-test/t/null.test:
  Specify default values
mysql-test/t/order_by.test:
  add default value
mysql-test/t/show_check.test:
  Add defaults
mysql-test/t/sp.test:
  Add default value
mysql-test/t/type_blob.test:
  Set default value
mysql-test/t/type_ranges.test:
  Set default values
mysql-test/r/create.result:
  Update results
mysql-test/r/ctype_latin1_de.result:
  Update results
mysql-test/r/ctype_many.result:
  Update results
mysql-test/r/gis-rtree.result:
  Update results
mysql-test/r/grant.result:
  Update results
mysql-test/r/grant2.result:
  Update results
mysql-test/r/help.result:
  Update results
mysql-test/r/limit.result:
  Update results
mysql-test/r/null.result:
  Update results
mysql-test/r/order_by.result:
  Update results
mysql-test/r/rpl000001.result:
  Update results
mysql-test/r/sp.result:
  Update results
mysql-test/r/strict.result:
  Update results
mysql-test/r/type_blob.result:
  Update results
mysql-test/r/type_ranges.result:
  Update results
mysql-test/r/warnings.result:
  Update results
sql/sql_insert.cc:
  Change check_that_all_fields_are_given_values() to issue warnings for all
  fields, and not only run when thd->abort_on_warning is set and error on
  just the first field.
2005-01-14 17:09:35 -08:00
unknown
dcfc9c895a In TRADITIONAL mode, don't allow a NOT NULL field with no default be set to
DEFAULT (with no argument) or to the field's type's default by not being
listed in the list of fields being inserted. (Bug #5986)                    


sql/item.cc:
  Add Item_default_value::save_in_field(), with check for setting fields
  with no default value set.
sql/item.h:
  Implementation of Item_default_value::save_in_field moved to item.cc
sql/sql_insert.cc:
  Call check_that_all_fields_are_given_values() if no values were
  given and we would be filling row with all default values
mysql-test/t/strict.test:
  Add tests for setting fields to DEFAULT in traditional and regular modes
mysql-test/r/strict.result:
  Add results
2005-01-13 18:23:34 -08:00
unknown
f360ee773c Fix for failing INSERT IGNORE 2005-01-10 20:55:05 +01:00
unknown
8ff8867251 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0


sql/item_func.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
2005-01-06 13:31:31 +02:00
unknown
acf76e3b88 First stage of table definition cache
Split TABLE to TABLE and TABLE_SHARE (TABLE_SHARE is still allocated as part of table, will be fixed soon)
Created Field::make_field() and made Field_num::make_field() to call this
Added 'TABLE_SHARE->db' that points to database name; Changed all usage of table_cache_key as database name to use this instead
Changed field->table_name to point to pointer to alias. This allows us to change alias for a table by just updating one pointer.
Renamed TABLE_SHARE->real_name to table_name
Renamed TABLE->table_name to alias
Renamed TABLE_LIST->real_name to table_name


include/myisam.h:
  Added const before names
mysql-test/r/group_min_max.result:
  Make results repeatable
mysql-test/t/group_min_max.test:
  Make results repeatable
sql/field.cc:
  Created Field::make_field() and made Field_num::make_field() to call this
  Use TABLE_SHARE
  Use sql_strmake() instead of sql_memdup() to simplify code
sql/field.h:
  Changed table_name to be pointer to table_name. This allows us to change alias for all fields by just changing one pointer.
  Use TABLE_SHARE
sql/field_conv.cc:
  Use TABLE_SHARE
sql/filesort.cc:
  Use TABLE_SHARE
sql/ha_berkeley.cc:
  Use TABLE_SHARE
sql/ha_heap.cc:
  Use TABLE_SHARE
sql/ha_innodb.cc:
  Use TABLE_SHARE
sql/ha_myisam.cc:
  Use TABLE_SHARE
sql/ha_myisammrg.cc:
  Use TABLE_SHARE
  Change some pointer handling to use const char*
sql/ha_ndbcluster.cc:
  Use TABLE_SHARE
sql/handler.cc:
  Use TABLE_SHARE
sql/item.cc:
  Use TABLE_SHARE
sql/item_func.cc:
  Use TABLE_SHARE
sql/item_subselect.cc:
  Use TABLE_SHARE
sql/item_sum.cc:
  Use TABLE_SHARE
sql/key.cc:
  Use TABLE_SHARE
sql/lock.cc:
  Use TABLE_SHARE
sql/log_event.cc:
  real_name -> table_name
sql/mysql_priv.h:
  Use TABLE_SHARE
sql/opt_range.cc:
  Use TABLE_SHARE
sql/opt_sum.cc:
  Use TABLE_SHARE
sql/records.cc:
  Use TABLE_SHARE
sql/repl_failsafe.cc:
  real_name -> table_name
sql/slave.cc:
  Use TABLE_SHARE
sql/sp.cc:
  Use TABLE_SHARE
sql/sp_head.cc:
  real_name -> table_name
sql/sql_acl.cc:
  Use TABLE_SHARE
  removed unnecessary assert
  fixed indentation
  changed some char * -> const char*
sql/sql_acl.h:
  changed some char* -> const char*
sql/sql_base.cc:
  Use TABLE_SHARE
sql/sql_cache.cc:
  Use TABLE_SHARE
sql/sql_class.cc:
  Use TABLE_SHARE
sql/sql_db.cc:
  real_name -> table_name
sql/sql_delete.cc:
  Use TABLE_SHARE
sql/sql_derived.cc:
  Use TABLE_SHARE
sql/sql_handler.cc:
  Use TABLE_SHARE
sql/sql_help.cc:
  Use TABLE_SHARE
sql/sql_insert.cc:
  Use TABLE_SHARE
sql/sql_load.cc:
  Use TABLE_SHARE
sql/sql_parse.cc:
  Use TABLE_SHARE
sql/sql_rename.cc:
  real_name -> table_name
sql/sql_select.cc:
  Use TABLE_SHARE
  table->blob_fields now points to field offsets, not fields
  tmp_table->table_name now points to alias name
sql/sql_show.cc:
  Use TABLE_SHARE
sql/sql_table.cc:
  Use TABLE_SHARE
sql/sql_test.cc:
  Use TABLE_SHARE
sql/sql_trigger.cc:
  Use TABLE_SHARE
sql/sql_udf.cc:
  Use TABLE_SHARE
sql/sql_union.cc:
  real_name -> table_name
sql/sql_update.cc:
  Use TABLE_SHARE
sql/sql_view.cc:
  Use TABLE_SHARE
sql/table.cc:
  Split TABLE to TABLE and TABLE_SHARE
  Changed blob_field to be field offsets instead of pointer to fields
  Only initialize table->s->default_values with default record (not all table->record[#])
  Some indentation changes
sql/table.h:
  Split TABLE to TABLE and TABLE_SHARE
sql/tztime.cc:
  real_name -> table_name
sql/unireg.cc:
  Use TABLE_SHARE
sql/unireg.h:
  Use TABLE_SHARE
2005-01-06 13:00:13 +02:00
unknown
34f313eeaf fixed bugs in view code with prepared statemnts
sql/sql_acl.cc:
  block checking view underlying tables
sql/sql_base.cc:
  item registration fixed
  fixed non registred item resolving
  fixed result of outo-merge
  fixed creation reference if alias used
sql/sql_insert.cc:
  layout fixed
  removed unused variable
sql/sql_parse.cc:
  block checking view underlying tables
sql/sql_prepare.cc:
  make preparation check same as usual check
sql/sql_update.cc:
  made want_privilege assignment simplier
  block checking view underlying tables
sql/sql_view.cc:
  belong_to_view assignmebt moved after privileges check
sql/table.cc:
  check option fix field added
  arena management added
2005-01-04 18:04:16 +02:00
unknown
bd365f7622 After merge fixes
Add support for warnings for prepare of prepared statements
Fixed test to work with --ps-protocol
Fixed some test results


libmysql/libmysql.c:
  Add support for warnings for prepare of prepared statements
mysql-test/r/func_concat.result:
  After merge fixes
mysql-test/r/select.result:
  Delete conflicting tables form previous tests
mysql-test/r/view.result:
  New code from 4.1 fixed old error
mysql-test/t/create.test:
  Ensure that --ps-protocol return same results as normal test
mysql-test/t/func_group.test:
  Remove not needed --disable_ps_protocol
mysql-test/t/func_time.test:
  Ensure that --ps-protocol return same results as normal test
mysql-test/t/having.test:
  Ensure that --ps-protocol return same results as normal test
mysql-test/t/insert_select.test:
  Remove not needed --disable_ps_protocol
mysql-test/t/select.test:
  Ensure that --ps-protocol return same results as normal test
mysql-test/t/sp.test:
  Fixed comment
mysql-test/t/system_mysql_db_fix.test:
  Fix that results is same as from system_mysql_db.test
mysql-test/t/trigger.test:
  Added comment
mysql-test/t/type_blob.test:
  Remove not needed --disable_ps_protocol
mysql-test/t/union.test:
  Run most of the test with --ps-protocol
mysql-test/t/user_limits.test:
  Ensure that --ps-protocol return same results as normal test
mysql-test/t/view.test:
  Removed --error as bug is now fixed
mysql-test/t/warnings.test:
  Ensure that --ps-protocol return same results as normal test
ndb/include/Makefile.am:
  Don't automaticly use SCCS files
sql/ha_ndbcluster.cc:
  Removed compiler warning
sql/log_event.cc:
  After merge fix
sql/sql_class.h:
  After merge fix
sql/sql_insert.cc:
  After merge fix
sql/sql_load.cc:
  After merge fix
sql/sql_prepare.cc:
  Add support for warnings for prepare of prepared statements
sql/sql_update.cc:
  After merge fixes
2005-01-04 13:46:53 +02:00
unknown
73c9909750 Merge with 4.1 tree to get fix for INSERT IGNORE ... ON DUPLICATE KEY
BitKeeper/etc/ignore:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
Makefile.am:
  Auto merged
client/mysqltest.c:
  Auto merged
configure.in:
  Auto merged
innobase/log/log0recv.c:
  Auto merged
myisam/mi_check.c:
  Auto merged
mysql-test/r/cast.result:
  Auto merged
mysql-test/r/drop.result:
  Auto merged
mysql-test/r/func_time.result:
  Auto merged
mysql-test/r/ps_2myisam.result:
  Auto merged
mysql-test/r/ps_3innodb.result:
  Auto merged
mysql-test/r/ps_4heap.result:
  Auto merged
mysql-test/r/ps_5merge.result:
  Auto merged
mysql-test/r/ps_6bdb.result:
  Auto merged
mysql-test/r/ps_7ndb.result:
  Auto merged
mysql-test/r/type_datetime.result:
  Auto merged
mysql-test/t/drop.test:
  Auto merged
mysql-test/t/func_time.test:
  Auto merged
ndb/include/ndb_global.h.in:
  Auto merged
ndb/src/kernel/blocks/suma/Suma.cpp:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/item_timefunc.h:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_repl.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql-common/my_time.c:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/time.cc:
  Auto merged
innobase/row/row0upd.c:
  Trivial merge
mysql-test/t/func_concat.test:
  Keep local code
mysql-test/t/multi_update.test:
  auto merge
sql/ha_ndbcluster.cc:
  manual merge
sql/item_timefunc.cc:
  manual merge
sql/mysql_priv.h:
  manual merge
sql/sql_class.h:
  manual merge
sql/sql_delete.cc:
  manual merge
sql/sql_insert.cc:
  manual merge
sql/sql_lex.cc:
  manual merge
sql/sql_lex.h:
  manual merge
sql/sql_load.cc:
  manual merge
sql/sql_parse.cc:
  manual merge
sql/sql_table.cc:
  manual merge
sql/sql_update.cc:
  manual merge
2005-01-03 23:04:52 +02:00
unknown
2bcaed348d Better handling of ensuring that setup_tables() are not called twice
This fixed a bug in prepared statements when used with outher joins
Fixed a bug in SUM(DISTINCT) when used with prepared statements.
Some safety fixes in test scripts to ensure that previous test failures shouldn't affect other tests


mysql-test/r/mysqldump.result:
  Safety fix if a previous test would fail
mysql-test/r/show_check.result:
  Safety fix if a previous test would fail
mysql-test/r/sp.result:
  Fix for --ps-protocol
mysql-test/r/synchronization.result:
  Safety fix if a previous test would fail
mysql-test/r/system_mysql_db.result:
  Safety fix if a previous test would fail
mysql-test/t/mysqldump.test:
  Safety fix if a previous test would fail
mysql-test/t/select.test:
  Safety fix if a previous test would fail
mysql-test/t/show_check.test:
  Safety fix if a previous test would fail
mysql-test/t/sp.test:
  fix for --ps-protocol
mysql-test/t/strict.test:
  Fix for --ps-protocol
mysql-test/t/synchronization.test:
  Safety fix if a previous test would fail
mysql-test/t/system_mysql_db.test:
  Safety fix if a previous test would fail
sql/item_sum.cc:
  Fix bug in SUM(DISTINCT...) when using with prepared statements
sql/item_sum.h:
  Fix bug in SUM(DISTINCT...) when using with prepared statements
sql/mysql_priv.h:
  Better handling of ensuring that setup_tables() are not called twice
sql/sql_base.cc:
  Better handling of ensuring that setup_tables() are not called twice
sql/sql_insert.cc:
  Better handling of ensuring that setup_tables() are not called twice
sql/sql_parse.cc:
  Better handling of ensuring that setup_tables() are not called twice
sql/sql_prepare.cc:
  Better handling of ensuring that setup_tables() are not called twice
sql/sql_select.cc:
  Better handling of ensuring that setup_tables() are not called twice
sql/sql_union.cc:
  Better handling of ensuring that setup_tables() are not called twice
sql/sql_update.cc:
  Better handling of ensuring that setup_tables() are not called twice
sql/table.h:
  Better handling of ensuring that setup_tables() are not called twice
2005-01-03 21:04:33 +02:00
unknown
e055be6658 Remove clear_insert_values() because it was far from trivial to handle the cleanup in all cases
(Old code failed for INSERT ... ON DUPLICATE with prepared statements) 
Instead, always reset table->insert_values on open.


mysql-test/t/trigger.test:
  Fix test for --ps-protocol
sql/sql_base.cc:
  Clear insert_values on open_table
sql/sql_insert.cc:
  Remove clear_insert_values()
sql/sql_parse.cc:
  Remove clear_insert_values()
sql/sql_prepare.cc:
  Remove clear_insert_values()
sql/table.cc:
  Remove clear_insert_values()
sql/table.h:
  Remove clear_insert_values()
2005-01-03 13:56:23 +02:00