List:Commits« Previous MessageNext Message »
From:msvensson Date:May 10 2006 9:48am
Subject:bk commit into 5.1 tree (msvensson:1.2375)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of msvensson. When msvensson 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.2375 06/05/10 09:48:39 msvensson@neptunus.(none) +16 -0
  Merge neptunus.(none):/home/msvensson/mysql/tmp/tmp_merge
  into  neptunus.(none):/home/msvensson/mysql/mysql-5.1

  mysql-test/t/mysqldump.test
    1.96 06/05/10 09:48:34 msvensson@neptunus.(none) +8 -10
    Manual merge

  mysql-test/r/mysqldump.result
    1.105 06/05/10 09:48:34 msvensson@neptunus.(none) +0 -0
    Manual merge

  storage/ndb/src/common/util/NdbSqlUtil.cpp
    1.32 06/05/10 09:47:17 msvensson@neptunus.(none) +0 -0
    Auto merged

  storage/ndb/include/util/NdbSqlUtil.hpp
    1.26 06/05/10 09:47:17 msvensson@neptunus.(none) +0 -0
    Auto merged

  storage/ndb/include/ndbapi/NdbOperation.hpp
    1.37 06/05/10 09:47:17 msvensson@neptunus.(none) +0 -0
    Auto merged

  sql/sql_show.cc
    1.332 06/05/10 09:47:17 msvensson@neptunus.(none) +0 -0
    Auto merged

  sql/set_var.cc
    1.186 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  sql/item_timefunc.cc
    1.114 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/t/ndb_condition_pushdown.test
    1.18 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/t/date_formats.test
    1.18 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/r/symlink.result
    1.24 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/r/ndb_condition_pushdown.result
    1.20 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/r/gis-rtree.result
    1.17 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/r/date_formats.result
    1.23 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/r/auto_increment.result
    1.38 06/05/10 09:47:16 msvensson@neptunus.(none) +0 -0
    Auto merged

  storage/ndb/src/common/util/NdbSqlUtil.cpp
    1.29.2.2 06/05/10 09:47:15 msvensson@neptunus.(none) +0 -0
    Merge rename: ndb/src/common/util/NdbSqlUtil.cpp ->
storage/ndb/src/common/util/NdbSqlUtil.cpp

  storage/ndb/include/util/NdbSqlUtil.hpp
    1.23.2.2 06/05/10 09:47:15 msvensson@neptunus.(none) +0 -0
    Merge rename: ndb/include/util/NdbSqlUtil.hpp ->
storage/ndb/include/util/NdbSqlUtil.hpp

  storage/ndb/include/ndbapi/NdbOperation.hpp
    1.31.3.2 06/05/10 09:47:15 msvensson@neptunus.(none) +0 -0
    Merge rename: ndb/include/ndbapi/NdbOperation.hpp ->
storage/ndb/include/ndbapi/NdbOperation.hpp

  BitKeeper/deleted/.del-changelog-5.0.xml~f4c50926ccdd7434
    1.3 06/05/10 09:47:15 msvensson@neptunus.(none) +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:	msvensson
# Host:	neptunus.(none)
# Root:	/home/msvensson/mysql/mysql-5.1/RESYNC

--- 1.113/sql/item_timefunc.cc	2006-04-24 16:51:16 +02:00
+++ 1.114/sql/item_timefunc.cc	2006-05-10 09:47:16 +02:00
@@ -631,7 +631,8 @@
       case 'r':
 	length= my_sprintf(intbuff, 
 		   (intbuff, 
-		    (l_time->hour < 12) ? "%02d:%02d:%02d AM" : "%02d:%02d:%02d PM",
+		    ((l_time->hour % 24) < 12) ?
+                    "%02d:%02d:%02d AM" : "%02d:%02d:%02d PM",
 		    (l_time->hour+11)%12+1,
 		    l_time->minute,
 		    l_time->second));

--- 1.331/sql/sql_show.cc	2006-05-08 22:05:37 +02:00
+++ 1.332/sql/sql_show.cc	2006-05-10 09:47:17 +02:00
@@ -1022,8 +1022,8 @@
     has_default= (field->type() != FIELD_TYPE_BLOB &&
                   !(field->flags & NO_DEFAULT_VALUE_FLAG) &&
 		  field->unireg_check != Field::NEXT_NUMBER &&
-                  !((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40))
&&
-                    has_now_default));
+                  !((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40))
+		    && has_now_default));
 
     if (has_default)
     {
@@ -1052,8 +1052,7 @@
         packet->append(tmp);
     }
 
-    if (!(thd->variables.sql_mode & MODE_NO_FIELD_OPTIONS) &&
-        table->timestamp_field == field && 
+    if (!limited_mysql_mode && table->timestamp_field == field && 
         field->unireg_check != Field::TIMESTAMP_DN_FIELD)
       packet->append(STRING_WITH_LEN(" ON UPDATE CURRENT_TIMESTAMP"));
 
@@ -1181,6 +1180,25 @@
       packet->append(file->table_type());
 #endif
     }
+
+    /*
+      Add AUTO_INCREMENT=... if there is an AUTO_INCREMENT column,
+      and NEXT_ID > 1 (the default).  We must not print the clause
+      for engines that do not support this as it would break the
+      import of dumps, but as of this writing, the test for whether
+      AUTO_INCREMENT columns are allowed and wether AUTO_INCREMENT=...
+      is supported is identical, !(file->table_flags() & HA_NO_AUTO_INCREMENT))
+      Because of that, we do not explicitly test for the feature,
+      but may extrapolate its existence from that of an AUTO_INCREMENT column.
+    */
+
+    if(create_info.auto_increment_value > 1)
+    {
+      packet->append(" AUTO_INCREMENT=", 16);
+      end= longlong10_to_str(create_info.auto_increment_value, buff,10);
+      packet->append(buff, (uint) (end - buff));
+    }
+
     
     if (share->table_charset &&
 	!(thd->variables.sql_mode & MODE_MYSQL323) &&

--- 1.22/mysql-test/r/date_formats.result	2006-02-08 21:52:04 +01:00
+++ 1.23/mysql-test/r/date_formats.result	2006-05-10 09:47:16 +02:00
@@ -515,3 +515,39 @@
 select str_to_date( 1, IF(1=1,NULL,NULL) );
 str_to_date( 1, IF(1=1,NULL,NULL) )
 NULL
+SELECT TIME_FORMAT("24:00:00", '%r');
+TIME_FORMAT("24:00:00", '%r')
+12:00:00 AM
+SELECT TIME_FORMAT("00:00:00", '%r');
+TIME_FORMAT("00:00:00", '%r')
+12:00:00 AM
+SELECT TIME_FORMAT("12:00:00", '%r');
+TIME_FORMAT("12:00:00", '%r')
+12:00:00 PM
+SELECT TIME_FORMAT("15:00:00", '%r');
+TIME_FORMAT("15:00:00", '%r')
+03:00:00 PM
+SELECT TIME_FORMAT("01:00:00", '%r');
+TIME_FORMAT("01:00:00", '%r')
+01:00:00 AM
+SELECT TIME_FORMAT("25:00:00", '%r');
+TIME_FORMAT("25:00:00", '%r')
+01:00:00 AM
+SELECT TIME_FORMAT("00:00:00", '%l %p');
+TIME_FORMAT("00:00:00", '%l %p')
+12 AM
+SELECT TIME_FORMAT("01:00:00", '%l %p');
+TIME_FORMAT("01:00:00", '%l %p')
+1 AM
+SELECT TIME_FORMAT("12:00:00", '%l %p');
+TIME_FORMAT("12:00:00", '%l %p')
+12 PM
+SELECT TIME_FORMAT("23:00:00", '%l %p');
+TIME_FORMAT("23:00:00", '%l %p')
+11 PM
+SELECT TIME_FORMAT("24:00:00", '%l %p');
+TIME_FORMAT("24:00:00", '%l %p')
+12 AM
+SELECT TIME_FORMAT("25:00:00", '%l %p');
+TIME_FORMAT("25:00:00", '%l %p')
+1 AM

--- 1.17/mysql-test/t/date_formats.test	2006-02-08 21:52:04 +01:00
+++ 1.18/mysql-test/t/date_formats.test	2006-05-10 09:47:16 +02:00
@@ -280,3 +280,33 @@
 select str_to_date( NULL, 1 );
 select str_to_date( 1, IF(1=1,NULL,NULL) );
 # End of 4.1 tests
+
+#
+# Bug#11326
+# TIME_FORMAT using "%r" returns wrong hour using 24:00:00 in TIME column
+#
+# This tests that 24:00:00 does not return PM, when it should be AM.
+# Some other values are being tested same time.
+#
+
+SELECT TIME_FORMAT("24:00:00", '%r');
+SELECT TIME_FORMAT("00:00:00", '%r');
+SELECT TIME_FORMAT("12:00:00", '%r');
+SELECT TIME_FORMAT("15:00:00", '%r');
+SELECT TIME_FORMAT("01:00:00", '%r');
+SELECT TIME_FORMAT("25:00:00", '%r');
+
+#
+# Bug#11324
+# TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column
+#
+# This tests that 24:00:00 does not change to "36:00 AM". Testing
+# some other values same time.
+#
+
+SELECT TIME_FORMAT("00:00:00", '%l %p');
+SELECT TIME_FORMAT("01:00:00", '%l %p');
+SELECT TIME_FORMAT("12:00:00", '%l %p');
+SELECT TIME_FORMAT("23:00:00", '%l %p');
+SELECT TIME_FORMAT("24:00:00", '%l %p');
+SELECT TIME_FORMAT("25:00:00", '%l %p');

--- 1.31.3.1/ndb/include/ndbapi/NdbOperation.hpp	2006-05-05 00:52:29 +02:00
+++ 1.37/storage/ndb/include/ndbapi/NdbOperation.hpp	2006-05-10 09:47:17 +02:00
@@ -274,28 +274,27 @@
    * @note There are 10 versions of equal() with
    *       slightly different parameters.
    *
-   * @note When using equal() with a string (char *) as
-   *       second argument, the string needs to be padded with 
-   *       zeros in the following sense:
-   *       @code
-   *       // Equal needs strings to be padded with zeros
-   *       strncpy(buf, str, sizeof(buf));
-   *       NdbOperation->equal("Attr1", buf);
-   *       @endcode
-   *
-   * 
+   * @note  If attribute has fixed size, value must include all bytes.
+   *        In particular a Char must be native-blank padded.
+   *        If attribute has variable size, value must start with
+   *        1 or 2 little-endian length bytes (2 if Long*).
    * 
    * @param   anAttrName   Attribute name 
    * @param   aValue       Attribute value.
-   * @param   len          Attribute length expressed in bytes.
    * @return               -1 if unsuccessful. 
    */
-  int  equal(const char* anAttrName, const char* aValue, Uint32 len = 0);
-  int  equal(const char* anAttrName, Uint32 aValue);	
+#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
+  int  equal(const char* anAttrName, const char* aValue, Uint32 len);
+#endif
+  int  equal(const char* anAttrName, const char* aValue);
   int  equal(const char* anAttrName, Int32 aValue);	
+  int  equal(const char* anAttrName, Uint32 aValue);	
   int  equal(const char* anAttrName, Int64 aValue);	
   int  equal(const char* anAttrName, Uint64 aValue);
-  int  equal(Uint32 anAttrId, const char* aValue, Uint32 len = 0);
+#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
+  int  equal(Uint32 anAttrId, const char* aValue, Uint32 len);
+#endif
+  int  equal(Uint32 anAttrId, const char* aValue);
   int  equal(Uint32 anAttrId, Int32 aValue);	
   int  equal(Uint32 anAttrId, Uint32 aValue);	
   int  equal(Uint32 anAttrId, Int64 aValue);	
@@ -372,28 +371,34 @@
    *
    * @note There are 14 versions of NdbOperation::setValue with
    *       slightly different parameters.
+   *
+   * @note See note under equal() about value format and length.
    * 
    * @param anAttrName     Name (or Id) of attribute.
    * @param aValue         Attribute value to set.
-   * @param len            Attribute length expressed in bytes.
    * @return               -1 if unsuccessful.
    */
-  virtual int  setValue(const char* anAttrName, const char* aValue, 
-			Uint32 len = 0);
-  virtual int  setValue(const char* anAttrName, Int32 aValue);
-  virtual int  setValue(const char* anAttrName, Uint32 aValue);
-  virtual int  setValue(const char* anAttrName, Uint64 aValue);
-  virtual int  setValue(const char* anAttrName, Int64 aValue);
-  virtual int  setValue(const char* anAttrName, float aValue);
-  virtual int  setValue(const char* anAttrName, double aValue);
-
-  virtual int  setValue(Uint32 anAttrId, const char* aValue, Uint32 len = 0);
-  virtual int  setValue(Uint32 anAttrId, Int32 aValue);
-  virtual int  setValue(Uint32 anAttrId, Uint32 aValue);
-  virtual int  setValue(Uint32 anAttrId, Uint64 aValue);
-  virtual int  setValue(Uint32 anAttrId, Int64 aValue);
-  virtual int  setValue(Uint32 anAttrId, float aValue);
-  virtual int  setValue(Uint32 anAttrId, double aValue);
+#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
+  int  setValue(const char* anAttrName, const char* aValue, Uint32 len);
+#endif
+  int  setValue(const char* anAttrName, const char* aValue);
+  int  setValue(const char* anAttrName, Int32 aValue);
+  int  setValue(const char* anAttrName, Uint32 aValue);
+  int  setValue(const char* anAttrName, Int64 aValue);
+  int  setValue(const char* anAttrName, Uint64 aValue);
+  int  setValue(const char* anAttrName, float aValue);
+  int  setValue(const char* anAttrName, double aValue);
+
+#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
+  int  setValue(Uint32 anAttrId, const char* aValue, Uint32 len);
+#endif
+  int  setValue(Uint32 anAttrId, const char* aValue);
+  int  setValue(Uint32 anAttrId, Int32 aValue);
+  int  setValue(Uint32 anAttrId, Uint32 aValue);
+  int  setValue(Uint32 anAttrId, Int64 aValue);
+  int  setValue(Uint32 anAttrId, Uint64 aValue);
+  int  setValue(Uint32 anAttrId, float aValue);
+  int  setValue(Uint32 anAttrId, double aValue);
 
   /**
    * This method replaces getValue/setValue for blobs.  It creates
@@ -867,9 +872,9 @@
  *	These are support methods only used locally in this class.
 ******************************************************************************/
 
-  virtual int equal_impl(const NdbColumnImpl*,const char* aValue, Uint32 len);
+  virtual int equal_impl(const NdbColumnImpl*,const char* aValue);
   virtual NdbRecAttr* getValue_impl(const NdbColumnImpl*, char* aValue = 0);
-  int setValue(const NdbColumnImpl* anAttrObject, const char* aValue, Uint32 len);
+  int setValue(const NdbColumnImpl* anAttrObject, const char* aValue);
   NdbBlob* getBlobHandle(NdbTransaction* aCon, const NdbColumnImpl* anAttrObject);
   int incValue(const NdbColumnImpl* anAttrObject, Uint32 aValue);
   int incValue(const NdbColumnImpl* anAttrObject, Uint64 aValue);
@@ -888,6 +893,7 @@
   int insertKEYINFO(const char* aValue,	
 		    Uint32 aStartPosition,	
 		    Uint32 aKeyLenInByte);
+  void reorderKEYINFO();
   
   virtual void setErrorCode(int aErrorCode);
   virtual void setErrorCodeAbort(int aErrorCode);
@@ -907,7 +913,7 @@
   Uint32 ptr2int() { return theReceiver.getId(); };
 
   // get table or index key from prepared signals
-  int getKeyFromTCREQ(Uint32* data, unsigned size);
+  int getKeyFromTCREQ(Uint32* data, Uint32 & size);
 
 /******************************************************************************
  * These are the private variables that are defined in the operation objects.
@@ -985,6 +991,7 @@
   Uint8  theDirtyIndicator;	 // Indicator of whether dirty operation
   Uint8  theInterpretIndicator;  // Indicator of whether interpreted operation
   Int8  theDistrKeyIndicator_;    // Indicates whether distr. key is used
+  Uint8  m_no_disk_flag;          
 
   Uint16 m_tcReqGSN;
   Uint16 m_keyInfoGSN;
@@ -1133,6 +1140,13 @@
 
 inline
 int
+NdbOperation::equal(const char* anAttrName, const char* aValue, Uint32 len)
+{
+  return equal(anAttrName, aValue);
+}
+
+inline
+int
 NdbOperation::equal(const char* anAttrName, Int32 aPar)
 {
   return equal(anAttrName, (const char*)&aPar, (Uint32)4);
@@ -1161,6 +1175,13 @@
 
 inline
 int
+NdbOperation::equal(Uint32 anAttrId, const char* aValue, Uint32 len)
+{
+  return equal(anAttrId, aValue);
+}
+
+inline
+int
 NdbOperation::equal(Uint32 anAttrId, Int32 aPar)
 {
   return equal(anAttrId, (const char*)&aPar, (Uint32)4);
@@ -1189,6 +1210,13 @@
 
 inline
 int
+NdbOperation::setValue(const char* anAttrName, const char* aValue, Uint32 len)
+{
+  return setValue(anAttrName, aValue);
+}
+
+inline
+int
 NdbOperation::setValue(const char* anAttrName, Int32 aPar)
 {
   return setValue(anAttrName, (const char*)&aPar, (Uint32)4);
@@ -1227,6 +1255,13 @@
 NdbOperation::setValue(const char* anAttrName, double aPar)
 {
   return setValue(anAttrName, (const char*)&aPar, (Uint32)8);
+}
+
+inline
+int
+NdbOperation::setValue(Uint32 anAttrId, const char* aValue, Uint32 len)
+{
+  return setValue(anAttrId, aValue);
 }
 
 inline

--- 1.37/mysql-test/r/auto_increment.result	2006-01-23 12:16:57 +01:00
+++ 1.38/mysql-test/r/auto_increment.result	2006-05-10 09:47:16 +02:00
@@ -355,6 +355,30 @@
 Table	Op	Msg_type	Msg_text
 test.t1	check	status	OK
 DROP TABLE IF EXISTS t1;
+CREATE TABLE `t1` (
+t1_name VARCHAR(255) DEFAULT NULL,
+t1_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+KEY (t1_name),
+PRIMARY KEY (t1_id)
+) AUTO_INCREMENT = 1000;
+INSERT INTO t1 (t1_name) VALUES('MySQL');
+INSERT INTO t1 (t1_name) VALUES('MySQL');
+INSERT INTO t1 (t1_name) VALUES('MySQL');
+SELECT * from t1;
+t1_name	t1_id
+MySQL	1000
+MySQL	1001
+MySQL	1002
+SHOW CREATE TABLE `t1`;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `t1_name` varchar(255) default NULL,
+  `t1_id` int(10) unsigned NOT NULL auto_increment,
+  PRIMARY KEY  (`t1_id`),
+  KEY `t1_name` (`t1_name`)
+) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
+DROP TABLE `t1`;
+End of 4.1 tests
 CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY
KEY  (`a`),UNIQUE KEY `b` (`b`));
 insert into t1 (b) values (1);
 replace into t1 (b) values (2), (1), (3);

--- 1.23/mysql-test/r/symlink.result	2006-02-22 10:09:51 +01:00
+++ 1.24/mysql-test/r/symlink.result	2006-05-10 09:47:16 +02:00
@@ -40,7 +40,7 @@
   `b` char(16) NOT NULL,
   `c` int(11) NOT NULL,
   PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX
DIRECTORY='MYSQLTEST_VARDIR/run/'
+) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA
DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
 alter table t9 rename t8, add column d int not null;
 alter table t8 rename t7;
 rename table t7 to t9;
@@ -53,7 +53,7 @@
   `c` int(11) NOT NULL,
   `d` int(11) NOT NULL,
   PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX
DIRECTORY='MYSQLTEST_VARDIR/run/'
+) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA
DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
 Got one of the listed errors
 Got one of the listed errors
 Got one of the listed errors
@@ -71,7 +71,7 @@
   `c` int(11) NOT NULL,
   `d` int(11) NOT NULL,
   PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX
DIRECTORY='MYSQLTEST_VARDIR/run/'
+) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA
DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
 drop database mysqltest;
 create table t1 (a int not null) engine=myisam;
 show create table t1;

--- 1.185/sql/set_var.cc	2006-05-01 09:14:28 +02:00
+++ 1.186/sql/set_var.cc	2006-05-10 09:47:16 +02:00
@@ -3413,9 +3413,9 @@
 		MODE_NO_KEY_OPTIONS | MODE_NO_TABLE_OPTIONS |
 		MODE_NO_FIELD_OPTIONS | MODE_NO_AUTO_CREATE_USER);
   if (sql_mode & MODE_MYSQL40)
-    sql_mode|= MODE_NO_FIELD_OPTIONS | MODE_HIGH_NOT_PRECEDENCE;
+    sql_mode|= MODE_HIGH_NOT_PRECEDENCE;
   if (sql_mode & MODE_MYSQL323)
-    sql_mode|= MODE_NO_FIELD_OPTIONS | MODE_HIGH_NOT_PRECEDENCE;
+    sql_mode|= MODE_HIGH_NOT_PRECEDENCE;
   if (sql_mode & MODE_TRADITIONAL)
     sql_mode|= (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES |
                 MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE |

--- 1.19/mysql-test/r/ndb_condition_pushdown.result	2006-03-29 16:28:33 +02:00
+++ 1.20/mysql-test/r/ndb_condition_pushdown.result	2006-05-10 09:47:16 +02:00
@@ -1782,5 +1782,65 @@
 a	b
 1	jonas
 3	johan
+drop table t1;
+create table t1 (a int, b varchar(3), primary key using hash(a))
+engine=ndb;
+insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
+set engine_condition_pushdown = off;
+select * from t1 where b like 'ab';
+a	b
+2	ab
+select * from t1 where b like 'ab' or b like 'ab';
+a	b
+2	ab
+select * from t1 where b like 'abc';
+a	b
+3	abc
+select * from t1 where b like 'abc' or b like 'abc';
+a	b
+3	abc
+set engine_condition_pushdown = on;
+select * from t1 where b like 'ab';
+a	b
+2	ab
+select * from t1 where b like 'ab' or b like 'ab';
+a	b
+2	ab
+select * from t1 where b like 'abc';
+a	b
+3	abc
+select * from t1 where b like 'abc' or b like 'abc';
+a	b
+3	abc
+drop table t1;
+create table t1 (a int, b char(3), primary key using hash(a))
+engine=ndb;
+insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
+set engine_condition_pushdown = off;
+select * from t1 where b like 'ab';
+a	b
+2	ab
+select * from t1 where b like 'ab' or b like 'ab';
+a	b
+2	ab
+select * from t1 where b like 'abc';
+a	b
+3	abc
+select * from t1 where b like 'abc' or b like 'abc';
+a	b
+3	abc
+set engine_condition_pushdown = on;
+select * from t1 where b like 'ab';
+a	b
+2	ab
+select * from t1 where b like 'ab' or b like 'ab';
+a	b
+2	ab
+select * from t1 where b like 'abc';
+a	b
+3	abc
+select * from t1 where b like 'abc' or b like 'abc';
+a	b
+3	abc
 set engine_condition_pushdown = @old_ecpd;
 DROP TABLE t1,t2,t3,t4,t5;

--- 1.17/mysql-test/t/ndb_condition_pushdown.test	2006-03-29 16:28:33 +02:00
+++ 1.18/mysql-test/t/ndb_condition_pushdown.test	2006-05-10 09:47:16 +02:00
@@ -1649,5 +1649,42 @@
 explain select * from t5 where b like '%jo%';
 select * from t5 where b like '%jo%' order by a;
 
+# bug#17421 -1
+drop table t1;
+create table t1 (a int, b varchar(3), primary key using hash(a))
+engine=ndb;
+insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
+# in TUP the constants 'ab' 'abc' were expected in varchar format
+# "like" returned error which became "false"
+# scan filter negates "or" which exposes the bug
+set engine_condition_pushdown = off;
+select * from t1 where b like 'ab';
+select * from t1 where b like 'ab' or b like 'ab';
+select * from t1 where b like 'abc';
+select * from t1 where b like 'abc' or b like 'abc';
+set engine_condition_pushdown = on;
+select * from t1 where b like 'ab';
+select * from t1 where b like 'ab' or b like 'ab';
+select * from t1 where b like 'abc';
+select * from t1 where b like 'abc' or b like 'abc';
+
+# bug#17421 -2
+drop table t1;
+create table t1 (a int, b char(3), primary key using hash(a))
+engine=ndb;
+insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
+# test that incorrect MySQL behaviour is preserved
+# 'ab ' LIKE 'ab' is true in MySQL
+set engine_condition_pushdown = off;
+select * from t1 where b like 'ab';
+select * from t1 where b like 'ab' or b like 'ab';
+select * from t1 where b like 'abc';
+select * from t1 where b like 'abc' or b like 'abc';
+set engine_condition_pushdown = on;
+select * from t1 where b like 'ab';
+select * from t1 where b like 'ab' or b like 'ab';
+select * from t1 where b like 'abc';
+select * from t1 where b like 'abc' or b like 'abc';
+
 set engine_condition_pushdown = @old_ecpd;
 DROP TABLE t1,t2,t3,t4,t5;

--- 1.104/mysql-test/r/mysqldump.result	2006-05-04 05:28:20 +02:00
+++ 1.105/mysql-test/r/mysqldump.result	2006-05-10 09:48:34 +02:00
@@ -1701,6 +1701,44 @@
 a	b
 Osnabrück	Köln
 drop table t1;
+create table `t1` (
+t1_name varchar(255) default null,
+t1_id int(10) unsigned not null auto_increment,
+key (t1_name),
+primary key (t1_id)
+) auto_increment = 1000 default charset=latin1;
+insert into t1 (t1_name) values('bla');
+insert into t1 (t1_name) values('bla');
+insert into t1 (t1_name) values('bla');
+select * from t1;
+t1_name	t1_id
+bla	1000
+bla	1001
+bla	1002
+show create table `t1`;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `t1_name` varchar(255) default NULL,
+  `t1_id` int(10) unsigned NOT NULL auto_increment,
+  PRIMARY KEY  (`t1_id`),
+  KEY `t1_name` (`t1_name`)
+) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
+DROP TABLE `t1`;
+select * from t1;
+t1_name	t1_id
+bla	1000
+bla	1001
+bla	1002
+show create table `t1`;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `t1_name` varchar(255) default NULL,
+  `t1_id` int(10) unsigned NOT NULL auto_increment,
+  PRIMARY KEY  (`t1_id`),
+  KEY `t1_name` (`t1_name`)
+) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
+drop table `t1`;
+End of 4.1 tests
 create table t1 (a binary(1), b blob);
 insert into t1 values ('','');
 

--- 1.95/mysql-test/t/mysqldump.test	2006-05-03 23:12:21 +02:00
+++ 1.96/mysql-test/t/mysqldump.test	2006-05-10 09:48:34 +02:00
@@ -713,6 +713,35 @@
 drop table t1;
 
 #
+# BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
+#
+create table `t1` (
+    t1_name varchar(255) default null,
+    t1_id int(10) unsigned not null auto_increment,
+    key (t1_name),
+    primary key (t1_id)
+) auto_increment = 1000 default charset=latin1;
+
+insert into t1 (t1_name) values('bla');
+insert into t1 (t1_name) values('bla');
+insert into t1 (t1_name) values('bla');
+
+select * from t1;
+
+show create table `t1`;
+
+--exec $MYSQL_DUMP --skip-comments test t1 > $MYSQLTEST_VARDIR/tmp/bug19025.sql
+DROP TABLE `t1`;
+
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug19025.sql
+
+select * from t1;
+
+show create table `t1`;
+
+drop table `t1`;
+
+--echo End of 4.1 tests
 # Bug #13318: Bad result with empty field and --hex-blob
 # 
 create table t1 (a binary(1), b blob);
@@ -721,7 +750,6 @@
 --exec $MYSQL_DUMP --skip-comments --hex-blob test t1
 drop table t1;
 
-# End of 4.1 tests
 
 #
 # dump of view

--- 1.16/mysql-test/r/gis-rtree.result	2006-02-22 10:09:49 +01:00
+++ 1.17/mysql-test/r/gis-rtree.result	2006-05-10 09:47:16 +02:00
@@ -294,7 +294,7 @@
   `g` geometry NOT NULL,
   PRIMARY KEY (`fid`),
   SPATIAL KEY `g` (`g`(32))
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
+) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=latin1
 SELECT count(*) FROM t2;
 count(*)
 100
Thread
bk commit into 5.1 tree (msvensson:1.2375)msvensson10 May