List:Internals« Previous MessageNext Message »
From:Sergei Golubchik Date:August 22 2004 2:23pm
Subject:bk commit into 4.1 tree (serg:1.2007)
View as plain text  
Below is the list of changes that have just been committed into a local
4.1 repository of serg. When serg 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://www.mysql.com/doc/I/n/Installing_source_tree.html

ChangeSet
  1.2007 04/08/22 14:23:52 serg@stripped +2 -0
  check for mysql_bin_log.is_open() before my_b_tell(&thd->transaction.trans_log
  in ha_commit_trans - why it didn't crash earlier ?

  sql/handler.cc
    1.139 04/08/22 14:23:47 serg@stripped +11 -11
    check for mysql_bin_log.is_open() before my_b_tell(&thd->transaction.trans_log
    in ha_commit_trans - why it didn't crash earlier ?

  mysql-test/r/null.result
    1.25 04/08/22 14:23:47 serg@stripped +19 -0
    after merge fix

# 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:	serg
# Host:	serg.mylan
# Root:	/usr/home/serg/Abk/mysql-4.1

--- 1.138/sql/handler.cc	Fri Aug 20 22:54:36 2004
+++ 1.139/sql/handler.cc	Sun Aug 22 14:23:47 2004
@@ -472,7 +472,7 @@
 int ha_commit_trans(THD *thd, THD_TRANS* trans)
 {
   int error=0;
-  DBUG_ENTER("ha_commit");
+  DBUG_ENTER("ha_commit_trans");
 #ifdef USING_TRANSACTIONS
   if (opt_using_transactions)
   {
@@ -480,8 +480,8 @@
     bool operation_done= 0, need_start_waiters= 0;
 
     /* If transaction has done some updates to tables */
-    if (trans == &thd->transaction.all &&
-	my_b_tell(&thd->transaction.trans_log))
+    if (trans == &thd->transaction.all && mysql_bin_log.is_open()
&&
+        my_b_tell(&thd->transaction.trans_log))
     {
       if (error= wait_if_global_read_lock(thd, 0, 0))
       {
@@ -576,7 +576,7 @@
 int ha_rollback_trans(THD *thd, THD_TRANS *trans)
 {
   int error=0;
-  DBUG_ENTER("ha_rollback");
+  DBUG_ENTER("ha_rollback_trans");
 #ifdef USING_TRANSACTIONS
   if (opt_using_transactions)
   {
@@ -587,7 +587,7 @@
       if ((error=ndbcluster_rollback(thd, trans->ndb_tid)))
       {
 	if (error == -1)
-	  my_error(ER_ERROR_DURING_ROLLBACK, MYF(0));	  
+	  my_error(ER_ERROR_DURING_ROLLBACK, MYF(0));
         error=1;
       }
       trans->ndb_tid = 0;
@@ -768,12 +768,12 @@
 {
   bool result=0;
 #ifdef HAVE_BERKELEY_DB
-  if ((have_berkeley_db == SHOW_OPTION_YES) && 
+  if ((have_berkeley_db == SHOW_OPTION_YES) &&
       berkeley_flush_logs())
     result=1;
 #endif
 #ifdef HAVE_INNOBASE_DB
-  if ((have_innodb == SHOW_OPTION_YES) && 
+  if ((have_innodb == SHOW_OPTION_YES) &&
       innobase_flush_logs())
     result=1;
 #endif
@@ -868,7 +868,7 @@
 int handler::ha_open(const char *name, int mode, int test_if_locked)
 {
   int error;
-  DBUG_ENTER("handler::open");
+  DBUG_ENTER("handler::ha_open");
   DBUG_PRINT("enter",("name: %s  db_type: %d  db_stat: %d  mode: %d  lock_test: %d",
 		      name, table->db_type, table->db_stat, mode,
 		      test_if_locked));
@@ -967,7 +967,7 @@
 {
   longlong nr;
   THD *thd;
-  DBUG_ENTER("update_auto_increment");
+  DBUG_ENTER("handler::update_auto_increment");
   if (table->next_number_field->val_int() != 0 ||
       table->auto_increment_field_not_null &&
       current_thd->variables.sql_mode & MODE_NO_AUTO_VALUE_ON_ZERO)
@@ -1025,7 +1025,7 @@
 
 void handler::print_error(int error, myf errflag)
 {
-  DBUG_ENTER("print_error");
+  DBUG_ENTER("handler::print_error");
   DBUG_PRINT("enter",("error: %d",error));
 
   int textno=ER_GET_ERRNO;
@@ -1164,7 +1164,7 @@
 
 uint handler::get_dup_key(int error)
 {
-  DBUG_ENTER("get_dup_key");
+  DBUG_ENTER("handler::get_dup_key");
   table->file->errkey  = (uint) -1;
   if (error == HA_ERR_FOUND_DUPP_KEY || error == HA_ERR_FOUND_DUPP_UNIQUE)
     info(HA_STATUS_ERRKEY | HA_STATUS_NO_LOCK);

--- 1.24/mysql-test/r/null.result	Sun Aug 22 12:47:06 2004
+++ 1.25/mysql-test/r/null.result	Sun Aug 22 14:23:47 2004
@@ -156,3 +156,22 @@
 select cast(NULL as signed);
 cast(NULL as signed)
 NULL
+create table t1(i int, key(i));
+insert into t1 values(1);
+insert into t1 select i*2 from t1;
+insert into t1 select i*2 from t1;
+insert into t1 select i*2 from t1;
+insert into t1 select i*2 from t1;
+insert into t1 select i*2 from t1;
+insert into t1 select i*2 from t1;
+insert into t1 select i*2 from t1;
+insert into t1 select i*2 from t1;
+insert into t1 select i*2 from t1;
+explain select * from t1 where i=2 or i is null;
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	SIMPLE	t1	ref_or_null	i	i	5	const	10	Using where; Using index
+alter table t1 change i i int not null;
+explain select * from t1 where i=2 or i is null;
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	SIMPLE	t1	ref	i	i	4	const	7	Using where; Using index
+drop table t1;
Thread
bk commit into 4.1 tree (serg:1.2007)Sergei Golubchik22 Aug