List:Commits« Previous MessageNext Message »
From:Rafal Somla Date:September 11 2008 11:38am
Subject:bzr push into mysql-6.0-backup branch (Rafal.Somla:2692)
View as plain text  
 2692 Rafal Somla	2008-09-11 [merge]
      Automatic merge.
removed:
  mysql-test/include/wait_timeout_basic.inc
  mysql-test/r/concurrent_innodb.result
  mysql-test/r/innodb-autoinc.result
  mysql-test/r/innodb_bug34300.result
  mysql-test/r/innodb_bug35220.result
  mysql-test/std_data/ndb_backup51_data_be/BACKUP-1-0.1.Data
  mysql-test/std_data/ndb_backup51_data_le/BACKUP-1-0.2.Data
  mysql-test/suite/rpl/t/rpl_view-slave.opt
  mysql-test/t/concurrent_innodb-master.opt
  mysql-test/t/concurrent_innodb.test
  mysql-test/t/innodb-autoinc.test
  mysql-test/t/innodb_bug34300.test
  mysql-test/t/innodb_bug35220.test
added:
  mysql-test/include/have_case_insensitive_file_system.inc
  mysql-test/include/have_lowercase2.inc
  mysql-test/include/have_nodebug.inc
  mysql-test/include/mysqlbinlog_row_engine.inc
  mysql-test/include/ps_ddl_1.inc
  mysql-test/include/wait_for_slave_sql_error_and_skip.inc
  mysql-test/r/backup_blob.result
  mysql-test/r/backup_view_on_view.result
  mysql-test/r/case_insensitive_file_system.require
  mysql-test/r/concurrent_innodb_safelog.result
  mysql-test/r/concurrent_innodb_unsafelog.result
  mysql-test/r/have_nodebug.require
  mysql-test/r/innodb-autoinc-optimize.result
  mysql-test/r/innodb-autoinc.result
  mysql-test/r/innodb_bug34300.result
  mysql-test/r/innodb_bug35220.result
  mysql-test/r/mysqlbinlog_row.result
  mysql-test/r/mysqlbinlog_row_big.result
  mysql-test/r/mysqlbinlog_row_innodb.result
  mysql-test/r/mysqlbinlog_row_myisam.result
  mysql-test/r/mysqlbinlog_row_trans.result
  mysql-test/r/skip_log_bin.result
  mysql-test/r/sp-no-code.result
  mysql-test/r/subselect_nulls.result
  mysql-test/std_data/corrupt_t1#P#p1.MYI
  mysql-test/std_data/corrupt_t1.MYI
  mysql-test/std_data/ndb_backup51_data_be/BACKUP-1-0.1.Data
  mysql-test/std_data/ndb_backup51_data_le/BACKUP-1-0.2.Data
  mysql-test/std_data/parts/t1_will_crash#P#p1_first_1024.MYD
  mysql-test/std_data/parts/t1_will_crash#P#p2.MYD
  mysql-test/std_data/parts/t1_will_crash#P#p2.MYI
  mysql-test/std_data/parts/t1_will_crash#P#p3.MYI
  mysql-test/std_data/parts/t1_will_crash#P#p4.MYI
  mysql-test/std_data/parts/t1_will_crash#P#p6.MYD
  mysql-test/std_data/parts/t1_will_crash#P#p6_2.MYD
  mysql-test/std_data/parts/t1_will_crash#P#p6_3.MYD
  mysql-test/suite/parts/inc/partition_mgm.inc
  mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
  mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
  mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
  mysql-test/suite/parts/r/partition_recover_myisam.result
  mysql-test/suite/parts/r/partition_repair_myisam.result
  mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
  mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test
  mysql-test/suite/parts/t/partition_mgm_lc0_memory.test
  mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test
  mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test
  mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_archive.test
  mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test
  mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_memory.test
  mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test
  mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test
  mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_archive.test
  mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test
  mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_memory.test
  mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test
  mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test
  mysql-test/suite/parts/t/partition_recover_myisam-master.opt
  mysql-test/suite/parts/t/partition_recover_myisam.test
  mysql-test/suite/parts/t/partition_repair_myisam.test
  mysql-test/suite/parts/t/partition_special_innodb-master.opt
  mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result
  mysql-test/suite/rpl/r/rpl_plugin_load.result
  mysql-test/suite/rpl/t/rpl_filter_tables_not_exist-slave.opt
  mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test
  mysql-test/suite/rpl/t/rpl_plugin_load-master.opt
  mysql-test/suite/rpl/t/rpl_plugin_load-slave.opt
  mysql-test/suite/rpl/t/rpl_plugin_load.test
  mysql-test/suite/sys_vars/inc/multi_range_count_basic.inc
  mysql-test/suite/sys_vars/r/multi_range_count_basic_32.result
  mysql-test/suite/sys_vars/r/multi_range_count_basic_64.result
  mysql-test/suite/sys_vars/t/multi_range_count_basic_32.test
  mysql-test/suite/sys_vars/t/multi_range_count_basic_64.test
  mysql-test/t/backup_blob.test
  mysql-test/t/backup_view_on_view.test
  mysql-test/t/concurrent_innodb_safelog-master.opt
  mysql-test/t/concurrent_innodb_safelog.test
  mysql-test/t/concurrent_innodb_unsafelog-master.opt
  mysql-test/t/concurrent_innodb_unsafelog.test
  mysql-test/t/innodb-autoinc-optimize.test
  mysql-test/t/innodb-autoinc.test
  mysql-test/t/innodb_bug34300.test
  mysql-test/t/innodb_bug35220.test
  mysql-test/t/mysqlbinlog_row.test
  mysql-test/t/mysqlbinlog_row_big.test
  mysql-test/t/mysqlbinlog_row_innodb.test
  mysql-test/t/mysqlbinlog_row_myisam.test
  mysql-test/t/mysqlbinlog_row_trans.test
  mysql-test/t/skip_log_bin-master.opt
  mysql-test/t/skip_log_bin.test
  mysql-test/t/sp-no-code.test
  mysql-test/t/subselect_nulls.test
  win/build-vs9.bat
  win/build-vs9_x64.bat
renamed:
  mysql-test/suite/falcon_team/r/falcon_bug_22165.result => mysql-test/suite/falcon/r/falcon_bug_22165.result
  mysql-test/suite/falcon_team/r/falcon_bug_22173.result => mysql-test/suite/falcon/r/falcon_bug_22173.result
  mysql-test/suite/falcon_team/r/falcon_bug_22173a.result => mysql-test/suite/falcon/r/falcon_bug_22173a.result
  mysql-test/suite/falcon_team/t/falcon_bug_22165.test => mysql-test/suite/falcon/t/falcon_bug_22165.test
  mysql-test/suite/falcon_team/t/falcon_bug_22173.test => mysql-test/suite/falcon/t/falcon_bug_22173.test
  mysql-test/suite/falcon_team/t/falcon_bug_22173a.test => mysql-test/suite/falcon/t/falcon_bug_22173a.test
  mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb_2-master.opt => mysql-test/suite/rpl/t/rpl_truncate_7ndb_2-master.opt
modified:
  .bzr-mysql/default.conf
  .bzrignore
  BUILD/check-cpu
  Makefile.am
  client/Makefile.am
  client/mysql_upgrade.c
  client/mysqlbinlog.cc
  client/mysqltest.c
  config/ac-macros/character_sets.m4
  configure.in
  extra/comp_err.c
  extra/perror.c
  include/my_global.h
  include/my_pthread.h
  include/my_sys.h
  include/myisam.h
  libmysql/CMakeLists.txt
  libmysql/dll.c
  libmysqld/lib_sql.cc
  mysql-test/Makefile.am
  mysql-test/extra/binlog_tests/binlog_insert_delayed.test
  mysql-test/extra/binlog_tests/database.test
  mysql-test/extra/rpl_tests/rpl_ddl.test
  mysql-test/extra/rpl_tests/rpl_log.test
  mysql-test/extra/rpl_tests/rpl_row_basic.test
  mysql-test/include/concurrent.inc
  mysql-test/include/have_falcon.inc
  mysql-test/include/have_lowercase0.inc
  mysql-test/include/show_binlog_events.inc
  mysql-test/lib/mtr_report.pl
  mysql-test/mysql-test-run.pl
  mysql-test/r/backup_ddl_blocker.result
  mysql-test/r/backup_security.result
  mysql-test/r/constraints.result
  mysql-test/r/csv.result
  mysql-test/r/federated.result
  mysql-test/r/func_if.result
  mysql-test/r/func_regexp.result
  mysql-test/r/group_min_max.result
  mysql-test/r/handler_innodb.result
  mysql-test/r/have_utf8.require
  mysql-test/r/innodb.result
  mysql-test/r/innodb_mysql.result
  mysql-test/r/join.result
  mysql-test/r/log_tables.result
  mysql-test/r/lowercase0.require
  mysql-test/r/maria.result
  mysql-test/r/maria2.result
  mysql-test/r/maria3.result
  mysql-test/r/metadata.result
  mysql-test/r/multi_update.result
  mysql-test/r/myisam.result
  mysql-test/r/partition.result
  mysql-test/r/partition_innodb.result
  mysql-test/r/partition_symlink.result
  mysql-test/r/perror.result
  mysql-test/r/ps_ddl.result
  mysql-test/r/show_check.result
  mysql-test/r/sp-error.result
  mysql-test/r/sp.result
  mysql-test/r/subselect.result
  mysql-test/r/subselect3.result
  mysql-test/r/subselect_no_mat.result
  mysql-test/r/subselect_no_opts.result
  mysql-test/r/subselect_no_semijoin.result
  mysql-test/r/subselect_sj.result
  mysql-test/r/subselect_sj2.result
  mysql-test/r/symlink.result
  mysql-test/r/trigger-trans.result
  mysql-test/r/type_bit.result
  mysql-test/r/type_newdecimal.result
  mysql-test/suite/binlog/r/binlog_database.result
  mysql-test/suite/binlog/r/binlog_killed_simulate.result
  mysql-test/suite/binlog/r/binlog_row_binlog.result
  mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
  mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result
  mysql-test/suite/binlog/r/binlog_stm_binlog.result
  mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
  mysql-test/suite/falcon/r/falcon_options.result
  mysql-test/suite/falcon/r/falcon_options2.result
  mysql-test/suite/falcon/t/disabled.def
  mysql-test/suite/falcon/t/falcon_bug_22179.test
  mysql-test/suite/falcon/t/falcon_bug_22845.test
  mysql-test/suite/falcon/t/falcon_bug_23818_I.test
  mysql-test/suite/falcon/t/falcon_bug_24858.test
  mysql-test/suite/falcon/t/falcon_bug_33081.test
  mysql-test/suite/falcon/t/falcon_bug_37080.test
  mysql-test/suite/falcon/t/falcon_bugs2.test
  mysql-test/suite/falcon/t/falcon_options.test
  mysql-test/suite/falcon/t/falcon_options2.test
  mysql-test/suite/funcs_1/datadict/processlist_priv.inc
  mysql-test/suite/funcs_1/datadict/processlist_val.inc
  mysql-test/suite/funcs_1/r/falcon_storedproc.result
  mysql-test/suite/funcs_1/r/falcon_trig_03.result
  mysql-test/suite/funcs_1/r/falcon_trig_03e.result
  mysql-test/suite/funcs_1/r/innodb_storedproc.result
  mysql-test/suite/funcs_1/r/innodb_trig_03.result
  mysql-test/suite/funcs_1/r/innodb_trig_03e.result
  mysql-test/suite/funcs_1/r/is_tables_mysql.result
  mysql-test/suite/funcs_1/r/is_user_privileges.result
  mysql-test/suite/funcs_1/r/memory_storedproc.result
  mysql-test/suite/funcs_1/r/memory_trig_03.result
  mysql-test/suite/funcs_1/r/memory_trig_03e.result
  mysql-test/suite/funcs_1/r/myisam_storedproc.result
  mysql-test/suite/funcs_1/r/myisam_trig_03.result
  mysql-test/suite/funcs_1/r/myisam_trig_03e.result
  mysql-test/suite/funcs_1/r/ndb_storedproc.result
  mysql-test/suite/funcs_1/r/ndb_trig_03.result
  mysql-test/suite/funcs_1/r/ndb_trig_03e.result
  mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result
  mysql-test/suite/funcs_1/r/processlist_priv_ps.result
  mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
  mysql-test/suite/funcs_1/r/processlist_val_ps.result
  mysql-test/suite/funcs_1/triggers/triggers_03.inc
  mysql-test/suite/funcs_1/triggers/triggers_08.inc
  mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc
  mysql-test/suite/jp/std_data/jisx0208_sjis2.dat
  mysql-test/suite/jp/t/disabled.def
  mysql-test/suite/ndb/r/ndb_basic.result
  mysql-test/suite/ndb/r/ndb_partition_key.result
  mysql-test/suite/ndb/t/disabled.def
  mysql-test/suite/ndb/t/ndb_partition_key.test
  mysql-test/suite/parts/inc/partition_alter4.inc
  mysql-test/suite/parts/inc/partition_key_32col.inc
  mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result
  mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result
  mysql-test/suite/parts/r/partition_alter1_1_2_ndb.result
  mysql-test/suite/parts/r/partition_alter1_1_innodb.result
  mysql-test/suite/parts/r/partition_alter1_1_myisam.result
  mysql-test/suite/parts/r/partition_alter1_1_ndb.result
  mysql-test/suite/parts/r/partition_alter1_2_innodb.result
  mysql-test/suite/parts/r/partition_alter1_2_myisam.result
  mysql-test/suite/parts/r/partition_alter1_2_ndb.result
  mysql-test/suite/parts/r/partition_alter2_innodb.result
  mysql-test/suite/parts/r/partition_alter2_myisam.result
  mysql-test/suite/parts/r/partition_alter4_innodb.result
  mysql-test/suite/parts/r/partition_alter4_myisam.result
  mysql-test/suite/parts/r/partition_basic_innodb.result
  mysql-test/suite/parts/r/partition_basic_myisam.result
  mysql-test/suite/parts/r/partition_basic_symlink_myisam.result
  mysql-test/suite/parts/r/partition_engine_innodb.result
  mysql-test/suite/parts/r/partition_engine_myisam.result
  mysql-test/suite/parts/r/partition_special_innodb.result
  mysql-test/suite/parts/t/disabled.def
  mysql-test/suite/parts/t/partition_special_innodb.test
  mysql-test/suite/rpl/r/rpl_ddl.result
  mysql-test/suite/rpl/r/rpl_failed_optimize.result
  mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result
  mysql-test/suite/rpl/r/rpl_loaddata_map.result
  mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
  mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
  mysql-test/suite/rpl/r/rpl_row_log.result
  mysql-test/suite/rpl/r/rpl_row_log_innodb.result
  mysql-test/suite/rpl/r/rpl_stm_log.result
  mysql-test/suite/rpl/r/rpl_variables.result
  mysql-test/suite/rpl/t/disabled.def
  mysql-test/suite/rpl/t/rpl_incident.test
  mysql-test/suite/rpl/t/rpl_loaddata_map.test
  mysql-test/suite/rpl/t/rpl_stm_log-slave.opt
  mysql-test/suite/rpl/t/rpl_trunc_temp.test
  mysql-test/suite/rpl/t/rpl_variables.test
  mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb_2.test
  mysql-test/suite/rpl_ndb_big/r/rpl_row_basic_7ndb.result
  mysql-test/t/constraints.test
  mysql-test/t/csv.test
  mysql-test/t/disabled.def
  mysql-test/t/events_grant.test
  mysql-test/t/federated.test
  mysql-test/t/func_if.test
  mysql-test/t/func_regexp.test
  mysql-test/t/group_min_max.test
  mysql-test/t/join.test
  mysql-test/t/log_tables.test
  mysql-test/t/lowercase_table3.test
  mysql-test/t/maria.test
  mysql-test/t/maria2.test
  mysql-test/t/myisam.test
  mysql-test/t/partition.test
  mysql-test/t/partition_innodb.test
  mysql-test/t/partition_not_windows.test
  mysql-test/t/partition_symlink.test
  mysql-test/t/perror.test
  mysql-test/t/ps_ddl.test
  mysql-test/t/show_check.test
  mysql-test/t/sp-error.test
  mysql-test/t/sp.test
  mysql-test/t/subselect.test
  mysql-test/t/subselect3.test
  mysql-test/t/subselect_sj.test
  mysql-test/t/subselect_sj2.test
  mysql-test/t/symlink.test
  mysql-test/t/type_bit.test
  mysql-test/t/type_newdecimal.test
  mysql-test/valgrind.supp
  mysys/mf_pack.c
  mysys/my_pread.c
  mysys/my_static.c
  mysys/my_symlink.c
  mysys/safemalloc.c
  netware/BUILD/compile-linux-tools
  netware/BUILD/nwbootstrap
  netware/Makefile.am
  netware/mysql_install_db.c
  scripts/mysql_install_db.sh
  scripts/mysql_system_tables_fix.sql
  sql/backup/be_default.cc
  sql/backup/logger.cc
  sql/backup/stream.cc
  sql/backup/stream_v1.c
  sql/debug_sync.cc
  sql/field.h
  sql/ha_partition.cc
  sql/ha_partition.h
  sql/handler.cc
  sql/handler.h
  sql/item.cc
  sql/item.h
  sql/item_cmpfunc.cc
  sql/item_func.cc
  sql/log_event.cc
  sql/log_event.h
  sql/log_event_old.h
  sql/mdl.cc
  sql/mysql_priv.h
  sql/mysqld.cc
  sql/opt_range.cc
  sql/protocol.cc
  sql/rpl_record.cc
  sql/rpl_record.h
  sql/rpl_tblmap.cc
  sql/rpl_tblmap.h
  sql/rpl_utility.h
  sql/share/errmsg.txt
  sql/sp_head.cc
  sql/sp_pcontext.cc
  sql/sp_rcontext.cc
  sql/sp_rcontext.h
  sql/sql_acl.cc
  sql/sql_base.cc
  sql/sql_binlog.cc
  sql/sql_class.cc
  sql/sql_class.h
  sql/sql_cursor.cc
  sql/sql_db.cc
  sql/sql_error.cc
  sql/sql_error.h
  sql/sql_insert.cc
  sql/sql_lex.h
  sql/sql_list.h
  sql/sql_parse.cc
  sql/sql_partition.cc
  sql/sql_plugin.cc
  sql/sql_select.cc
  sql/sql_select.h
  sql/sql_show.cc
  sql/sql_string.h
  sql/sql_table.cc
  sql/sql_update.cc
  sql/sql_yacc.yy
  sql/structs.h
  sql/table.cc
  sql/table.h
  sql/thr_malloc.cc
  storage/csv/ha_tina.cc
  storage/falcon/BackLog.cpp
  storage/falcon/CMakeLists.txt
  storage/falcon/Configuration.cpp
  storage/falcon/Database.cpp
  storage/falcon/Database.h
  storage/falcon/Dbb.cpp
  storage/falcon/IO.cpp
  storage/falcon/IOx.h
  storage/falcon/Index.cpp
  storage/falcon/Index2RootPage.cpp
  storage/falcon/IndexRootPage.cpp
  storage/falcon/Interlock.h
  storage/falcon/MemMgr.cpp
  storage/falcon/MemMgr.h
  storage/falcon/RepositoryVolume.cpp
  storage/falcon/Section.h
  storage/falcon/Statement.cpp
  storage/falcon/StorageDatabase.cpp
  storage/falcon/StorageDatabase.h
  storage/falcon/StorageHandler.cpp
  storage/falcon/StorageHandler.h
  storage/falcon/StorageTable.cpp
  storage/falcon/StorageTable.h
  storage/falcon/StorageTableShare.cpp
  storage/falcon/StorageTableShare.h
  storage/falcon/Table.cpp
  storage/falcon/Table.h
  storage/falcon/TableSpace.cpp
  storage/falcon/Transaction.cpp
  storage/falcon/Transaction.h
  storage/falcon/TransactionManager.cpp
  storage/falcon/TransactionManager.h
  storage/falcon/ha_falcon.cpp
  storage/falcon/ha_falcon.h
  storage/falcon/plug.in
  storage/federated/ha_federated.cc
  storage/federated/ha_federated.h
  storage/innobase/ha/ha0ha.c
  storage/innobase/handler/ha_innodb.cc
  storage/innobase/lock/lock0lock.c
  storage/maria/CMakeLists.txt
  storage/maria/ha_maria.cc
  storage/maria/ma_blockrec.c
  storage/maria/ma_check.c
  storage/maria/ma_checkpoint.c
  storage/maria/ma_close.c
  storage/maria/ma_create.c
  storage/maria/ma_dbug.c
  storage/maria/ma_delete.c
  storage/maria/ma_extra.c
  storage/maria/ma_info.c
  storage/maria/ma_keycache.c
  storage/maria/ma_locking.c
  storage/maria/ma_loghandler.c
  storage/maria/ma_open.c
  storage/maria/ma_pagecache.c
  storage/maria/ma_recovery.c
  storage/maria/ma_search.c
  storage/maria/ma_state.c
  storage/maria/ma_state.h
  storage/maria/ma_update.c
  storage/maria/ma_write.c
  storage/maria/maria_def.h
  storage/maria/maria_ftdump.c
  storage/maria/maria_pack.c
  storage/myisam/mi_check.c
  storage/myisam/mi_create.c
  storage/myisam/mi_open.c
  storage/myisam/mi_search.c
  storage/myisam/mi_static.c
  storage/myisam/myisamchk.c
  storage/myisam/myisamdef.h
  strings/ctype-simple.c
  strings/ctype-sjis.c
  strings/decimal.c
  support-files/build-tags
  tests/mysql_client_test.c
  mysql-test/suite/falcon/r/falcon_bug_22165.result
  mysql-test/suite/falcon/r/falcon_bug_22173a.result
  mysql-test/suite/falcon/t/falcon_bug_22165.test
  mysql-test/suite/falcon/t/falcon_bug_22173a.test

=== modified file 'sql/backup/stream.cc'
--- a/sql/backup/stream.cc	2008-09-08 07:25:00 +0000
+++ b/sql/backup/stream.cc	2008-09-11 11:14:59 +0000
@@ -591,6 +591,10 @@ void Output_stream::close()
   if (m_fd < 0)
     return;
 
+  /*
+   Note: Even if bstream_close() fails we want to do the lower level clean-up.
+   This is why errors from bstream_close() are ignored.
+  */ 
   bstream_close(this);
 #ifdef HAVE_COMPRESS
   if (m_with_compression)
@@ -632,7 +636,8 @@ void Output_stream::close()
 */
 bool Output_stream::rewind()
 {
-  bstream_close(this);
+  if (bstream_close(this) != BSTREAM_OK)
+    return FALSE;
 
   bool ret= Stream::rewind();
 
@@ -777,6 +782,10 @@ void Input_stream::close()
   if (m_fd < 0)
     return;
 
+  /*
+   Note: Even if bstream_close() fails we want to do the lower level clean-up.
+   This is why errors from bstream_close() are ignored.
+  */ 
   bstream_close(this);
 #ifdef HAVE_COMPRESS
   if (m_with_compression)
@@ -798,7 +807,8 @@ void Input_stream::close()
 */
 bool Input_stream::rewind()
 {
-  bstream_close(this);
+  if (bstream_close(this) != BSTREAM_OK)
+    return FALSE;
 
   bool ret= Stream::rewind();
 

=== modified file 'sql/backup/stream_v1.h'
--- a/sql/backup/stream_v1.h	2008-05-14 00:35:24 +0000
+++ b/sql/backup/stream_v1.h	2008-09-11 09:47:53 +0000
@@ -378,6 +378,16 @@ int bstream_next_chunk(backup_stream*);
   the bytes being written to/read from a backup stream. This is done by
   storing pointers to functions performing basic I/O operations inside
   this structure.
+  
+  Low-level @c write(), @c read() and @c forward() functions should return 
+  BSTREAM_OK on success and BSTREAM_ERROR on error. Additionally, @c read() 
+  should return BSTREAM_EOS if there is no more data in the input stream.
+  
+  Functions @c write() and @c read() should behave like functions
+  @c bstream_write_part() and @c bstream_read_part(), respectively. The latter
+  are documented in stream_v1_transport.c. The only difference is that low-level
+  @c read() doesn't deal with chunk boundaries and never returns BSTREAM_EOC. 
+  However, it should detect end of stream and return BSTREAM_EOS in that case.
  */
 struct st_abstract_stream
 {

=== modified file 'sql/backup/stream_v1_transport.c'
--- a/sql/backup/stream_v1_transport.c	2008-07-19 03:03:39 +0000
+++ b/sql/backup/stream_v1_transport.c	2008-09-11 09:47:53 +0000
@@ -24,6 +24,11 @@
 #endif
 
 /**
+  @brief Set stream to error state and return BSTREAM_ERROR
+*/
+#define SERROR(S)  ((S)->state= ERROR, BSTREAM_ERROR)
+
+/**
   @brief Default size of a stream block.
 
   When opening stream for writing a different size can be specified.
@@ -386,7 +391,11 @@ int write_buffer(backup_stream *s)
   int ret= BSTREAM_OK;
 
   if (s->buf.pos > s->buf.begin)
+  {
     ret= as_write_all(&s->stream,*(bstream_blob*)&s->buf,s->mem);
+    if (ret != BSTREAM_OK)
+      return SERROR(s);
+  }
 
   /*
     Now buffer should be empty. If whole block has been written, reset buffer
@@ -398,7 +407,7 @@ int write_buffer(backup_stream *s)
   else
     s->buf.begin= s->buf.header= s->buf.pos; /* now invariant should hold */
 
-  return ret;
+  return BSTREAM_OK;
 }
 
 /**
@@ -408,18 +417,16 @@ int write_buffer(backup_stream *s)
   is left for fragment`s header.
 */
 static
-int append_to_buffer(backup_stream *s, blob *b)
+void append_to_buffer(backup_stream *s, blob *b)
 {
   if (b->begin >= b->end) /* no data to append */
-    return BSTREAM_OK;
+    return;
 
   if(s->buf.pos == s->buf.header) /* current fragment empty */
     s->buf.pos++;
 
   while ((s->buf.pos < s->buf.end) && (b->begin < b->end))
    *(s->buf.pos++)= *(b->begin++);
-
-  return BSTREAM_OK;
 }
 
 /**
@@ -480,7 +487,7 @@ int close_current_fragment(backup_stream
 
       ret= write_buffer(s); /* this empties the buffer */
       if (ret != BSTREAM_OK)
-        return ret;
+        return SERROR(s);
 
       buf->pos= current_fragment.end;
 
@@ -657,6 +664,8 @@ int load_buffer(backup_stream *s)
     data.end= s->buf.pos + howmuch;
 
     ret= as_read(&s->stream,&data,s->mem);
+    if (ret == BSTREAM_ERROR)
+      return SERROR(s);
 
     s->buf.pos= data.begin;
 
@@ -715,8 +724,7 @@ int load_buffer(backup_stream *s)
     }
     else if (block_size != s->block_size)
     {
-      s->state= ERROR;
-      return BSTREAM_ERROR;
+      return SERROR(s);
     }
     else
       s->init_block_count--;
@@ -751,6 +759,7 @@ int load_buffer(backup_stream *s)
   @retval BSTREAM_OK   next fragment has been entered
   @retval BSTREAM_EOC  the entered fragment is the last fragment of a chunk
   @retval BSTREAM_EOS  there are no more fragments in the stream
+  @retval BSTREAM_ERROR error when reading from underlying stream
 */
 static
 int load_next_fragment(backup_stream *s)
@@ -766,7 +775,7 @@ int load_next_fragment(backup_stream *s)
 
   s->state= NORMAL; /* default, unless changed below */
 
-  ret= read_fragment_header(&s->buf.header);
+  ret= read_fragment_header(&s->buf.header);    // Never errors.
 
   /*
     If buf.header was not moved, it means that the fragment extends to
@@ -916,6 +925,11 @@ int bstream_close(backup_stream *s)
 
   if (s->mode == WRITING)
   {
+    /*
+      Note: even if bstream_end_chunk() or bstream_flush() fail we still try
+      to write the EOS marker and continue with other clean-up. In case of
+      failure s->state will be set to ERROR which is detected later.
+    */ 
     bstream_end_chunk(s);
     bstream_flush(s);
     /* write EOS marker */
@@ -999,7 +1013,7 @@ int bstream_write_part(backup_stream *s,
   {
     ret= bstream_flush(s);
     if (ret != BSTREAM_OK)
-      return ret;
+      return BSTREAM_ERROR;
   }
 
   ASSERT(s->buf.pos < s->buf.end);
@@ -1044,7 +1058,7 @@ int bstream_write_part(backup_stream *s,
 
     ret= write_buffer(s);
     if (ret != BSTREAM_OK)
-      return ret;
+      return BSTREAM_ERROR;
 
     /* write bytes from data blob to fill the block */
     saved_end= data->end;
@@ -1052,7 +1066,7 @@ int bstream_write_part(backup_stream *s,
 
     ret= as_write_all(&s->stream,*data,buf);
     if (ret != BSTREAM_OK)
-      return ret;
+      return SERROR(s);
 
     data->begin= data->end;
     data->end= saved_end;
@@ -1081,13 +1095,15 @@ int bstream_write_part(backup_stream *s,
     /* write contents of the output buffer */
     ret= write_buffer(s);
     if (ret != BSTREAM_OK)
-      return ret;
+      return BSTREAM_ERROR;
 
     /* write remainder of the fragment from data blob */
     saved_end= data->end;
     data->end= data->begin + (fragment.begin - s->buf.pos);
 
     ret= as_write_all(&s->stream,*data,*data);
+    if (ret != BSTREAM_OK)
+      return SERROR(s);
 
     data->begin= data->end;
     data->end= saved_end;
@@ -1112,7 +1128,7 @@ int bstream_write_part(backup_stream *s,
     If nothing else worked, we just append the data to the output buffer
     and return.
    */
-  append_to_buffer(s,data);
+  append_to_buffer(s,data);  // Never errors.
   return BSTREAM_OK;
 }
 
@@ -1185,6 +1201,8 @@ int bstream_end_chunk(backup_stream *s)
   else
   {
     ret= close_current_fragment(s);
+    if (ret != BSTREAM_OK)
+      return BSTREAM_ERROR;
 
     /*
       If the last fragment in the buffer is a small fragment, we can mark it as
@@ -1270,7 +1288,7 @@ int bstream_flush(backup_stream *s)
   /* Otherwise close the current fragment to set its header */
   ret= close_current_fragment(s);
   if (ret != BSTREAM_OK)
-    return ret;
+    return BSTREAM_ERROR;
 
   /*
     If there is only one byte left to the end of block, we fill this byte with
@@ -1335,7 +1353,6 @@ int check_end(backup_stream *s)
     if (s->buf.begin == s->buf.pos)
     {
       ret= load_buffer(s);
-
       if (ret != BSTREAM_OK)
         return ret;
     }
@@ -1423,7 +1440,6 @@ int bstream_read_part(backup_stream *s, 
   if ((s->buf.begin == s->buf.end) || (s->buf.begin == s->buf.header))
   {
     ret= load_buffer(s);
-
     if (ret != BSTREAM_OK)
       return ret;
   }
@@ -1482,10 +1498,11 @@ int bstream_read_part(backup_stream *s, 
     saved= *data;
     data->end= data->begin + howmuch;
 
-    if (as_read(&s->stream, data, buf) == BSTREAM_EOS)
-    {
+    ret= as_read(&s->stream, data, buf);
+    if (ret == BSTREAM_ERROR)
+      return SERROR(s);
+    if (ret == BSTREAM_EOS)
       s->state= EOS;
-    }
 
     s->buf.begin += data->begin - saved.begin;
     s->buf.pos= s->buf.begin;
@@ -1570,7 +1587,6 @@ int bstream_next_chunk(backup_stream *s)
   if (s->buf.begin == s->buf.end)
   {
     ret= load_buffer(s);
-
     if (ret != BSTREAM_OK)
       return ret;
   }
@@ -1592,7 +1608,10 @@ int bstream_next_chunk(backup_stream *s)
     else
     {
       howmuch= s->buf.header - s->buf.pos;
-      as_forward(&s->stream, &howmuch);
+      ret= as_forward(&s->stream, &howmuch);   
+      if (ret != BSTREAM_OK)
+        return SERROR(s);
+
       s->buf.begin= s->buf.pos= s->buf.header;
     }
   }
@@ -1611,7 +1630,6 @@ int bstream_next_chunk(backup_stream *s)
   if (s->buf.pos == s->buf.begin)
   {
     ret= load_buffer(s);
-
     if (ret != BSTREAM_OK)
       return ret;
   }
@@ -1620,7 +1638,8 @@ int bstream_next_chunk(backup_stream *s)
   ASSERT(s->buf.pos > s->buf.header);
 
   ret= load_next_fragment(s);
-
+  if (ret == BSTREAM_ERROR)     // To avoid invariant check below.
+    return BSTREAM_ERROR;
   /* if we hit EOC marker here, we treat it as empty chunk */
   if (ret == BSTREAM_EOC)
     ret= BSTREAM_OK;
@@ -1638,5 +1657,9 @@ int bstream_next_chunk(backup_stream *s)
 */
 int bstream_skip(backup_stream *s, unsigned long int howmuch)
 {
-  return as_forward(&s->stream, &howmuch);
+  int ret= as_forward(&s->stream, &howmuch);
+  if (ret != BSTREAM_OK)
+    return SERROR(s);
+
+  return BSTREAM_OK;
 }

Thread
bzr push into mysql-6.0-backup branch (Rafal.Somla:2692) Rafal Somla11 Sep