#At file:///home/gluh/MySQL/mysql-5.5/ based on revid:sven.sandberg@stripped
3435 Sergey Glukhov 2011-04-12 [merge]
5.1 -> 5.5 merge
@ mysql-test/r/func_group.result
5.1 -> 5.5 merge
@ mysql-test/r/func_in.result
5.1 -> 5.5 merge
@ mysql-test/t/func_group.test
5.1 -> 5.5 merge
@ mysql-test/t/func_in.test
5.1 -> 5.5 merge
@ sql/field.cc
5.1 -> 5.5 merge
@ sql/item_cmpfunc.cc
5.1 -> 5.5 merge
@ sql/item_sum.cc
5.1 -> 5.5 merge
modified:
mysql-test/r/func_group.result
mysql-test/r/func_in.result
mysql-test/t/func_group.test
mysql-test/t/func_in.test
sql/field.cc
sql/item_cmpfunc.cc
sql/item_sum.cc
=== modified file 'mysql-test/r/func_group.result'
--- a/mysql-test/r/func_group.result 2011-04-02 19:41:10 +0000
+++ b/mysql-test/r/func_group.result 2011-04-12 10:13:15 +0000
@@ -1746,6 +1746,17 @@ MAX(LENGTH(a)) LENGTH(MAX(a)) MIN(a) MAX
20 20 18446668621106209655 18446668621106209655 18446668621106209655 18446668621106209655
DROP TABLE t1;
#
+# Bug #11766270 59343: YEAR(4): INCORRECT RESULT AND VALGRIND WARNINGS WITH MIN/MAX, UNION
+#
+CREATE TABLE t1(f1 YEAR(4));
+INSERT INTO t1 VALUES (0000),(2001);
+(SELECT MAX(f1) FROM t1) UNION (SELECT MAX(f1) FROM t1);
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def MAX(f1) MAX(f1) 13 4 4 Y 32864 0 63
+MAX(f1)
+2001
+DROP TABLE t1;
+#
End of 5.1 tests
#
# Bug#52123 Assertion failed: aggregator == aggr->Aggrtype(),
=== modified file 'mysql-test/r/func_in.result'
--- a/mysql-test/r/func_in.result 2010-06-22 18:53:08 +0000
+++ b/mysql-test/r/func_in.result 2011-04-12 09:51:36 +0000
@@ -770,4 +770,10 @@ CASE a WHEN a THEN a END
NULL
DROP TABLE t1;
#
+# Bug #11766212 59270: NOT IN (YEAR( ... ), ... ) PRODUCES MANY VALGRIND WARNINGS
+#
+SELECT 1 IN (YEAR(FROM_UNIXTIME(NULL)) ,1);
+1 IN (YEAR(FROM_UNIXTIME(NULL)) ,1)
+1
+#
End of 5.1 tests
=== modified file 'mysql-test/t/func_group.test'
--- a/mysql-test/t/func_group.test 2011-04-02 19:41:10 +0000
+++ b/mysql-test/t/func_group.test 2011-04-12 10:13:15 +0000
@@ -1128,6 +1128,18 @@ SELECT MAX(LENGTH(a)), LENGTH(MAX(a)), M
DROP TABLE t1;
--echo #
+--echo # Bug #11766270 59343: YEAR(4): INCORRECT RESULT AND VALGRIND WARNINGS WITH MIN/MAX, UNION
+--echo #
+
+CREATE TABLE t1(f1 YEAR(4));
+INSERT INTO t1 VALUES (0000),(2001);
+--enable_metadata
+(SELECT MAX(f1) FROM t1) UNION (SELECT MAX(f1) FROM t1);
+--disable_metadata
+DROP TABLE t1;
+
+
+--echo #
--echo End of 5.1 tests
###
=== modified file 'mysql-test/t/func_in.test'
--- a/mysql-test/t/func_in.test 2010-06-22 18:53:08 +0000
+++ b/mysql-test/t/func_in.test 2011-04-12 09:51:36 +0000
@@ -555,5 +555,11 @@ SELECT CASE a WHEN a THEN a END FROM t1
DROP TABLE t1;
--echo #
+--echo # Bug #11766212 59270: NOT IN (YEAR( ... ), ... ) PRODUCES MANY VALGRIND WARNINGS
+--echo #
+
+SELECT 1 IN (YEAR(FROM_UNIXTIME(NULL)) ,1);
+
+--echo #
--echo End of 5.1 tests
=== modified file 'sql/field.cc'
--- a/sql/field.cc 2011-02-08 15:47:33 +0000
+++ b/sql/field.cc 2011-04-12 10:13:15 +0000
@@ -5382,6 +5382,7 @@ double Field_year::val_real(void)
longlong Field_year::val_int(void)
{
ASSERT_COLUMN_MARKED_FOR_READ;
+ DBUG_ASSERT(field_length == 2 || field_length == 4);
int tmp= (int) ptr[0];
if (field_length != 4)
tmp%=100; // Return last 2 char
@@ -5394,6 +5395,7 @@ longlong Field_year::val_int(void)
String *Field_year::val_str(String *val_buffer,
String *val_ptr __attribute__((unused)))
{
+ DBUG_ASSERT(field_length < 5);
val_buffer->alloc(5);
val_buffer->length(field_length);
char *to=(char*) val_buffer->ptr();
=== modified file 'sql/item_cmpfunc.cc'
--- a/sql/item_cmpfunc.cc 2011-03-16 14:11:20 +0000
+++ b/sql/item_cmpfunc.cc 2011-04-12 10:13:15 +0000
@@ -4069,13 +4069,11 @@ void Item_func_in::fix_length_and_dec()
uint j=0;
for (uint i=1 ; i < arg_count ; i++)
{
- if (!args[i]->null_value) // Skip NULL values
- {
- array->set(j,args[i]);
- j++;
- }
- else
- have_null= 1;
+ array->set(j,args[i]);
+ if (!args[i]->null_value) // Skip NULL values
+ j++;
+ else
+ have_null= 1;
}
if ((array->used_count= j))
array->sort();
=== modified file 'sql/item_sum.cc'
--- a/sql/item_sum.cc 2011-03-16 14:11:20 +0000
+++ b/sql/item_sum.cc 2011-04-12 10:13:15 +0000
@@ -1145,17 +1145,13 @@ Item_sum_hybrid::fix_fields(THD *thd, It
switch (hybrid_type= item->result_type()) {
case INT_RESULT:
- max_length= 20;
- break;
case DECIMAL_RESULT:
+ case STRING_RESULT:
max_length= item->max_length;
break;
case REAL_RESULT:
max_length= float_length(decimals);
break;
- case STRING_RESULT:
- max_length= item->max_length;
- break;
case ROW_RESULT:
default:
DBUG_ASSERT(0);
No bundle (reason: revision is a merge (you can force generation of a bundle with env var BZR_FORCE_BUNDLE=1)).
| Thread |
|---|
| • bzr commit into mysql-5.5 branch (sergey.glukhov:3435) | Sergey Glukhov | 12 Apr |