mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
merge
This commit is contained in:
commit
1560eab136
4 changed files with 54 additions and 2 deletions
|
@ -1811,6 +1811,41 @@ MAX(t2.a)
|
|||
2
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Bug#55188: GROUP BY, GROUP_CONCAT and TEXT - inconsistent results
|
||||
#
|
||||
CREATE TABLE t1 (a text, b varchar(10));
|
||||
INSERT INTO t1 VALUES (repeat('1', 1300),'one'), (repeat('1', 1300),'two');
|
||||
EXPLAIN
|
||||
SELECT SUBSTRING(a,1,10), LENGTH(a), GROUP_CONCAT(b) FROM t1 GROUP BY a;
|
||||
id 1
|
||||
select_type SIMPLE
|
||||
table t1
|
||||
type ALL
|
||||
possible_keys NULL
|
||||
key NULL
|
||||
key_len NULL
|
||||
ref NULL
|
||||
rows 2
|
||||
Extra Using filesort
|
||||
SELECT SUBSTRING(a,1,10), LENGTH(a), GROUP_CONCAT(b) FROM t1 GROUP BY a;
|
||||
SUBSTRING(a,1,10) LENGTH(a) GROUP_CONCAT(b)
|
||||
1111111111 1300 one,two
|
||||
EXPLAIN
|
||||
SELECT SUBSTRING(a,1,10), LENGTH(a) FROM t1 GROUP BY a;
|
||||
id 1
|
||||
select_type SIMPLE
|
||||
table t1
|
||||
type ALL
|
||||
possible_keys NULL
|
||||
key NULL
|
||||
key_len NULL
|
||||
ref NULL
|
||||
rows 2
|
||||
Extra Using temporary; Using filesort
|
||||
SELECT SUBSTRING(a,1,10), LENGTH(a) FROM t1 GROUP BY a;
|
||||
SUBSTRING(a,1,10) LENGTH(a)
|
||||
1111111111 1300
|
||||
DROP TABLE t1;
|
||||
# End of 5.1 tests
|
||||
#
|
||||
# Bug#49771: Incorrect MIN (date) when minimum value is 0000-00-00
|
||||
|
|
|
@ -1222,6 +1222,20 @@ DROP TABLE t1, t2;
|
|||
|
||||
|
||||
--echo #
|
||||
--echo # Bug#55188: GROUP BY, GROUP_CONCAT and TEXT - inconsistent results
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a text, b varchar(10));
|
||||
INSERT INTO t1 VALUES (repeat('1', 1300),'one'), (repeat('1', 1300),'two');
|
||||
|
||||
query_vertical EXPLAIN
|
||||
SELECT SUBSTRING(a,1,10), LENGTH(a), GROUP_CONCAT(b) FROM t1 GROUP BY a;
|
||||
SELECT SUBSTRING(a,1,10), LENGTH(a), GROUP_CONCAT(b) FROM t1 GROUP BY a;
|
||||
query_vertical EXPLAIN
|
||||
SELECT SUBSTRING(a,1,10), LENGTH(a) FROM t1 GROUP BY a;
|
||||
SELECT SUBSTRING(a,1,10), LENGTH(a) FROM t1 GROUP BY a;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo # End of 5.1 tests
|
||||
|
||||
|
|
|
@ -2982,6 +2982,7 @@ public:
|
|||
class Cached_item_str :public Cached_item
|
||||
{
|
||||
Item *item;
|
||||
uint32 value_max_length;
|
||||
String value,tmp_value;
|
||||
public:
|
||||
Cached_item_str(THD *thd, Item *arg);
|
||||
|
|
|
@ -65,7 +65,9 @@ Cached_item::~Cached_item() {}
|
|||
*/
|
||||
|
||||
Cached_item_str::Cached_item_str(THD *thd, Item *arg)
|
||||
:item(arg), value(min(arg->max_length, thd->variables.max_sort_length))
|
||||
:item(arg),
|
||||
value_max_length(min(arg->max_length, thd->variables.max_sort_length)),
|
||||
value(value_max_length)
|
||||
{}
|
||||
|
||||
bool Cached_item_str::cmp(void)
|
||||
|
@ -74,7 +76,7 @@ bool Cached_item_str::cmp(void)
|
|||
bool tmp;
|
||||
|
||||
if ((res=item->val_str(&tmp_value)))
|
||||
res->length(min(res->length(), value.alloced_length()));
|
||||
res->length(min(res->length(), value_max_length));
|
||||
if (null_value != item->null_value)
|
||||
{
|
||||
if ((null_value= item->null_value))
|
||||
|
|
Loading…
Add table
Reference in a new issue