From: Date: February 7 2006 12:03am Subject: bk commit into 4.1 tree (tomas:1.2473) BUG#17081 List-Archive: http://lists.mysql.com/commits/2214 X-Bug: 17081 Message-Id: <20060206230347.2EC80817B5@poseidon.mysql.com> Below is the list of changes that have just been committed into a local 4.1 repository of tomas. When tomas does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.2473 06/02/07 00:03:39 tomas@stripped +4 -0 Bug #17154 load data infile of char values into a table of char(PK) hangs Bug #17158 load data infile of char values into table of char with no (PK) fails to load Bug #17081 Doing "LOAD DATA INFILE" directly after delete can cause missing data mysql-test/t/ndb_load.test 1.1 06/02/07 00:03:34 tomas@stripped +24 -0 New BitKeeper file ``mysql-test/t/ndb_load.test'' mysql-test/r/ndb_load.result 1.1 06/02/07 00:03:34 tomas@stripped +80 -0 New BitKeeper file ``mysql-test/r/ndb_load.result'' sql/sql_load.cc 1.87 06/02/07 00:03:34 tomas@stripped +5 -2 Bug #17154 load data infile of char values into a table of char(PK) hangs Bug #17158 load data infile of char values into table of char with no (PK) fails to load Bug #17081 Doing "LOAD DATA INFILE" directly after delete can cause missing data sql/ha_ndbcluster.cc 1.177 06/02/07 00:03:34 tomas@stripped +18 -4 Bug #17154 load data infile of char values into a table of char(PK) hangs Bug #17158 load data infile of char values into table of char with no (PK) fails to load Bug #17081 Doing "LOAD DATA INFILE" directly after delete can cause missing data mysql-test/t/ndb_load.test 1.0 06/02/07 00:03:34 tomas@stripped +0 -0 BitKeeper file /home/tomas/mysql-4.1/mysql-test/t/ndb_load.test mysql-test/r/ndb_load.result 1.0 06/02/07 00:03:34 tomas@stripped +0 -0 BitKeeper file /home/tomas/mysql-4.1/mysql-test/r/ndb_load.result # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: tomas # Host: poseidon.ndb.mysql.com # Root: /home/tomas/mysql-4.1 --- 1.86/sql/sql_load.cc 2005-10-25 01:27:29 +02:00 +++ 1.87/sql/sql_load.cc 2006-02-07 00:03:34 +01:00 @@ -285,8 +285,11 @@ else error=read_sep_field(thd,info,table,fields,read_info,*enclosed, skip_lines); - if (table->file->end_bulk_insert()) - error=1; /* purecov: inspected */ + if (table->file->end_bulk_insert() && !error) + { + table->file->print_error(my_errno, MYF(0)); + error= 1; + } table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY); table->next_number_field=0; } --- 1.176/sql/ha_ndbcluster.cc 2005-11-24 16:21:43 +01:00 +++ 1.177/sql/ha_ndbcluster.cc 2006-02-07 00:03:34 +01:00 @@ -3046,9 +3046,23 @@ "rows_inserted:%d, bulk_insert_rows: %d", (int) m_rows_inserted, (int) m_bulk_insert_rows)); m_bulk_insert_not_flushed= FALSE; - if (execute_no_commit(this,trans) != 0) { - no_uncommitted_rows_execute_failure(); - my_errno= error= ndb_err(trans); + if (m_transaction_on) + { + if (execute_no_commit(this, trans) != 0) + { + no_uncommitted_rows_execute_failure(); + my_errno= error= ndb_err(trans); + } + } + else + { + if (execute_commit(this, trans) != 0) + { + no_uncommitted_rows_execute_failure(); + my_errno= error= ndb_err(trans); + } + int res= trans->restart(); + DBUG_ASSERT(res == 0); } } @@ -4867,7 +4881,7 @@ } bool ha_ndbcluster::has_transactions() { - return m_transaction_on; + return TRUE; } const char* ha_ndbcluster::index_type(uint key_number) { --- New file --- +++ mysql-test/r/ndb_load.result 06/02/07 00:03:34 DROP TABLE IF EXISTS t1; CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=NDB; LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 ; ERROR 23000: Can't write; duplicate key in table 't1' DROP TABLE t1; CREATE TABLE t1 (word CHAR(20) NOT NULL) ENGINE=NDB; LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 ; SELECT * FROM t1 ORDER BY word; word Aarhus Aarhus Aaron Aaron Ababa Ababa aback aback abaft abaft abandon abandon abandoned abandoned abandoning abandoning abandonment abandonment abandons abandons abase abased abasement abasements abases abash abashed abashes abashing abasing abate abated abatement abatements abater abates abating Abba abbe abbey abbeys abbot abbots Abbott abbreviate abbreviated abbreviates abbreviating abbreviation abbreviations Abby abdomen abdomens abdominal abduct abducted abduction abductions abductor abductors abducts Abe abed Abel Abelian Abelson Aberdeen Abernathy aberrant aberration DROP TABLE t1; --- New file --- +++ mysql-test/t/ndb_load.test 06/02/07 00:03:34 -- source include/have_ndb.inc -- source include/not_embedded.inc --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings # # Basic test for different types of loading data # # should give duplicate key CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=NDB; --error 1022 LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 ; DROP TABLE t1; # now without a primary key we should be ok CREATE TABLE t1 (word CHAR(20) NOT NULL) ENGINE=NDB; LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 ; SELECT * FROM t1 ORDER BY word; DROP TABLE t1; # End of 4.1 tests