mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/Users/kent/mysql/bk/mysql-5.0-new
This commit is contained in:
commit
032108c607
5 changed files with 52 additions and 5 deletions
|
@ -512,3 +512,24 @@ id IFNULL(dsc, '-')
|
|||
2 line number two
|
||||
3 line number three
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
ID int(11) NOT NULL auto_increment,
|
||||
x varchar(20) default NULL,
|
||||
y decimal(10,0) default NULL,
|
||||
PRIMARY KEY (ID),
|
||||
KEY (y)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 VALUES
|
||||
(1,'ba','-1'),
|
||||
(2,'ba','1150'),
|
||||
(306,'ba','-1'),
|
||||
(307,'ba','1150'),
|
||||
(611,'ba','-1'),
|
||||
(612,'ba','1150');
|
||||
select count(distinct x,y) from t1;
|
||||
count(distinct x,y)
|
||||
2
|
||||
select count(distinct concat(x,y)) from t1;
|
||||
count(distinct concat(x,y))
|
||||
2
|
||||
drop table t1;
|
||||
|
|
|
@ -358,3 +358,27 @@ select distinct id, IFNULL(dsc, '-') from t1;
|
|||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
|
||||
#
|
||||
# Bug #15745 ( COUNT(DISTINCT CONCAT(x,y)) returns wrong result)
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
ID int(11) NOT NULL auto_increment,
|
||||
x varchar(20) default NULL,
|
||||
y decimal(10,0) default NULL,
|
||||
PRIMARY KEY (ID),
|
||||
KEY (y)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
INSERT INTO t1 VALUES
|
||||
(1,'ba','-1'),
|
||||
(2,'ba','1150'),
|
||||
(306,'ba','-1'),
|
||||
(307,'ba','1150'),
|
||||
(611,'ba','-1'),
|
||||
(612,'ba','1150');
|
||||
|
||||
select count(distinct x,y) from t1;
|
||||
select count(distinct concat(x,y)) from t1;
|
||||
drop table t1;
|
||||
|
|
|
@ -2541,9 +2541,9 @@ bool Item_sum_count_distinct::setup(THD *thd)
|
|||
Field *f= *field;
|
||||
enum enum_field_types type= f->type();
|
||||
tree_key_length+= f->pack_length();
|
||||
if (!f->binary() && (type == MYSQL_TYPE_STRING ||
|
||||
type == MYSQL_TYPE_VAR_STRING ||
|
||||
type == MYSQL_TYPE_VARCHAR))
|
||||
if ((type == MYSQL_TYPE_VARCHAR) ||
|
||||
!f->binary() && (type == MYSQL_TYPE_STRING ||
|
||||
type == MYSQL_TYPE_VAR_STRING))
|
||||
{
|
||||
all_binary= FALSE;
|
||||
break;
|
||||
|
|
|
@ -223,7 +223,7 @@ static int find_keyword(LEX *lex, uint len, bool function)
|
|||
|
||||
SYNOPSIS
|
||||
is_keyword()
|
||||
name checked name
|
||||
name checked name (must not be empty)
|
||||
len length of checked name
|
||||
|
||||
RETURN VALUES
|
||||
|
@ -233,6 +233,7 @@ static int find_keyword(LEX *lex, uint len, bool function)
|
|||
|
||||
bool is_keyword(const char *name, uint len)
|
||||
{
|
||||
DBUG_ASSERT(len != 0);
|
||||
return get_hash_symbol(name,len,0)!=0;
|
||||
}
|
||||
|
||||
|
|
|
@ -713,7 +713,8 @@ append_identifier(THD *thd, String *packet, const char *name, uint length)
|
|||
|
||||
int get_quote_char_for_identifier(THD *thd, const char *name, uint length)
|
||||
{
|
||||
if (!is_keyword(name,length) &&
|
||||
if (!length ||
|
||||
!is_keyword(name,length) &&
|
||||
!require_quotes(name, length) &&
|
||||
!(thd->options & OPTION_QUOTE_SHOW_CREATE))
|
||||
return EOF;
|
||||
|
|
Loading…
Reference in a new issue