mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-4.1
into mdk10.(none):/home/reggie/bk/mysql-4.1
This commit is contained in:
commit
cd0ceaf8c8
10 changed files with 47 additions and 5 deletions
|
@ -8,6 +8,7 @@ Miguel@light.local
|
|||
Sinisa@sinisa.nasamreza.org
|
||||
WAX@sergbook.mysql.com
|
||||
acurtis@pcgem.rdg.cyberkinetica.com
|
||||
acurtis@xiphis.org
|
||||
administrador@light.hegel.local
|
||||
ahlentz@co3064164-a.rochd1.qld.optusnet.com.au
|
||||
akishkin@work.mysql.com
|
||||
|
|
|
@ -535,6 +535,19 @@ s2 CHAR(5) COLLATE latin1_swedish_ci);
|
|||
SELECT * FROM t1 WHERE s1 = s2;
|
||||
ERROR HY000: Illegal mix of collations (latin1_german1_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1
|
||||
(s1 CHAR(5) COLLATE latin1_german1_ci,
|
||||
s2 CHAR(5) COLLATE latin1_swedish_ci,
|
||||
s3 CHAR(5) COLLATE latin1_bin);
|
||||
INSERT INTO t1 VALUES ('a','A','A');
|
||||
SELECT * FROM t1 WHERE s1 = s2;
|
||||
ERROR HY000: Illegal mix of collations (latin1_german1_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='
|
||||
SELECT * FROM t1 WHERE s1 = s3;
|
||||
s1 s2 s3
|
||||
SELECT * FROM t1 WHERE s2 = s3;
|
||||
s1 s2 s3
|
||||
a A A
|
||||
DROP TABLE t1;
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1
|
||||
(s1 char(10) COLLATE latin1_german1_ci,
|
||||
|
|
|
@ -299,6 +299,8 @@ select UNIX_TIMESTAMP() from t1;
|
|||
UNIX_TIMESTAMP()
|
||||
select USER() from t1;
|
||||
USER()
|
||||
select CURRENT_USER() from t1;
|
||||
CURRENT_USER()
|
||||
select benchmark(1,1) from t1;
|
||||
benchmark(1,1)
|
||||
explain extended select benchmark(1,1) from t1;
|
||||
|
|
|
@ -1103,7 +1103,7 @@ count(*)
|
|||
drop table t1;
|
||||
create table t2 (
|
||||
a char character set latin1 collate latin1_swedish_ci,
|
||||
b char character set latin1 collate latin1_bin);
|
||||
b char character set latin1 collate latin1_german1_ci);
|
||||
create table t1 as
|
||||
(select a from t2) union
|
||||
(select b from t2);
|
||||
|
|
|
@ -158,6 +158,18 @@ SELECT * FROM t1 WHERE s1 = s2;
|
|||
DROP TABLE t1;
|
||||
|
||||
|
||||
CREATE TABLE t1
|
||||
(s1 CHAR(5) COLLATE latin1_german1_ci,
|
||||
s2 CHAR(5) COLLATE latin1_swedish_ci,
|
||||
s3 CHAR(5) COLLATE latin1_bin);
|
||||
INSERT INTO t1 VALUES ('a','A','A');
|
||||
--error 1267
|
||||
SELECT * FROM t1 WHERE s1 = s2;
|
||||
SELECT * FROM t1 WHERE s1 = s3;
|
||||
SELECT * FROM t1 WHERE s2 = s3;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
#
|
||||
# Test that optimizer doesn't use indexes with wrong collation
|
||||
#
|
||||
|
|
|
@ -184,6 +184,7 @@ select LAST_INSERT_ID() from t1;
|
|||
select RAND() from t1;
|
||||
select UNIX_TIMESTAMP() from t1;
|
||||
select USER() from t1;
|
||||
select CURRENT_USER() from t1;
|
||||
select benchmark(1,1) from t1;
|
||||
explain extended select benchmark(1,1) from t1;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
|
|
|
@ -641,7 +641,7 @@ drop table t1;
|
|||
|
||||
create table t2 (
|
||||
a char character set latin1 collate latin1_swedish_ci,
|
||||
b char character set latin1 collate latin1_bin);
|
||||
b char character set latin1 collate latin1_german1_ci);
|
||||
--error 1271
|
||||
create table t1 as
|
||||
(select a from t2) union
|
||||
|
|
|
@ -474,6 +474,15 @@ bool DTCollation::aggregate(DTCollation &dt, uint flags)
|
|||
set(0, DERIVATION_NONE);
|
||||
return 1;
|
||||
}
|
||||
if (collation->state & MY_CS_BINSORT)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else if (dt.collation->state & MY_CS_BINSORT)
|
||||
{
|
||||
set(dt);
|
||||
return 0;
|
||||
}
|
||||
CHARSET_INFO *bin= get_charset_by_csname(collation->csname,
|
||||
MY_CS_BINSORT,MYF(0));
|
||||
set(bin, DERIVATION_NONE);
|
||||
|
|
|
@ -306,6 +306,7 @@ Item *create_func_current_user()
|
|||
char buff[HOSTNAME_LENGTH+USERNAME_LENGTH+2];
|
||||
uint length;
|
||||
|
||||
thd->lex->safe_to_cache_query= 0;
|
||||
length= (uint) (strxmov(buff, thd->priv_user, "@", thd->priv_host, NullS) -
|
||||
buff);
|
||||
return new Item_string(NullS, thd->memdup(buff, length), length,
|
||||
|
|
|
@ -526,8 +526,11 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name)
|
|||
tables.real_name= tables.alias= (char*) "func";
|
||||
if (!(table = open_ltable(thd,&tables,TL_WRITE)))
|
||||
goto err;
|
||||
if (!table->file->index_read_idx(table->record[0],0,(byte*) udf_name->str,
|
||||
(uint) udf_name->length,
|
||||
table->field[0]->store(udf_name->str, udf_name->length, system_charset_info);
|
||||
table->file->extra(HA_EXTRA_RETRIEVE_ALL_COLS);
|
||||
if (!table->file->index_read_idx(table->record[0], 0,
|
||||
(byte*) table->field[0]->ptr,
|
||||
table->key_info[0].key_length,
|
||||
HA_READ_KEY_EXACT))
|
||||
{
|
||||
int error;
|
||||
|
|
Loading…
Reference in a new issue