Below is the list of changes that have just been committed into a local
5.1 repository of kgeorge. When kgeorge 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, 2007-01-24 15:55:16+02:00, gkodinov@stripped +7 -0
merge of 5.0-opt -> 5.1-opt
mysql-test/r/func_in.result@stripped, 2007-01-24 15:54:58+02:00, gkodinov@stripped +3 -46
merge of 5.0-opt -> 5.1-opt
mysql-test/r/func_str.result@stripped, 2007-01-24 15:54:59+02:00, gkodinov@stripped +6
-6
merge of 5.0-opt -> 5.1-opt
mysql-test/r/range.result@stripped, 2007-01-24 15:55:00+02:00, gkodinov@stripped +1 -1
merge of 5.0-opt -> 5.1-opt
mysql-test/r/view.result@stripped, 2007-01-24 15:55:01+02:00, gkodinov@stripped +44 -10
merge of 5.0-opt -> 5.1-opt
mysql-test/t/func_in.test@stripped, 2007-01-24 15:55:01+02:00, gkodinov@stripped +36 -34
merge of 5.0-opt -> 5.1-opt
sql/item_strfunc.cc@stripped, 2007-01-24 15:55:02+02:00, gkodinov@stripped +0 -13
merge of 5.0-opt -> 5.1-opt
sql/item_strfunc.h@stripped, 2007-01-24 15:55:03+02:00, gkodinov@stripped +0 -4
merge of 5.0-opt -> 5.1-opt
# 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: gkodinov
# Host: macbook.gmz
# Root: /Users/kgeorge/mysql/work/merge-5.1-opt
--- 1.307/sql/item_strfunc.cc 2007-01-23 11:56:51 +02:00
+++ 1.308/sql/item_strfunc.cc 2007-01-24 15:55:02 +02:00
@@ -1706,19 +1706,6 @@ String *Item_func_encode::val_str(String
return res;
}
-void Item_func_encode::print(String *str)
-{
- str->append(func_name());
- str->append('(');
- args[0]->print(str);
- str->append(',');
- str->append('\'');
- str->append(seed);
- str->append('\'');
- str->append(')');
-}
-
-
String *Item_func_decode::val_str(String *str)
{
String *res;
--- 1.124/sql/item_strfunc.h 2007-01-23 12:34:35 +02:00
+++ 1.125/sql/item_strfunc.h 2007-01-24 15:55:03 +02:00
@@ -360,16 +360,12 @@ public:
class Item_func_encode :public Item_str_func
{
- protected:
- SQL_CRYPT sql_crypt;
- String seed;
public:
Item_func_encode(Item *a, Item *seed):
Item_str_func(a, seed) {}
String *val_str(String *);
void fix_length_and_dec();
const char *func_name() const { return "encode"; }
- void print(String *str);
};
--- 1.195/mysql-test/r/view.result 2007-01-23 11:56:45 +02:00
+++ 1.196/mysql-test/r/view.result 2007-01-24 15:55:01 +02:00
@@ -2970,16 +2970,6 @@ UPDATE t1 SET i= f1();
DROP FUNCTION f1;
DROP VIEW v1;
DROP TABLE t1;
-CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT
NULL);
-CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK
OPTION;
-INSERT INTO v1 (val) VALUES (2);
-INSERT INTO v1 (val) VALUES (4);
-INSERT INTO v1 (val) VALUES (6);
-ERROR HY000: CHECK OPTION failed 'test.v1'
-UPDATE v1 SET val=6 WHERE id=2;
-ERROR HY000: CHECK OPTION failed 'test.v1'
-DROP VIEW v1;
-DROP TABLE t1;
DROP VIEW IF EXISTS v1, v2;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT);
@@ -3026,6 +3016,50 @@ x
5
DROP VIEW v;
End of 5.0 tests.
+CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT
NULL);
+CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK
OPTION;
+INSERT INTO v1 (val) VALUES (2);
+INSERT INTO v1 (val) VALUES (4);
+INSERT INTO v1 (val) VALUES (6);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+UPDATE v1 SET val=6 WHERE id=2;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+DROP VIEW v1;
+DROP TABLE t1;
+DROP VIEW IF EXISTS v1, v2;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT);
+CREATE VIEW v1 AS SELECT j FROM t1;
+CREATE VIEW v2 AS SELECT * FROM t1;
+INSERT INTO t1 (j) VALUES (1);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+INSERT INTO v1 (j) VALUES (2);
+# LAST_INSERT_ID() should not change.
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+INSERT INTO v2 (j) VALUES (3);
+# LAST_INSERT_ID() should be updated.
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3
+INSERT INTO v1 (j) SELECT j FROM t1;
+# LAST_INSERT_ID() should not change.
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3
+SELECT * FROM t1;
+i j
+1 1
+2 2
+3 3
+4 1
+5 2
+6 3
+DROP VIEW v1, v2;
+DROP TABLE t1;
DROP DATABASE IF EXISTS `d-1`;
CREATE DATABASE `d-1`;
USE `d-1`;
--- 1.33/mysql-test/r/func_in.result 2007-01-23 11:56:42 +02:00
+++ 1.34/mysql-test/r/func_in.result 2007-01-24 15:54:58 +02:00
@@ -351,49 +351,6 @@ some_id
1
2
drop table t1;
-CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
-INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1);
-CREATE TABLE t2 (a int, b int, PRIMARY KEY (a));
-INSERT INTO t2 VALUES (3,2),(4,2);
-CREATE TABLE t3 (a int PRIMARY KEY);
-INSERT INTO t3 VALUES (1),(2),(3),(4);
-CREATE TABLE t4 (a int PRIMARY KEY);
-INSERT INTO t4 VALUES (1),(2);
-EXPLAIN SELECT STRAIGHT_JOIN * FROM t3
-JOIN t1 ON t3.a=t1.a
-JOIN t2 ON t3.a=t2.a
-JOIN t4 WHERE t4.a IN (t1.b, t2.b);
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t3 index PRIMARY PRIMARY 4 NULL 4 Using index
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t3.a 1
-1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t3.a 1
-1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 2 Range checked for each record (index map: 0x1)
-SELECT STRAIGHT_JOIN * FROM t3
-JOIN t1 ON t3.a=t1.a
-JOIN t2 ON t3.a=t2.a
-JOIN t4 WHERE t4.a IN (t1.b, t2.b);
-a a b a b a
-3 3 1 3 2 1
-3 3 1 3 2 2
-4 4 1 4 2 1
-4 4 1 4 2 2
-EXPLAIN SELECT STRAIGHT_JOIN
-(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
-FROM t3, t1, t2
-WHERE t3.a=t1.a AND t3.a=t2.a;
-id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 index PRIMARY PRIMARY 4 NULL 4 Using index
-1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t3.a 1
-1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t3.a 1
-2 DEPENDENT SUBQUERY t4 index NULL PRIMARY 4 NULL 2 Using where; Using index
-SELECT STRAIGHT_JOIN
-(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
-FROM t3, t1, t2
-WHERE t3.a=t1.a AND t3.a=t2.a;
-(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
-3
-3
-DROP TABLE t1,t2,t3,t4;
End of 5.0 tests
create table t1(f1 char(1));
insert into t1 values ('a'),('b'),('1');
@@ -419,7 +376,7 @@ Warnings:
Warning 1292 Truncated incorrect DOUBLE value: 'b'
explain select f1 from t1 where f1 in ('a',1);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL t1f1_idx 2 NULL 3 Using where; Using index
+1 SIMPLE t1 index t1f1_idx t1f1_idx 2 NULL 3 Using where; Using index
select f1 from t1 where f1 in ('a','b');
f1
a
@@ -448,7 +405,7 @@ Warning 1292 Truncated incorrect DOUBLE
Warning 1292 Truncated incorrect DOUBLE value: 'a'
explain select f2 from t2 where f2 in ('a',2);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 index NULL t2f2 5 NULL 3 Using where; Using index
+1 SIMPLE t2 index t2f2 t2f2 5 NULL 3 Using where; Using index
select f2 from t2 where f2 in ('a','b');
f2
0
@@ -470,6 +427,6 @@ Warning 1292 Truncated incorrect DOUBLE
Warning 1292 Truncated incorrect DOUBLE value: 'b'
explain select f2 from t2 where f2 in (1,'b');
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 index NULL t2f2 5 NULL 3 Using where; Using index
+1 SIMPLE t2 index t2f2 t2f2 5 NULL 3 Using where; Using index
drop table t1, t2;
End of 5.1 tests
--- 1.52/mysql-test/r/range.result 2007-01-23 11:56:43 +02:00
+++ 1.53/mysql-test/r/range.result 2007-01-24 15:55:00 +02:00
@@ -705,7 +705,7 @@ v.oxrootid ='d8c4177d09f8b11f5.52725521'
s.oxleft > v.oxleft AND s.oxleft < v.oxright;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE v ref OXLEFT,OXRIGHT,OXROOTID OXROOTID 34 const 5 Using where
-1 SIMPLE s ALL OXLEFT NULL NULL NULL 5 Range checked for each record (index map: 0x4)
+1 SIMPLE s ALL OXLEFT NULL NULL NULL 6 Range checked for each record (index map: 0x4)
SELECT s.oxid FROM t1 v, t1 s
WHERE s.oxrootid = 'd8c4177d09f8b11f5.52725521' AND
v.oxrootid ='d8c4177d09f8b11f5.52725521' AND
--- 1.25/mysql-test/t/func_in.test 2007-01-23 11:56:45 +02:00
+++ 1.26/mysql-test/t/func_in.test 2007-01-24 15:55:01 +02:00
@@ -254,42 +254,44 @@ select some_id from t1 where some_id not
select some_id from t1 where some_id not in(-4,-1,3423534,2342342);
drop table t1;
+# TODO:Disabled until re-resolution of bug #20420 for 5.1.
+# Results must be the same as in 5.0
+##
+## BUG#20420: optimizer reports wrong keys on left join with IN
+##
+#CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
+#INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1);
#
-# BUG#20420: optimizer reports wrong keys on left join with IN
+#CREATE TABLE t2 (a int, b int, PRIMARY KEY (a));
+#INSERT INTO t2 VALUES (3,2),(4,2),(100,100),(101,201),(102,102);
#
-CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
-INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1);
-
-CREATE TABLE t2 (a int, b int, PRIMARY KEY (a));
-INSERT INTO t2 VALUES (3,2),(4,2);
-
-CREATE TABLE t3 (a int PRIMARY KEY);
-INSERT INTO t3 VALUES (1),(2),(3),(4);
-
-CREATE TABLE t4 (a int PRIMARY KEY);
-INSERT INTO t4 VALUES (1),(2);
-
-EXPLAIN SELECT STRAIGHT_JOIN * FROM t3
- JOIN t1 ON t3.a=t1.a
- JOIN t2 ON t3.a=t2.a
- JOIN t4 WHERE t4.a IN (t1.b, t2.b);
-
-SELECT STRAIGHT_JOIN * FROM t3
- JOIN t1 ON t3.a=t1.a
- JOIN t2 ON t3.a=t2.a
- JOIN t4 WHERE t4.a IN (t1.b, t2.b);
-
-EXPLAIN SELECT STRAIGHT_JOIN
- (SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
- FROM t3, t1, t2
- WHERE t3.a=t1.a AND t3.a=t2.a;
-
-SELECT STRAIGHT_JOIN
- (SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
- FROM t3, t1, t2
- WHERE t3.a=t1.a AND t3.a=t2.a;
-
-DROP TABLE t1,t2,t3,t4;
+#CREATE TABLE t3 (a int PRIMARY KEY);
+#INSERT INTO t3 VALUES (1),(2),(3),(4);
+#
+#CREATE TABLE t4 (a int PRIMARY KEY,b int);
+#INSERT INTO t4 VALUES
(1,1),(2,2),(1000,1000),(1001,1001),(1002,1002),(1003,1003),(1004,1004);
+#
+#EXPLAIN SELECT STRAIGHT_JOIN * FROM t3
+# JOIN t1 ON t3.a=t1.a
+# JOIN t2 ON t3.a=t2.a
+# JOIN t4 WHERE t4.a IN (t1.b, t2.b);
+#
+#SELECT STRAIGHT_JOIN * FROM t3
+# JOIN t1 ON t3.a=t1.a
+# JOIN t2 ON t3.a=t2.a
+# JOIN t4 WHERE t4.a IN (t1.b, t2.b);
+#
+#EXPLAIN SELECT STRAIGHT_JOIN
+# (SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
+# FROM t3, t1, t2
+# WHERE t3.a=t1.a AND t3.a=t2.a;
+#
+#SELECT STRAIGHT_JOIN
+# (SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
+# FROM t3, t1, t2
+# WHERE t3.a=t1.a AND t3.a=t2.a;
+#
+#DROP TABLE t1,t2,t3,t4;
--echo End of 5.0 tests
--- 1.135/mysql-test/r/func_str.result 2007-01-23 12:34:31 +02:00
+++ 1.136/mysql-test/r/func_str.result 2007-01-24 15:54:59 +02:00
@@ -1306,15 +1306,15 @@ Note 1003 select `test`.`t1`.`s` AS `s`
DROP TABLE t1;
create table t1(f1 varchar(4));
explain extended select encode(f1,'zxcv') as 'enc' from t1;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
Warnings:
-Note 1003 select encode(`test`.`t1`.`f1`,'zxcv') AS `enc` from `test`.`t1`
+Note 1003 select encode(`test`.`t1`.`f1`,_latin1'zxcv') AS `enc` from `test`.`t1`
explain extended select decode(f1,'zxcv') as 'enc' from t1;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
Warnings:
-Note 1003 select decode(`test`.`t1`.`f1`,'zxcv') AS `enc` from `test`.`t1`
+Note 1003 select decode(`test`.`t1`.`f1`,_latin1'zxcv') AS `enc` from `test`.`t1`
drop table t1;
End of 4.1 tests
create table t1 (d decimal default null);
| Thread |
|---|
| • bk commit into 5.1 tree (gkodinov:1.2394) | kgeorge | 24 Jan |