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) | msvensson | 10 May |