List:Commits« Previous MessageNext Message »
From:Martin Skold Date:September 12 2006 4:10pm
Subject:bk commit into 5.0 tree (mskold:1.2264)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of marty. When marty 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@stripped, 2006-09-12 16:10:03+02:00, mskold@stripped +2 -0
  Merge mskold@stripped:/home/bk/mysql-5.0
  into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0
  MERGE: 1.2216.53.2

  mysql-test/r/ndb_condition_pushdown.result@stripped, 2006-09-12 16:09:56+02:00,
mskold@stripped +0 -0
    Auto merged
    MERGE: 1.20.1.2

  sql/ha_ndbcluster.cc@stripped, 2006-09-12 16:09:56+02:00, mskold@stripped +0 -0
    Auto merged
    MERGE: 1.275.1.1

# 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:	mskold
# Host:	linux.site
# Root:	/windows/Linux_space/MySQL/mysql-5.0/RESYNC

--- 1.278/sql/ha_ndbcluster.cc	2006-09-12 16:10:14 +02:00
+++ 1.279/sql/ha_ndbcluster.cc	2006-09-12 16:10:14 +02:00
@@ -6894,11 +6894,13 @@ void ndb_serialize_cond(const Item *item
             DBUG_PRINT("info", ("FIELD_ITEM"));
             DBUG_PRINT("info", ("table %s", tab->getName()));
             DBUG_PRINT("info", ("column %s", field->field_name));
+            DBUG_PRINT("info", ("type %d", field->type()));
             DBUG_PRINT("info", ("result type %d", field->result_type()));
             
             // Check that we are expecting a field and with the correct
             // result type
             if (context->expecting(Item::FIELD_ITEM) &&
+                context->expecting_field_type(field->type()) &&
                 (context->expecting_field_result(field->result_type()) ||
                  // Date and year can be written as string or int
                  ((type == MYSQL_TYPE_TIME ||
@@ -7118,6 +7120,9 @@ void ndb_serialize_cond(const Item *item
                                               func_item);      
             context->expect(Item::STRING_ITEM);
             context->expect(Item::FIELD_ITEM);
+            context->expect_only_field_type(MYSQL_TYPE_STRING);
+            context->expect_field_type(MYSQL_TYPE_VAR_STRING);
+            context->expect_field_type(MYSQL_TYPE_VARCHAR);
             context->expect_field_result(STRING_RESULT);
             context->expect(Item::FUNC_ITEM);
             break;

--- 1.21/mysql-test/r/ndb_condition_pushdown.result	2006-09-12 16:10:14 +02:00
+++ 1.22/mysql-test/r/ndb_condition_pushdown.result	2006-09-12 16:10:14 +02:00
@@ -1782,6 +1782,28 @@ select * from t5 where b like '%jo%' ord
 a	b
 1	jonas
 3	johan
+set engine_condition_pushdown = off;
+select auto from t1 where date_time like '1902-02-02 %' order by auto;
+auto
+2
+select auto from t1 where date_time not like '1902-02-02 %' order by auto;
+auto
+3
+4
+set engine_condition_pushdown = on;
+explain select auto from t1 where date_time like '1902-02-02 %';
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	3	Using where
+select auto from t1 where date_time like '1902-02-02 %' order by auto;
+auto
+2
+explain select auto from t1 where date_time not like '1902-02-02 %';
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	3	Using where
+select auto from t1 where date_time not like '1902-02-02 %' order by auto;
+auto
+3
+4
 drop table t1;
 create table t1 (a int, b varchar(3), primary key using hash(a))
 engine=ndb;
Thread
bk commit into 5.0 tree (mskold:1.2264)Martin Skold12 Sep