Below is the list of changes that have just been committed into a local
5.0 repository of iggy. When iggy 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-11-30 13:09:48-05:00, iggy@stripped +3 -0
Bug#20836 Selecting into variables results in wrong results being returned
- Post-merge cleanup.
- Disabled this bug's test for 5.x until 16861 is resolved.
mysql-test/r/distinct.result@stripped, 2006-11-30 13:09:45-05:00,
iggy@stripped +0 -59
Bug#20836 Selecting into variables results in wrong results being returned
- Remove results for this bug. When bug number 16861 is resolved, the result
should match the 4.1 result.
mysql-test/t/distinct.test@stripped, 2006-11-30 13:09:46-05:00,
iggy@stripped +63 -61
Bug#20836 Selecting into variables results in wrong results being returned
- Disable the test for 20836. This test should remain disabled until bug 16861
is fixed. The results for the test should be the same as in 4.1.
sql/sql_class.cc@stripped, 2006-11-30 13:09:46-05:00, iggy@stripped +5
-7
Bug#20836 Selecting into variables results in wrong results being returned
- Post-merge cleanup.
# 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: iggy
# Host: rolltop.ignatz42.dyndns.org
# Root: /mnt/storeage/bug20836/my50-bug20836
--- 1.254/sql/sql_class.cc 2006-11-30 13:09:53 -05:00
+++ 1.255/sql/sql_class.cc 2006-11-30 13:09:53 -05:00
@@ -1853,13 +1853,12 @@ bool select_dumpvar::send_data(List<Item
{
if (mv->local)
{
- if (thd->spcont->set_variable(current_thd, yy->get_var_idx(),
- it.ref()))
- DBUG_RETURN(1);
+ if (thd->spcont->set_variable(thd, mv->offset, &item))
+ DBUG_RETURN(1);
}
else
{
- Item_func_set_user_var *suv= new Item_func_set_user_var(*ls, item);
+ Item_func_set_user_var *suv= new Item_func_set_user_var(mv->s, item);
/*
Item_func_set_user_var can't substitute something else on its
@@ -1868,9 +1867,8 @@ bool select_dumpvar::send_data(List<Item
we do not check var->fixed
*/
- suv->fix_fields(thd, (TABLE_LIST *) thd->lex->select_lex.table_list.first,
- 0);
- suv->check();
+ suv->fix_fields(thd, 0);
+ suv->check(0);
suv->update();
}
}
--- 1.48/mysql-test/r/distinct.result 2006-11-30 13:09:53 -05:00
+++ 1.49/mysql-test/r/distinct.result 2006-11-30 13:09:53 -05:00
@@ -607,62 +607,3 @@ id select_type table type possible_keys
SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
a a
DROP TABLE t1;
-DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
-default NULL);
-INSERT INTO t1 VALUES (1,1,'ORANGE');
-INSERT INTO t1 VALUES (2,2,'APPLE');
-INSERT INTO t1 VALUES (3,2,'APPLE');
-INSERT INTO t1 VALUES (4,3,'PEAR');
-SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
-'APPLE';
-SELECT @v1, @v2;
-@v1 @v2
-2 APPLE
-SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
-fruit_name HAVING fruit_name = 'APPLE';
-SELECT @v3, @v4;
-@v3 @v4
-2 APPLE
-SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
-fruit_name = 'APPLE';
-SELECT @v5, @v6, @v7, @v8;
-@v5 @v6 @v7 @v8
-2 APPLE 2 APPLE
-SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
-WHERE fruit_name = 'APPLE';
-SELECT @v5, @v6, @v7, @v8, @v9, @v10;
-@v5 @v6 @v7 @v8 @v9 @v10
-2 APPLE 2 APPLE 4 APPLEAPPLE
-SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
-@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
-SELECT @v11, @v12, @v13, @v14;
-@v11 @v12 @v13 @v14
-4 APPLEAPPLE 4 APPLEAPPLE
-SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
-SELECT @v15, @v16;
-@v15 @v16
-4 APPLEAPPLE
-SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
-'APPLE';
-SELECT @v17, @v18;
-@v17 @v18
-4 Bob
-DROP TABLE IF EXISTS t2;
-CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
-default NULL);
-SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
-'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
-SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
-'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
-SELECT @v19, @v20;
-@v19 @v20
-2 APPLE
-SELECT * FROM t2;
-fruit_id fruit_name
-2 APPLE
-2 APPLE
-DROP TABLE t1;
-DROP TABLE t2;
--- 1.26/mysql-test/t/distinct.test 2006-11-30 13:09:53 -05:00
+++ 1.27/mysql-test/t/distinct.test 2006-11-30 13:09:53 -05:00
@@ -437,68 +437,70 @@ EXPLAIN SELECT DISTINCT a,a FROM t1 WHER
SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
DROP TABLE t1;
+# The test case for bug#20836 should be re-enabled when bug#16861 is resolved
+# The results for the test should be the same as in 4.1.
#
#Bug #20836: Selecting into variables results in wrong results being returned
#
---disable_warnings
-DROP TABLE IF EXISTS t1;
---enable_warnings
-
-CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
-default NULL);
-
-INSERT INTO t1 VALUES (1,1,'ORANGE');
-INSERT INTO t1 VALUES (2,2,'APPLE');
-INSERT INTO t1 VALUES (3,2,'APPLE');
-INSERT INTO t1 VALUES (4,3,'PEAR');
-
-SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
-'APPLE';
-SELECT @v1, @v2;
-
-SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
-fruit_name HAVING fruit_name = 'APPLE';
-SELECT @v3, @v4;
-
-SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
-fruit_name = 'APPLE';
-SELECT @v5, @v6, @v7, @v8;
-
-SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
-WHERE fruit_name = 'APPLE';
-SELECT @v5, @v6, @v7, @v8, @v9, @v10;
-
-SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
-@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
-SELECT @v11, @v12, @v13, @v14;
-
-SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
-SELECT @v15, @v16;
-
-SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
-'APPLE';
-SELECT @v17, @v18;
-
---disable_warnings
-DROP TABLE IF EXISTS t2;
---enable_warnings
-
-CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
-default NULL);
-
-SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
-'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
---exec rm $MYSQL_TEST_DIR/var/tmp/data1.tmp
-
-SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
-'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
---exec rm $MYSQL_TEST_DIR/var/tmp/data2.tmp
-
-SELECT @v19, @v20;
-SELECT * FROM t2;
-
-DROP TABLE t1;
-DROP TABLE t2;
+#--disable_warnings
+#DROP TABLE IF EXISTS t1;
+#--enable_warnings
+#
+#CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
+#default NULL);
+#
+#INSERT INTO t1 VALUES (1,1,'ORANGE');
+#INSERT INTO t1 VALUES (2,2,'APPLE');
+#INSERT INTO t1 VALUES (3,2,'APPLE');
+#INSERT INTO t1 VALUES (4,3,'PEAR');
+#
+#SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
+#'APPLE';
+#SELECT @v1, @v2;
+#
+#SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
+#fruit_name HAVING fruit_name = 'APPLE';
+#SELECT @v3, @v4;
+#
+#SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
+#fruit_name = 'APPLE';
+#SELECT @v5, @v6, @v7, @v8;
+#
+#SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
+#WHERE fruit_name = 'APPLE';
+#SELECT @v5, @v6, @v7, @v8, @v9, @v10;
+#
+#SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
+#@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
+#SELECT @v11, @v12, @v13, @v14;
+#
+#SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
+#SELECT @v15, @v16;
+#
+#SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
+#'APPLE';
+#SELECT @v17, @v18;
+#
+#--disable_warnings
+#DROP TABLE IF EXISTS t2;
+#--enable_warnings
+#
+#CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
+#default NULL);
+#
+#SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
+#'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
+#LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
+#--exec rm $MYSQL_TEST_DIR/var/tmp/data1.tmp
+#
+#SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
+#'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
+#LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
+#--exec rm $MYSQL_TEST_DIR/var/tmp/data2.tmp
+#
+#SELECT @v19, @v20;
+#SELECT * FROM t2;
+#
+#DROP TABLE t1;
+#DROP TABLE t2;
| Thread |
|---|
| • bk commit into 5.0 tree (iggy:1.2296) BUG#20836 | Ignacio Galarza | 30 Nov |