List:Commits« Previous MessageNext Message »
From:monty Date:June 30 2006 3:47pm
Subject:bk commit into 5.0 tree (monty:1.2207)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of monty. When monty 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.2207 06/06/30 18:46:59 monty@stripped +8 -0
  Merge mysql.com:/home/my/mysql-4.1
  into  mysql.com:/home/my/mysql-5.0

  tests/mysql_client_test.c
    1.188 06/06/30 18:46:56 monty@stripped +65 -59
    manual merge

  sql/ha_ndbcluster.cc
    1.268 06/06/30 18:46:56 monty@stripped +39 -35
    Manual merge
    Change %ll -> llstr()

  mysql-test/t/mysqldump.test
    1.94 06/06/30 18:46:56 monty@stripped +0 -1
    Manual merge
    (Now we have same code as in 4.1 and 5.1)

  mysql-test/r/key.result
    1.31 06/06/30 18:46:56 monty@stripped +2 -3
    Manual merge

  sql/table.cc
    1.224 06/06/30 18:34:03 monty@stripped +0 -0
    Auto merged

  mysql-test/t/key.test
    1.26 06/06/30 18:34:03 monty@stripped +0 -0
    Auto merged

  mysql-test/mysql-test-run.sh
    1.308 06/06/30 18:34:03 monty@stripped +0 -0
    Auto merged

  libmysql/libmysql.c
    1.244 06/06/30 18:34:03 monty@stripped +0 -0
    Auto merged

# 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:	monty
# Host:	narttu.mysql.fi
# Root:	/home/my/mysql-5.0/RESYNC

--- 1.243/libmysql/libmysql.c	2006-05-15 19:07:52 +03:00
+++ 1.244/libmysql/libmysql.c	2006-06-30 18:34:03 +03:00
@@ -2391,10 +2391,9 @@
 
 static void store_param_date(NET *net, MYSQL_BIND *param)
 {
-  MYSQL_TIME *tm= (MYSQL_TIME *) param->buffer;
-  tm->hour= tm->minute= tm->second= 0;
-  tm->second_part= 0;
-  net_store_datetime(net, tm);
+  MYSQL_TIME tm= *((MYSQL_TIME *) param->buffer);
+  tm.hour= tm.minute= tm.second= tm.second_part= 0;
+  net_store_datetime(net, &tm);
 }
 
 static void store_param_datetime(NET *net, MYSQL_BIND *param)

--- 1.307/mysql-test/mysql-test-run.sh	2006-06-27 15:55:59 +03:00
+++ 1.308/mysql-test/mysql-test-run.sh	2006-06-30 18:34:03 +03:00
@@ -1381,16 +1381,16 @@
 
   if [ x$DO_DDD = x1 ]
   then
-    $ECHO "set args $master_args" > $GDB_MASTER_INIT
+    $ECHO "set args $master_args" > $GDB_MASTER_INIT$1
     manager_launch master ddd -display $DISPLAY --debugger \
-    "gdb -x $GDB_MASTER_INIT" $MASTER_MYSQLD
+    "gdb -x $GDB_MASTER_INIT$1" $MASTER_MYSQLD
   elif [ x$DO_GDB = x1 ]
   then
     if [ x$MANUAL_GDB = x1 ]
     then
-      $ECHO "set args $master_args" > $GDB_MASTER_INIT
+      $ECHO "set args $master_args" > $GDB_MASTER_INIT$1
       $ECHO "To start gdb for the master , type in another window:"
-      $ECHO "cd $CWD ; gdb -x $GDB_MASTER_INIT $MASTER_MYSQLD"
+      $ECHO "cd $CWD ; gdb -x $GDB_MASTER_INIT$1 $MASTER_MYSQLD"
       wait_for_master=1500
     else
       ( $ECHO set args $master_args;
@@ -1402,9 +1402,9 @@
 end
 r
 EOF
-      fi )  > $GDB_MASTER_INIT
+      fi )  > $GDB_MASTER_INIT$1
       manager_launch master $XTERM -display $DISPLAY \
-      -title "Master" -e gdb -x $GDB_MASTER_INIT $MASTER_MYSQLD
+      -title "Master" -e gdb -x $GDB_MASTER_INIT$1 $MASTER_MYSQLD
     fi
   else
     manager_launch master $MASTER_MYSQLD $master_args
@@ -2088,13 +2088,7 @@
   fi
 
   start_manager
-
-# Do not automagically start daemons if we are in gdb or running only one test
-# case
-  if [ -z "$DO_GDB" ] && [ -z "$DO_DDD" ]
-  then
-    mysql_start
-  fi
+  mysql_start
   $ECHO  "Loading Standard Test Databases"
   mysql_loadstd
 fi

--- 1.223/sql/table.cc	2006-06-26 05:48:10 +03:00
+++ 1.224/sql/table.cc	2006-06-30 18:34:03 +03:00
@@ -678,6 +678,27 @@
       if (outparam->key_info[key].flags & HA_FULLTEXT)
 	outparam->key_info[key].algorithm= HA_KEY_ALG_FULLTEXT;
 
+      if (primary_key >= MAX_KEY && (keyinfo->flags & HA_NOSAME))
+      {
+	/*
+	  If the UNIQUE key doesn't have NULL columns and is not a part key
+	  declare this as a primary key.
+	*/
+	primary_key=key;
+	for (i=0 ; i < keyinfo->key_parts ;i++)
+	{
+	  uint fieldnr= key_part[i].fieldnr;
+	  if (!fieldnr ||
+	      outparam->field[fieldnr-1]->null_ptr ||
+	      outparam->field[fieldnr-1]->key_length() !=
+	      key_part[i].length)
+	  {
+	    primary_key=MAX_KEY;		// Can't be used
+	    break;
+	  }
+	}
+      }
+
       for (i=0 ; i < keyinfo->key_parts ; key_part++,i++)
       {
 	if (new_field_pack_flag <= 1)

--- 1.267/sql/ha_ndbcluster.cc	2006-06-30 01:02:09 +03:00
+++ 1.268/sql/ha_ndbcluster.cc	2006-06-30 18:46:56 +03:00
@@ -2254,9 +2254,10 @@
   {
     Ndb *ndb= get_ndb();
     Uint64 next_val= (Uint64) table->next_number_field->val_int() + 1;
+    char buff[22];
     DBUG_PRINT("info", 
-               ("Trying to set next auto increment value to %llu",
-                (ulonglong) next_val));
+               ("Trying to set next auto increment value to %s",
+                llstr(next_val, buff)));
     if (ndb->setAutoIncrementValue((const NDBTAB *) m_table, next_val, TRUE)
         == -1)
       ERR_RETURN(ndb->getNdbError());
@@ -2582,13 +2583,15 @@
   {
     // Table with hidden primary key
     int hidden_no= table->s->fields;
+    char buff[22];
     const NDBTAB *tab= (const NDBTAB *) m_table;
     const NDBCOL *hidden_col= tab->getColumn(hidden_no);
     const NdbRecAttr* rec= m_value[hidden_no].rec;
     DBUG_ASSERT(rec);
-    DBUG_PRINT("hidden", ("%d: %s \"%llu\"", hidden_no, 
-			  hidden_col->getName(), rec->u_64_value()));
-  } 
+    DBUG_PRINT("hidden", ("%d: %s \"%s\"", hidden_no, 
+			  hidden_col->getName(),
+                          llstr(rec->u_64_value(), buff)));
+  }
   print_results();
 #endif
   DBUG_VOID_RETURN;
@@ -4101,10 +4104,11 @@
   // Set autoincrement
   if (field->flags & AUTO_INCREMENT_FLAG) 
   {
+    char buff[22];
     col.setAutoIncrement(TRUE);
     ulonglong value= info->auto_increment_value ?
       info->auto_increment_value : (ulonglong) 1;
-    DBUG_PRINT("info", ("Autoincrement key, initial: %llu", value));
+    DBUG_PRINT("info", ("Autoincrement key, initial: %s", llstr(value, buff)));
     col.setAutoIncrementInitialValue(value);
   }
   else
@@ -5493,8 +5497,9 @@
     if (share->commit_count != 0)
     {
       *commit_count= share->commit_count;
-      DBUG_PRINT("info", ("Getting commit_count: %llu from share",
-                          share->commit_count));
+      char buff[22];
+      DBUG_PRINT("info", ("Getting commit_count: %s from share",
+                          llstr(share->commit_count, buff)));
       pthread_mutex_unlock(&share->mutex);
       free_share(share);
       DBUG_RETURN(0);
@@ -5518,7 +5523,9 @@
   pthread_mutex_lock(&share->mutex);
   if (share->commit_count_lock == lock)
   {
-    DBUG_PRINT("info", ("Setting commit_count to %llu", stat.commit_count));
+    char buff[22];
+    DBUG_PRINT("info", ("Setting commit_count to %s",
+                        llstr(stat.commit_count, buff)));
     share->commit_count= stat.commit_count;
     *commit_count= stat.commit_count;
   }
@@ -5568,13 +5575,12 @@
                                    char *full_name, uint full_name_len,
                                    ulonglong *engine_data)
 {
-  DBUG_ENTER("ndbcluster_cache_retrieval_allowed");
-
   Uint64 commit_count;
   bool is_autocommit= !(thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN));
   char *dbname= full_name;
   char *tabname= dbname+strlen(dbname)+1;
-
+  char buff[22], buff2[22];
+  DBUG_ENTER("ndbcluster_cache_retrieval_allowed");
   DBUG_PRINT("enter", ("dbname: %s, tabname: %s, is_autocommit: %d",
                        dbname, tabname, is_autocommit));
 
@@ -5590,8 +5596,8 @@
     DBUG_PRINT("exit", ("No, could not retrieve commit_count"));
     DBUG_RETURN(FALSE);
   }
-  DBUG_PRINT("info", ("*engine_data: %llu, commit_count: %llu",
-                      *engine_data, commit_count));
+  DBUG_PRINT("info", ("*engine_data: %s, commit_count: %s",
+                      llstr(*engine_data, buff), llstr(commit_count, buff2)));
   if (commit_count == 0)
   {
     *engine_data= 0; /* invalidate */
@@ -5605,7 +5611,8 @@
      DBUG_RETURN(FALSE);
    }
 
-  DBUG_PRINT("exit", ("OK to use cache, engine_data: %llu", *engine_data));
+  DBUG_PRINT("exit", ("OK to use cache, engine_data: %s",
+                      llstr(*engine_data, buff)));
   DBUG_RETURN(TRUE);
 }
 
@@ -5638,10 +5645,10 @@
                                           qc_engine_callback *engine_callback,
                                           ulonglong *engine_data)
 {
-  DBUG_ENTER("ha_ndbcluster::register_query_cache_table");
-
+  Uint64 commit_count;
+  char buff[22];
   bool is_autocommit= !(thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN));
-
+  DBUG_ENTER("ha_ndbcluster::register_query_cache_table");
   DBUG_PRINT("enter",("dbname: %s, tabname: %s, is_autocommit: %d",
 		      m_dbname, m_tabname, is_autocommit));
 
@@ -5651,7 +5658,6 @@
     DBUG_RETURN(FALSE);
   }
 
-  Uint64 commit_count;
   if (ndb_get_commitcount(thd, m_dbname, m_tabname, &commit_count))
   {
     *engine_data= 0;
@@ -5660,7 +5666,7 @@
   }
   *engine_data= commit_count;
   *engine_callback= ndbcluster_cache_retrieval_allowed;
-  DBUG_PRINT("exit", ("commit_count: %llu", commit_count));
+  DBUG_PRINT("exit", ("commit_count: %s", llstr(commit_count, buff)));
   DBUG_RETURN(commit_count > 0);
 }
 
@@ -5841,12 +5847,13 @@
 ndb_get_table_statistics(Ndb* ndb, const char * table,
                          struct Ndb_statistics * ndbstat)
 {
-  DBUG_ENTER("ndb_get_table_statistics");
-  DBUG_PRINT("enter", ("table: %s", table));
   NdbTransaction* pTrans;
   NdbError error;
   int retries= 10;
   int retry_sleep= 30 * 1000; /* 30 milliseconds */
+  char buff[22], buff2[22], buff3[22], buff4[22];
+  DBUG_ENTER("ndb_get_table_statistics");
+  DBUG_PRINT("enter", ("table: %s", table));
 
   do
   {
@@ -5923,10 +5930,13 @@
     ndbstat->row_size= sum_row_size;
     ndbstat->fragment_memory= sum_mem;
 
-    DBUG_PRINT("exit", ("records: %llu commits: %llu "
-                        "row_size: %llu mem: %llu count: %u",
-			sum_rows, sum_commits, sum_row_size,
-                        sum_mem, count));
+    DBUG_PRINT("exit", ("records: %s  commits: %s "
+                        "row_size: %s  mem: %s count: %u",
+			llstr(sum_rows, buff),
+                        llstr(sum_commits, buff2),
+                        llstr(sum_row_size, buff3),
+                        llstr(sum_mem, buff4),
+                        count));
 
     DBUG_RETURN(0);
 retry:
@@ -6461,9 +6471,12 @@
 
       if (ndb_get_table_statistics(ndb, tabname, &stat) == 0)
       {
+        char buff[22], buff2[22];
         DBUG_PRINT("ndb_util_thread",
-                   ("Table: %s, commit_count: %llu, rows: %llu",
-                    share->table_name, stat.commit_count, stat.row_count));
+                   ("Table: %s  commit_count: %s  rows: %s",
+                    share->table_name,
+                    llstr(stat.commit_count, buff),
+                    llstr(stat.row_count, buff2));
       }
       else
       {

--- 1.30/mysql-test/r/key.result	2006-06-23 18:36:08 +03:00
+++ 1.31/mysql-test/r/key.result	2006-06-30 18:46:56 +03:00
@@ -336,8 +336,16 @@
 UNIQUE i2idx (i2));
 desc t1;
 Field	Type	Null	Key	Default	Extra
-i1	int(11)	NO	UNI		
+i1	int(11)	NO	PRI		
 i2	int(11)	NO	UNI		
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `i1` int(11) NOT NULL default '0',
+  `i2` int(11) NOT NULL default '0',
+  UNIQUE KEY `i1idx` (`i1`),
+  UNIQUE KEY `i2idx` (`i2`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
 create table t1 (
 c1 int,

--- 1.25/mysql-test/t/key.test	2006-06-23 13:53:39 +03:00
+++ 1.26/mysql-test/t/key.test	2006-06-30 18:34:03 +03:00
@@ -334,6 +334,7 @@
  UNIQUE i1idx (i1),
  UNIQUE i2idx (i2));
 desc t1;
+show create table t1;
 drop table t1;
 
 #

--- 1.93/mysql-test/t/mysqldump.test	2006-06-26 20:44:19 +03:00
+++ 1.94/mysql-test/t/mysqldump.test	2006-06-30 18:46:56 +03:00
@@ -610,7 +610,7 @@
 # BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
 #
 
---exec $MYSQL_MY_PRINT_DEFAULTS --config-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
+--exec $MYSQL_MY_PRINT_DEFAULTS --defaults-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
 
 
 #

--- 1.187/tests/mysql_client_test.c	2006-06-19 00:16:16 +03:00
+++ 1.188/tests/mysql_client_test.c	2006-06-30 18:46:56 +03:00
@@ -14882,11 +14882,13 @@
 
     printf("success.  All queries found intact in the log.\n");
 
-  } else {
+  }
+  else
+  {
     fprintf(stderr, "Could not find the log file, var/log/master.log, so "
-        "test_bug17667 is \ninconclusive.  Run test from the "
-        "mysql-test/mysql-test-run* program \nto set up the correct "
-        "environment for this test.\n\n");
+            "test_bug17667 is \ninconclusive.  Run test from the "
+            "mysql-test/mysql-test-run* program \nto set up the correct "
+            "environment for this test.\n\n");
   }
 
   if (log_file != NULL)
@@ -14896,7 +14898,8 @@
 
 
 /*
-  Bug#14169: type of group_concat() result changed to blob if tmp_table was used
+  Bug#14169: type of group_concat() result changed to blob if tmp_table was
+  used
 */
 static void test_bug14169()
 {
@@ -14929,7 +14932,62 @@
 
   rc= mysql_query(mysql, "drop table t1");
   myquery(rc);
-}/*
+}
+
+
+/*
+  Bug#20152: mysql_stmt_execute() writes to MYSQL_TYPE_DATE buffer
+*/
+
+static void test_bug20152()
+{
+  MYSQL_BIND bind[1];
+  MYSQL_STMT *stmt;
+  MYSQL_TIME tm;
+  int rc;
+  const char *query= "INSERT INTO t1 (f1) VALUES (?)";
+
+  myheader("test_bug20152");
+
+  memset(bind, 0, sizeof(bind));
+  bind[0].buffer_type= MYSQL_TYPE_DATE;
+  bind[0].buffer= (void*)&tm;
+
+  tm.year = 2006;
+  tm.month = 6;
+  tm.day = 18;
+  tm.hour = 14;
+  tm.minute = 9;
+  tm.second = 42;
+
+  rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
+  myquery(rc);
+  rc= mysql_query(mysql, "CREATE TABLE t1 (f1 DATE)");
+  myquery(rc);
+
+  stmt= mysql_stmt_init(mysql);
+  rc= mysql_stmt_prepare(stmt, query, strlen(query));
+  check_execute(stmt, rc);
+  rc= mysql_stmt_bind_param(stmt, bind);
+  check_execute(stmt, rc);
+  rc= mysql_stmt_execute(stmt);
+  check_execute(stmt, rc);
+  rc= mysql_stmt_close(stmt);
+  check_execute(stmt, rc);
+  rc= mysql_query(mysql, "DROP TABLE t1");
+  myquery(rc);
+
+  if (tm.hour == 14 && tm.minute == 9 && tm.second == 42) {
+    if (!opt_silent)
+      printf("OK!");
+  } else {
+    printf("[14:09:42] != [%02d:%02d:%02d]\n", tm.hour, tm.minute, tm.second);
+    DIE_UNLESS(0==1);
+  }
+}
+
+
+/*
   Read and parse arguments and MySQL options from my.cnf
 */
 
@@ -15193,6 +15251,7 @@
   { "test_bug12744", test_bug12744 },
   { "test_bug16143", test_bug16143 },
   { "test_bug15613", test_bug15613 },
+  { "test_bug20152", test_bug20152 },
   { "test_bug14169", test_bug14169 },
   { "test_bug17667", test_bug17667 },
   { 0, 0 }
Thread
bk commit into 5.0 tree (monty:1.2207)monty30 Jun