Merge sanja.is.com.ua:/home/bell/mysql/bk/work-top3-4.1

into sanja.is.com.ua:/home/bell/mysql/bk/work-simple_in-4.1
This commit is contained in:
bell@sanja.is.com.ua 2003-07-16 14:12:18 +03:00
commit d9b108c12f
48 changed files with 350 additions and 280 deletions

View File

@ -1085,7 +1085,7 @@ static bool add_line(String &buffer,char *line,char *in_string,
out=line; out=line;
} }
} }
else if (*ml_comment && !*in_string && inchar == '*' && *(pos+1) == '/') else if (*ml_comment && inchar == '*' && *(pos + 1) == '/')
{ {
pos++; pos++;
*ml_comment= 0; *ml_comment= 0;
@ -1093,11 +1093,12 @@ static bool add_line(String &buffer,char *line,char *in_string,
else else
{ // Add found char to buffer { // Add found char to buffer
if (inchar == *in_string) if (inchar == *in_string)
*in_string=0; *in_string= 0;
else if (!*in_string && (inchar == '\'' || inchar == '"' || inchar == '`')) else if (!*ml_comment && !*in_string &&
*in_string=(char) inchar; (inchar == '\'' || inchar == '"' || inchar == '`'))
if (!(*ml_comment)) *in_string= (char) inchar;
*out++ = (char) inchar; if (!*ml_comment)
*out++= (char) inchar;
} }
} }
if (out != line || !buffer.is_empty()) if (out != line || !buffer.is_empty())

View File

@ -281,3 +281,42 @@ ALTER TABLE t1 DISABLE KEYS;
INSERT DELAYED INTO t1 VALUES(1),(2),(3); INSERT DELAYED INTO t1 VALUES(1),(2),(3);
ALTER TABLE t1 ENABLE KEYS; ALTER TABLE t1 ENABLE KEYS;
drop table t1; drop table t1;
set names koi8r;
create table t1 (a char(10) character set koi8r);
insert into t1 values ('ÔÅÓÔ');
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ D4C5D3D4
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ F2E5F1F2
alter table t1 change a a char(10) binary;
select a,hex(a) from t1;
a hex(a)
òåñò F2E5F1F2
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ F2E5F1F2
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ D4C5D3D4
alter table t1 change a a varchar(10) character set cp1251;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ F2E5F1F2
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ D4C5D3D4
alter table t1 change a a text character set cp1251;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ F2E5F1F2
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ D4C5D3D4
drop table t1;

View File

@ -71,3 +71,24 @@ orange
yellow yellow
green green
drop table t1; drop table t1;
SET NAMES latin1;
CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'coalesce'
CREATE TABLE t1 SELECT COALESCE('a' COLLATE latin1_swedish_ci,'b' COLLATE latin1_bin);
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'coalesce'
CREATE TABLE t1 SELECT
COALESCE(1), COALESCE(1.0),COALESCE('a'),
COALESCE(1,1.0), COALESCE(1,'1'),COALESCE(1.1,'1'),
COALESCE('a' COLLATE latin1_bin,'b');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`COALESCE(1)` int(1) NOT NULL default '0',
`COALESCE(1.0)` double(3,1) NOT NULL default '0.0',
`COALESCE('a')` char(1) NOT NULL default '',
`COALESCE(1,1.0)` double(3,1) NOT NULL default '0.0',
`COALESCE(1,'1')` char(1) NOT NULL default '',
`COALESCE(1.1,'1')` char(3) NOT NULL default '',
`COALESCE('a' COLLATE latin1_bin,'b')` char(1) character set latin1 collate latin1_bin NOT NULL default ''
) TYPE=MyISAM CHARSET=latin1
DROP TABLE t1;

View File

@ -111,3 +111,35 @@ id
5 5
9 9
drop table t1; drop table t1;
create table t1 (
a char(1) character set latin1 collate latin1_general_ci,
b char(1) character set latin1 collate latin1_swedish_ci,
c char(1) character set latin1 collate latin1_danish_ci
);
insert into t1 values ('A','B','C');
insert into t1 values ('a','c','c');
select * from t1 where a in (b);
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ' IN '
select * from t1 where a in (b,c);
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT), (latin1_swedish_ci,IMPLICIT), (latin1_danish_ci,IMPLICIT) for operation ' IN '
select * from t1 where 'a' in (a,b,c);
ERROR HY000: Illegal mix of collations for operation ' IN '
select * from t1 where 'a' in (a);
a b c
A B C
a c c
select * from t1 where a in ('a');
a b c
A B C
a c c
select * from t1 where 'a' collate latin1_general_ci in (a,b,c);
a b c
A B C
a c c
select * from t1 where 'a' collate latin1_bin in (a,b,c);
a b c
a c c
select * from t1 where 'a' in (a,b,c collate latin1_bin);
a b c
a c c
drop table t1;

View File

@ -297,9 +297,9 @@ select FIELD('b','A' COLLATE latin1_bin,'B');
FIELD('b','A' COLLATE latin1_bin,'B') FIELD('b','A' COLLATE latin1_bin,'B')
0 0
select FIELD(_latin2'b','A','B'); select FIELD(_latin2'b','A','B');
ERROR HY000: Illegal mix of collations for operation 'field' ERROR HY000: Illegal mix of collations (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'field'
select FIELD('b',_latin2'A','B'); select FIELD('b',_latin2'A','B');
ERROR HY000: Illegal mix of collations for operation 'field' ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'field'
select FIELD('b',_latin2'A','B',1); select FIELD('b',_latin2'A','B',1);
FIELD('b',_latin2'A','B',1) FIELD('b',_latin2'A','B',1)
1 1
@ -363,15 +363,15 @@ select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin);
_latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin) _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin)
0 0
select _latin2'B' in (_latin1'a',_latin1'b'); select _latin2'B' in (_latin1'a',_latin1'b');
ERROR HY000: Illegal mix of collations for operation ' IN ' ERROR HY000: Illegal mix of collations (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN '
select _latin1'B' in (_latin2'a',_latin1'b'); select _latin1'B' in (_latin2'a',_latin1'b');
ERROR HY000: Illegal mix of collations for operation ' IN ' ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN '
select _latin1'B' in (_latin1'a',_latin2'b'); select _latin1'B' in (_latin1'a',_latin2'b');
ERROR HY000: Illegal mix of collations for operation ' IN ' ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE) for operation ' IN '
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b'); select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b');
ERROR HY000: Illegal mix of collations for operation ' IN ' ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_bin,EXPLICIT), (latin1_swedish_ci,COERCIBLE) for operation ' IN '
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin); select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin);
ERROR HY000: Illegal mix of collations for operation ' IN ' ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_bin,EXPLICIT) for operation ' IN '
select collation(bin(130)), coercibility(bin(130)); select collation(bin(130)), coercibility(bin(130));
collation(bin(130)) coercibility(bin(130)) collation(bin(130)) coercibility(bin(130))
latin1_swedish_ci 3 latin1_swedish_ci 3
@ -532,3 +532,24 @@ t1 CREATE TABLE `t1` (
`replace(_latin2'abcd',_latin2'b',_latin2'B')` char(4) character set latin2 NOT NULL default '' `replace(_latin2'abcd',_latin2'b',_latin2'B')` char(4) character set latin2 NOT NULL default ''
) TYPE=MyISAM CHARSET=latin1 ) TYPE=MyISAM CHARSET=latin1
drop table t1; drop table t1;
select SUBSTR('abcdefg',3,2);
SUBSTR('abcdefg',3,2)
cd
select SUBSTRING('abcdefg',3,2);
SUBSTRING('abcdefg',3,2)
cd
select SUBSTR('abcdefg',-3,2) FROM DUAL;
SUBSTR('abcdefg',-3,2)
ef
select SUBSTR('abcdefg',-1,5) FROM DUAL;
SUBSTR('abcdefg',-1,5)
g
select SUBSTR('abcdefg',0,0) FROM DUAL;
SUBSTR('abcdefg',0,0)
select SUBSTR('abcdefg',-1,-1) FROM DUAL;
SUBSTR('abcdefg',-1,-1)
select SUBSTR('abcdefg',1,-1) FROM DUAL;
SUBSTR('abcdefg',1,-1)

View File

@ -10,22 +10,22 @@ select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
Access denied for user: 'ssl_user1@localhost' to database 'test' ERROR 42000: Access denied for user: 'ssl_user1@localhost' to database 'test'
select * from t1; select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
Access denied for user: 'ssl_user2@localhost' to database 'test' ERROR 42000: Access denied for user: 'ssl_user2@localhost' to database 'test'
select * from t1; select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
Access denied for user: 'ssl_user3@localhost' to database 'test' ERROR 42000: Access denied for user: 'ssl_user3@localhost' to database 'test'
select * from t1; select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
Access denied for user: 'ssl_user4@localhost' to database 'test' ERROR 42000: Access denied for user: 'ssl_user4@localhost' to database 'test'
delete from mysql.user where user='ssl_user%'; delete from mysql.user where user='ssl_user%';
delete from mysql.db where user='ssl_user%'; delete from mysql.db where user='ssl_user%';
flush privileges; flush privileges;

View File

@ -144,3 +144,30 @@ ALTER TABLE t1 DISABLE KEYS;
INSERT DELAYED INTO t1 VALUES(1),(2),(3); INSERT DELAYED INTO t1 VALUES(1),(2),(3);
ALTER TABLE t1 ENABLE KEYS; ALTER TABLE t1 ENABLE KEYS;
drop table t1; drop table t1;
#
# Test that data get converted when character set is changed
# Test that data doesn't get converted when src or dst is BINARY/BLOB
#
set names koi8r;
create table t1 (a char(10) character set koi8r);
insert into t1 values ('ÔÅÓÔ');
select a,hex(a) from t1;
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
alter table t1 change a a char(10) binary;
select a,hex(a) from t1;
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
alter table t1 change a a varchar(10) character set cp1251;
select a,hex(a) from t1;
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
alter table t1 change a a text character set cp1251;
select a,hex(a) from t1;
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
drop table t1;

View File

@ -41,3 +41,25 @@ create table t1 (row int not null, col int not null, val varchar(255) not null);
insert into t1 values (1,1,'orange'),(1,2,'large'),(2,1,'yellow'),(2,2,'medium'),(3,1,'green'),(3,2,'small'); insert into t1 values (1,1,'orange'),(1,2,'large'),(2,1,'yellow'),(2,2,'medium'),(3,1,'green'),(3,2,'small');
select max(case col when 1 then val else null end) as color from t1 group by row; select max(case col when 1 then val else null end) as color from t1 group by row;
drop table t1; drop table t1;
#
# COALESCE is a CASE abbrevation:
#
# COALESCE(v1,v2) == CASE WHEN v1 IS NOT NULL THEN v1 ELSE v2 END
#
# COALESCE(V1, V2, . . . ,Vn ) =
# CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, . . . ,Vn) END
#
# Check COALESCE argument types aggregation
SET NAMES latin1;
--error 1265
CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a');
--error 1265
CREATE TABLE t1 SELECT COALESCE('a' COLLATE latin1_swedish_ci,'b' COLLATE latin1_bin);
CREATE TABLE t1 SELECT
COALESCE(1), COALESCE(1.0),COALESCE('a'),
COALESCE(1,1.0), COALESCE(1,'1'),COALESCE(1.1,'1'),
COALESCE('a' COLLATE latin1_bin,'b');
SHOW CREATE TABLE t1;
DROP TABLE t1;

View File

@ -54,3 +54,22 @@ insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9);
select * from t1 where id in (2,5,9); select * from t1 where id in (2,5,9);
drop table t1; drop table t1;
create table t1 (
a char(1) character set latin1 collate latin1_general_ci,
b char(1) character set latin1 collate latin1_swedish_ci,
c char(1) character set latin1 collate latin1_danish_ci
);
insert into t1 values ('A','B','C');
insert into t1 values ('a','c','c');
--error 1265
select * from t1 where a in (b);
--error 1268
select * from t1 where a in (b,c);
--error 1269
select * from t1 where 'a' in (a,b,c);
select * from t1 where 'a' in (a);
select * from t1 where a in ('a');
select * from t1 where 'a' collate latin1_general_ci in (a,b,c);
select * from t1 where 'a' collate latin1_bin in (a,b,c);
select * from t1 where 'a' in (a,b,c collate latin1_bin);
drop table t1;

View File

@ -167,9 +167,9 @@ select FIELD('b','A','B');
select FIELD('B','A','B'); select FIELD('B','A','B');
select FIELD('b' COLLATE latin1_bin,'A','B'); select FIELD('b' COLLATE latin1_bin,'A','B');
select FIELD('b','A' COLLATE latin1_bin,'B'); select FIELD('b','A' COLLATE latin1_bin,'B');
--error 1269 --error 1268
select FIELD(_latin2'b','A','B'); select FIELD(_latin2'b','A','B');
--error 1269 --error 1268
select FIELD('b',_latin2'A','B'); select FIELD('b',_latin2'A','B');
select FIELD('b',_latin2'A','B',1); select FIELD('b',_latin2'A','B',1);
@ -217,15 +217,15 @@ select _latin1'B' in (_latin1'a',_latin1'b');
select _latin1'B' collate latin1_bin in (_latin1'a',_latin1'b'); select _latin1'B' collate latin1_bin in (_latin1'a',_latin1'b');
select _latin1'B' in (_latin1'a' collate latin1_bin,_latin1'b'); select _latin1'B' in (_latin1'a' collate latin1_bin,_latin1'b');
select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin); select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin);
--error 1269 --error 1268
select _latin2'B' in (_latin1'a',_latin1'b'); select _latin2'B' in (_latin1'a',_latin1'b');
--error 1269 --error 1268
select _latin1'B' in (_latin2'a',_latin1'b'); select _latin1'B' in (_latin2'a',_latin1'b');
--error 1269 --error 1268
select _latin1'B' in (_latin1'a',_latin2'b'); select _latin1'B' in (_latin1'a',_latin2'b');
--error 1269 --error 1268
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b'); select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b');
--error 1269 --error 1268
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin); select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin);
select collation(bin(130)), coercibility(bin(130)); select collation(bin(130)), coercibility(bin(130));
@ -294,3 +294,14 @@ select
; ;
show create table t1; show create table t1;
drop table t1; drop table t1;
#
# test for SUBSTR
#
select SUBSTR('abcdefg',3,2);
select SUBSTRING('abcdefg',3,2);
select SUBSTR('abcdefg',-3,2) FROM DUAL;
select SUBSTR('abcdefg',-1,5) FROM DUAL;
select SUBSTR('abcdefg',0,0) FROM DUAL;
select SUBSTR('abcdefg',-1,-1) FROM DUAL;
select SUBSTR('abcdefg',1,-1) FROM DUAL;

View File

@ -2,7 +2,9 @@
# Use mysql-test-run with --with-openssl option. # Use mysql-test-run with --with-openssl option.
-- source include/have_openssl_1.inc -- source include/have_openssl_1.inc
--disable_warnings
drop table if exists t1; drop table if exists t1;
--enable_warnings
create table t1(f1 int); create table t1(f1 int);
insert into t1 values (5); insert into t1 values (5);

View File

@ -1154,7 +1154,13 @@ void Item_func_coalesce::fix_length_and_dec()
{ {
set_if_bigger(max_length,args[i]->max_length); set_if_bigger(max_length,args[i]->max_length);
set_if_bigger(decimals,args[i]->decimals); set_if_bigger(decimals,args[i]->decimals);
cached_result_type=item_store_type(cached_result_type,
args[i]->result_type());
} }
if (cached_result_type == STRING_RESULT)
agg_arg_collations(collation, args, arg_count);
else if (cached_result_type != REAL_RESULT)
decimals= 0;
} }
/**************************************************************************** /****************************************************************************
@ -1419,7 +1425,7 @@ int cmp_item_row::compare(cmp_item *c)
bool Item_func_in::nulls_in_row() bool Item_func_in::nulls_in_row()
{ {
Item **arg,**arg_end; Item **arg,**arg_end;
for (arg= args, arg_end= args+arg_count; arg != arg_end ; arg++) for (arg= args+1, arg_end= args+arg_count; arg != arg_end ; arg++)
{ {
if ((*arg)->null_inside()) if ((*arg)->null_inside())
return 1; return 1;
@ -1436,42 +1442,43 @@ static int srtcmp_in(CHARSET_INFO *cs, const String *x,const String *y)
void Item_func_in::fix_length_and_dec() void Item_func_in::fix_length_and_dec()
{ {
Item **arg, **arg_end;
uint const_itm= 1;
if ((args[0]->result_type() == STRING_RESULT) &&
(agg_arg_collations_for_comparison(cmp_collation, args, arg_count)))
return;
for (arg=args+1, arg_end=args+arg_count; arg != arg_end ; arg++)
const_itm&= arg[0]->const_item();
/* /*
Row item with NULLs inside can return NULL or FALSE => Row item with NULLs inside can return NULL or FALSE =>
they can't be processed as static they can't be processed as static
*/ */
if (const_item() && !nulls_in_row()) if (const_itm && !nulls_in_row())
{ {
switch (item->result_type()) { switch (args[0]->result_type()) {
case STRING_RESULT: case STRING_RESULT:
uint i; uint i;
cmp_collation.set(item->collation); array=new in_string(arg_count-1,(qsort2_cmp) srtcmp_in,
for (i=0 ; i<arg_count; i++)
if (cmp_collation.aggregate(args[i]->collation))
break;
if (cmp_collation.derivation == DERIVATION_NONE)
{
my_error(ER_CANT_AGGREGATE_NCOLLATIONS,MYF(0),func_name());
return;
}
array=new in_string(arg_count,(qsort2_cmp) srtcmp_in,
cmp_collation.collation); cmp_collation.collation);
break; break;
case INT_RESULT: case INT_RESULT:
array= new in_longlong(arg_count); array= new in_longlong(arg_count-1);
break; break;
case REAL_RESULT: case REAL_RESULT:
array= new in_double(arg_count); array= new in_double(arg_count-1);
break; break;
case ROW_RESULT: case ROW_RESULT:
array= new in_row(arg_count, item); array= new in_row(arg_count-1, args[0]);
break; break;
default: default:
DBUG_ASSERT(0); DBUG_ASSERT(0);
return; return;
} }
uint j=0; uint j=0;
for (uint i=0 ; i < arg_count ; i++) for (uint i=1 ; i < arg_count ; i++)
{ {
array->set(j,args[i]); array->set(j,args[i]);
if (!args[i]->null_value) // Skip NULL values if (!args[i]->null_value) // Skip NULL values
@ -1484,19 +1491,19 @@ void Item_func_in::fix_length_and_dec()
} }
else else
{ {
in_item= cmp_item::get_comparator(item); in_item= cmp_item::get_comparator(args[0]);
if (args[0]->result_type() == STRING_RESULT)
in_item->cmp_charset= cmp_collation.collation;
} }
maybe_null= item->maybe_null; maybe_null= args[0]->maybe_null;
max_length= 1; max_length= 1;
used_tables_cache|=item->used_tables(); const_item_cache&=args[0]->const_item();
const_item_cache&=item->const_item();
} }
void Item_func_in::print(String *str) void Item_func_in::print(String *str)
{ {
str->append('('); str->append('(');
item->print(str);
Item_func::print(str); Item_func::print(str);
str->append(')'); str->append(')');
} }
@ -1506,15 +1513,15 @@ longlong Item_func_in::val_int()
{ {
if (array) if (array)
{ {
int tmp=array->find(item); int tmp=array->find(args[0]);
null_value=item->null_value || (!tmp && have_null); null_value=args[0]->null_value || (!tmp && have_null);
return tmp; return tmp;
} }
in_item->store_value(item); in_item->store_value(args[0]);
if ((null_value=item->null_value)) if ((null_value=args[0]->null_value))
return 0; return 0;
have_null= 0; have_null= 0;
for (uint i=0 ; i < arg_count ; i++) for (uint i=1 ; i < arg_count ; i++)
{ {
if (!in_item->cmp(args[i]) && !args[i]->null_value) if (!in_item->cmp(args[i]) && !args[i]->null_value)
return 1; // Would maybe be nice with i ? return 1; // Would maybe be nice with i ?
@ -1525,29 +1532,6 @@ longlong Item_func_in::val_int()
} }
void Item_func_in::update_used_tables()
{
Item_func::update_used_tables();
item->update_used_tables();
used_tables_cache|=item->used_tables();
const_item_cache&=item->const_item();
}
void Item_func_in::split_sum_func(Item **ref_pointer_array, List<Item> &fields)
{
if (item->with_sum_func && item->type() != SUM_FUNC_ITEM)
item->split_sum_func(ref_pointer_array, fields);
else if (item->used_tables() || item->type() == SUM_FUNC_ITEM)
{
uint el= fields.elements;
fields.push_front(item);
ref_pointer_array[el]= item;
item= new Item_ref(ref_pointer_array + el, 0, item->name);
}
Item_func::split_sum_func(ref_pointer_array, fields);
}
longlong Item_func_bit_or::val_int() longlong Item_func_bit_or::val_int()
{ {
ulonglong arg1= (ulonglong) args[0]->val_int(); ulonglong arg1= (ulonglong) args[0]->val_int();

View File

@ -600,42 +600,26 @@ public:
class Item_func_in :public Item_int_func class Item_func_in :public Item_int_func
{ {
Item *item;
in_vector *array; in_vector *array;
cmp_item *in_item; cmp_item *in_item;
bool have_null; bool have_null;
DTCollation cmp_collation; DTCollation cmp_collation;
public: public:
Item_func_in(Item *a,List<Item> &list) Item_func_in(List<Item> &list)
:Item_int_func(list), item(a), array(0), in_item(0), have_null(0) :Item_int_func(list), array(0), in_item(0), have_null(0)
{ {
allowed_arg_cols= item->cols(); allowed_arg_cols= args[0]->cols();
} }
longlong val_int(); longlong val_int();
bool fix_fields(THD *thd, struct st_table_list *tlist, Item **ref)
{
// We do not check item->cols(), because allowed_arg_cols assigned from it
bool res=(item->fix_fields(thd, tlist, &item) ||
Item_func::fix_fields(thd, tlist, ref));
with_sum_func= with_sum_func || item->with_sum_func;
return res;
}
void fix_length_and_dec(); void fix_length_and_dec();
~Item_func_in() { delete item; delete array; delete in_item; } ~Item_func_in() { delete array; delete in_item; }
optimize_type select_optimize() const optimize_type select_optimize() const
{ return array ? OPTIMIZE_KEY : OPTIMIZE_NONE; } { return array ? OPTIMIZE_KEY : OPTIMIZE_NONE; }
Item *key_item() const { return item; } Item *key_item() const { return args[0]; }
void print(String *str); void print(String *str);
enum Functype functype() const { return IN_FUNC; } enum Functype functype() const { return IN_FUNC; }
const char *func_name() const { return " IN "; } const char *func_name() const { return " IN "; }
void update_used_tables();
void split_sum_func(Item **ref_pointer_array, List<Item> &fields);
bool nulls_in_row(); bool nulls_in_row();
bool walk(Item_processor processor, byte *arg)
{
return item->walk(processor, arg) ||
Item_int_func::walk(processor, arg);
}
}; };
/* Functions used by where clause */ /* Functions used by where clause */

View File

@ -1174,32 +1174,32 @@ longlong Item_func_field::val_int()
if (cmp_type == STRING_RESULT) if (cmp_type == STRING_RESULT)
{ {
String *field; String *field;
if (!(field=item->val_str(&value))) if (!(field=args[0]->val_str(&value)))
return 0; // -1 if null ? return 0; // -1 if null ?
for (uint i=0 ; i < arg_count ; i++) for (uint i=1 ; i < arg_count ; i++)
{ {
String *tmp_value=args[i]->val_str(&tmp); String *tmp_value=args[i]->val_str(&tmp);
if (tmp_value && field->length() == tmp_value->length() && if (tmp_value && field->length() == tmp_value->length() &&
!sortcmp(field,tmp_value,cmp_collation.collation)) !sortcmp(field,tmp_value,cmp_collation.collation))
return (longlong) (i+1); return (longlong) (i);
} }
} }
else if (cmp_type == INT_RESULT) else if (cmp_type == INT_RESULT)
{ {
longlong val= item->val_int(); longlong val= args[0]->val_int();
for (uint i=0; i < arg_count ; i++) for (uint i=1; i < arg_count ; i++)
{ {
if (val == args[i]->val_int()) if (val == args[i]->val_int())
return (longlong) (i+1); return (longlong) (i);
} }
} }
else else
{ {
double val= item->val(); double val= args[0]->val();
for (uint i=0; i < arg_count ; i++) for (uint i=1; i < arg_count ; i++)
{ {
if (val == args[i]->val()) if (val == args[i]->val())
return (longlong) (i+1); return (longlong) (i);
} }
} }
return 0; return 0;
@ -1208,42 +1208,11 @@ longlong Item_func_field::val_int()
void Item_func_field::fix_length_and_dec() void Item_func_field::fix_length_and_dec()
{ {
maybe_null=0; max_length=3; maybe_null=0; max_length=3;
used_tables_cache|= item->used_tables(); cmp_type= args[0]->result_type();
const_item_cache&= item->const_item(); for (uint i=1; i < arg_count ; i++)
with_sum_func= with_sum_func || item->with_sum_func;
cmp_type= item->result_type();
for (uint i=0; i < arg_count ; i++)
cmp_type= item_cmp_type(cmp_type, args[i]->result_type()); cmp_type= item_cmp_type(cmp_type, args[i]->result_type());
if (cmp_type == STRING_RESULT) if (cmp_type == STRING_RESULT)
{ agg_arg_collations_for_comparison(cmp_collation, args, arg_count);
cmp_collation.set(item->collation);
for (uint i=0 ; i < arg_count ; i++)
{
if (cmp_collation.aggregate(args[i]->collation))
{
my_error(ER_CANT_AGGREGATE_NCOLLATIONS,MYF(0),func_name());
return;
}
}
}
}
void Item_func_field::split_sum_func(Item **ref_pointer_array,
List<Item> &fields)
{
if (item->with_sum_func && item->type() != SUM_FUNC_ITEM)
item->split_sum_func(ref_pointer_array, fields);
else if (item->used_tables() || item->type() == SUM_FUNC_ITEM)
{
uint el= fields.elements;
fields.push_front(item);
ref_pointer_array[el]= item;
item= new Item_ref(ref_pointer_array + el, 0, item->name);
}
Item_func::split_sum_func(ref_pointer_array, fields);
} }

View File

@ -626,33 +626,14 @@ public:
class Item_func_field :public Item_int_func class Item_func_field :public Item_int_func
{ {
Item *item;
String value,tmp; String value,tmp;
Item_result cmp_type; Item_result cmp_type;
DTCollation cmp_collation; DTCollation cmp_collation;
public: public:
Item_func_field(Item *a,List<Item> &list) :Item_int_func(list),item(a) {} Item_func_field(List<Item> &list) :Item_int_func(list) {}
~Item_func_field() { delete item; }
longlong val_int(); longlong val_int();
bool fix_fields(THD *thd,struct st_table_list *tlist, Item **ref)
{
return (item->fix_fields(thd, tlist, &item) || item->check_cols(1) ||
Item_func::fix_fields(thd, tlist, ref));
}
void split_sum_func(Item **ref_pointer_array, List<Item> &fields);
void update_used_tables()
{
item->update_used_tables() ; Item_func::update_used_tables();
used_tables_cache|= item->used_tables();
const_item_cache&= item->const_item();
}
const char *func_name() const { return "field"; } const char *func_name() const { return "field"; }
void fix_length_and_dec(); void fix_length_and_dec();
bool walk(Item_processor processor, byte *arg)
{
return item->walk(processor, arg) ||
Item_int_func::walk(processor, arg);
}
}; };

View File

@ -979,13 +979,14 @@ void Item_func_right::fix_length_and_dec()
String *Item_func_substr::val_str(String *str) String *Item_func_substr::val_str(String *str)
{ {
String *res = args[0]->val_str(str); String *res = args[0]->val_str(str);
int32 start = (int32) args[1]->val_int()-1; int32 start = (int32) args[1]->val_int();
int32 length = arg_count == 3 ? (int32) args[2]->val_int() : INT_MAX32; int32 length = arg_count == 3 ? (int32) args[2]->val_int() : INT_MAX32;
int32 tmp_length; int32 tmp_length;
if ((null_value=(args[0]->null_value || args[1]->null_value || if ((null_value=(args[0]->null_value || args[1]->null_value ||
(arg_count == 3 && args[2]->null_value)))) (arg_count == 3 && args[2]->null_value))))
return 0; /* purecov: inspected */ return 0; /* purecov: inspected */
start= (int32)((start < 0) ? res->length() + start : start -1);
start=res->charpos(start); start=res->charpos(start);
length=res->charpos(length,start); length=res->charpos(length,start);
if (start < 0 || (uint) start+1 > res->length() || length <= 0) if (start < 0 || (uint) start+1 > res->length() || length <= 0)
@ -1659,81 +1660,53 @@ void Item_func_elt::fix_length_and_dec()
max_length=0; max_length=0;
decimals=0; decimals=0;
if (agg_arg_collations(collation, args, arg_count)) if (agg_arg_collations(collation, args+1, arg_count-1))
return; return;
for (uint i=0 ; i < arg_count ; i++) for (uint i=1 ; i < arg_count ; i++)
{ {
set_if_bigger(max_length,args[i]->max_length); set_if_bigger(max_length,args[i]->max_length);
set_if_bigger(decimals,args[i]->decimals); set_if_bigger(decimals,args[i]->decimals);
} }
maybe_null=1; // NULL if wrong first arg maybe_null=1; // NULL if wrong first arg
with_sum_func= with_sum_func || item->with_sum_func;
used_tables_cache|=item->used_tables();
const_item_cache&=item->const_item();
}
void Item_func_elt::split_sum_func(Item **ref_pointer_array,
List<Item> &fields)
{
if (item->with_sum_func && item->type() != SUM_FUNC_ITEM)
item->split_sum_func(ref_pointer_array, fields);
else if (item->used_tables() || item->type() == SUM_FUNC_ITEM)
{
uint el= fields.elements;
fields.push_front(item);
ref_pointer_array[el]= item;
item= new Item_ref(ref_pointer_array + el, 0, item->name);
}
Item_str_func::split_sum_func(ref_pointer_array, fields);
}
void Item_func_elt::update_used_tables()
{
Item_func::update_used_tables();
item->update_used_tables();
used_tables_cache|=item->used_tables();
const_item_cache&=item->const_item();
} }
double Item_func_elt::val() double Item_func_elt::val()
{ {
uint tmp; uint tmp;
if ((tmp=(uint) item->val_int()) == 0 || tmp > arg_count) if ((tmp=(uint) args[0]->val_int()) == 0 || tmp >= arg_count)
{ {
null_value=1; null_value=1;
return 0.0; return 0.0;
} }
null_value=0; null_value=0;
return args[tmp-1]->val(); return args[tmp]->val();
} }
longlong Item_func_elt::val_int() longlong Item_func_elt::val_int()
{ {
uint tmp; uint tmp;
if ((tmp=(uint) item->val_int()) == 0 || tmp > arg_count) if ((tmp=(uint) args[0]->val_int()) == 0 || tmp >= arg_count)
{ {
null_value=1; null_value=1;
return 0; return 0;
} }
null_value=0; null_value=0;
return args[tmp-1]->val_int(); return args[tmp]->val_int();
} }
String *Item_func_elt::val_str(String *str) String *Item_func_elt::val_str(String *str)
{ {
uint tmp; uint tmp;
String *res; String *res;
if ((tmp=(uint) item->val_int()) == 0 || tmp > arg_count) if ((tmp=(uint) args[0]->val_int()) == 0 || tmp >= arg_count)
{ {
null_value=1; null_value=1;
return NULL; return NULL;
} }
null_value=0; null_value=0;
res= args[tmp-1]->val_str(str); res= args[tmp]->val_str(str);
res->set_charset(charset()); res->set_charset(charset());
return res; return res;
} }

View File

@ -372,29 +372,13 @@ public:
class Item_func_elt :public Item_str_func class Item_func_elt :public Item_str_func
{ {
Item *item;
public: public:
Item_func_elt(Item *a,List<Item> &list) :Item_str_func(list),item(a) {} Item_func_elt(List<Item> &list) :Item_str_func(list) {}
~Item_func_elt() { delete item; }
double val(); double val();
longlong val_int(); longlong val_int();
String *val_str(String *str); String *val_str(String *str);
bool fix_fields(THD *thd, TABLE_LIST *tlist, Item **ref)
{
return (item->fix_fields(thd, tlist, &item) ||
item->check_cols(1) ||
Item_func::fix_fields(thd, tlist, ref));
}
void split_sum_func(Item **ref_pointer_array, List<Item> &fields);
void fix_length_and_dec(); void fix_length_and_dec();
void update_used_tables();
const char *func_name() const { return "elt"; } const char *func_name() const { return "elt"; }
bool walk(Item_processor processor, byte *arg)
{
return item->walk(processor, arg) ||
Item_str_func::walk(processor, arg);
}
}; };

View File

@ -380,7 +380,7 @@ longlong Item_func_time_to_sec::val_int()
static bool get_interval_value(Item *args,interval_type int_type, static bool get_interval_value(Item *args,interval_type int_type,
String *str_value, INTERVAL *t) String *str_value, INTERVAL *t)
{ {
long array[4],value; long array[5],value;
const char *str; const char *str;
uint32 length; uint32 length;
LINT_INIT(value); LINT_INIT(str); LINT_INIT(length); LINT_INIT(value); LINT_INIT(str); LINT_INIT(length);

View File

@ -627,6 +627,7 @@ static SYMBOL sql_functions[] = {
{ "STD", SYM(STD_SYM),0,0}, { "STD", SYM(STD_SYM),0,0},
{ "STDDEV", SYM(STD_SYM),0,0}, { "STDDEV", SYM(STD_SYM),0,0},
{ "STRCMP", SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_strcmp)}, { "STRCMP", SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_strcmp)},
{ "SUBSTR", SYM(SUBSTRING),0,0},
{ "SUBSTRING", SYM(SUBSTRING),0,0}, { "SUBSTRING", SYM(SUBSTRING),0,0},
{ "SUBSTRING_INDEX", SYM(SUBSTRING_INDEX),0,0}, { "SUBSTRING_INDEX", SYM(SUBSTRING_INDEX),0,0},
{ "SUBTIME", SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_subtime)}, { "SUBTIME", SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_subtime)},

View File

@ -959,5 +959,5 @@ my_net_read(NET *net)
return len; return len;
} }
#endif /* EMBEDDED_LIBRARY */ #endif /* #ifndef EMBEDDED_LIBRARY */

View File

@ -832,10 +832,10 @@ static SEL_TREE *get_mm_tree(PARAM *param,COND *cond)
Field *field=((Item_field*) (func->key_item()))->field; Field *field=((Item_field*) (func->key_item()))->field;
Item_result cmp_type=field->cmp_type(); Item_result cmp_type=field->cmp_type();
tree= get_mm_parts(param,field,Item_func::EQ_FUNC, tree= get_mm_parts(param,field,Item_func::EQ_FUNC,
func->arguments()[0],cmp_type); func->arguments()[1],cmp_type);
if (!tree) if (!tree)
DBUG_RETURN(tree); // Not key field DBUG_RETURN(tree); // Not key field
for (uint i=1 ; i < func->argument_count(); i++) for (uint i=2 ; i < func->argument_count(); i++)
{ {
SEL_TREE *new_tree=get_mm_parts(param,field,Item_func::EQ_FUNC, SEL_TREE *new_tree=get_mm_parts(param,field,Item_func::EQ_FUNC,
func->arguments()[i],cmp_type); func->arguments()[i],cmp_type);

View File

@ -16,7 +16,7 @@ v/*
"ANO", "ANO",
"Nemohu vytvo-Bøit soubor '%-.64s' (chybový kód: %d)", "Nemohu vytvo-Bøit soubor '%-.64s' (chybový kód: %d)",
"Nemohu vytvo-Bøit tabulku '%-.64s' (chybový kód: %d)", "Nemohu vytvo-Bøit tabulku '%-.64s' (chybový kód: %d)",
"Nemohu vytvo-Bøit databázi '%-.64s', chyba %d", "Nemohu vytvo-Bøit databázi '%-.64s' (chybový kód: %d)",
"Nemohu vytvo-Bøit databázi '%-.64s'; databáze ji¾ existuje", "Nemohu vytvo-Bøit databázi '%-.64s'; databáze ji¾ existuje",
"Nemohu zru-B¹it databázi '%-.64s', databáze neexistuje", "Nemohu zru-B¹it databázi '%-.64s', databáze neexistuje",
"Chyba p-Bøi ru¹ení databáze (nemohu vymazat '%-.64s', chyba %d)", "Chyba p-Bøi ru¹ení databáze (nemohu vymazat '%-.64s', chyba %d)",
@ -222,7 +222,7 @@ v/*
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -10,7 +10,7 @@
"JA", "JA",
"Kan ikke oprette filen '%-.64s' (Fejlkode: %d)", "Kan ikke oprette filen '%-.64s' (Fejlkode: %d)",
"Kan ikke oprette tabellen '%-.64s' (Fejlkode: %d)", "Kan ikke oprette tabellen '%-.64s' (Fejlkode: %d)",
"Kan ikke oprette databasen '%-.64s'. Fejl %d", "Kan ikke oprette databasen '%-.64s' (Fejlkode: %d)",
"Kan ikke oprette databasen '%-.64s'; databasen eksisterer", "Kan ikke oprette databasen '%-.64s'; databasen eksisterer",
"Kan ikke slette (droppe) '%-.64s'; databasen eksisterer ikke", "Kan ikke slette (droppe) '%-.64s'; databasen eksisterer ikke",
"Fejl ved sletning (drop) af databasen (kan ikke slette '%-.64s', Fejl %d)", "Fejl ved sletning (drop) af databasen (kan ikke slette '%-.64s', Fejl %d)",
@ -216,7 +216,7 @@
"CREATE DATABASE er ikke tilladt mens en tråd holder på globalt read lock", "CREATE DATABASE er ikke tilladt mens en tråd holder på globalt read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -224,7 +224,7 @@
"CREATE DATABASE niet toegestaan terwijl thread een globale 'read lock' bezit", "CREATE DATABASE niet toegestaan terwijl thread een globale 'read lock' bezit",
"Foutieve parameters voor %s", "Foutieve parameters voor %s",
"%-.32s@%-.64s mag geen nieuwe gebruikers creeren", "%-.32s@%-.64s mag geen nieuwe gebruikers creeren",
"Incorrecte tabel definitie; Alle MERGE tabellen moeten tot dezelfde database behoren", "Incorrecte tabel definitie; alle MERGE tabellen moeten tot dezelfde database behoren",
"Deadlock gevonden tijdens lock-aanvraag poging; Probeer herstart van de transactie", "Deadlock gevonden tijdens lock-aanvraag poging; Probeer herstart van de transactie",
"Het gebruikte tabel type ondersteund geen FULLTEXT indexen", "Het gebruikte tabel type ondersteund geen FULLTEXT indexen",
"Kan foreign key beperking niet toevoegen", "Kan foreign key beperking niet toevoegen",

View File

@ -7,7 +7,7 @@
"YES", "YES",
"Can't create file '%-.64s' (errno: %d)", "Can't create file '%-.64s' (errno: %d)",
"Can't create table '%-.64s' (errno: %d)", "Can't create table '%-.64s' (errno: %d)",
"Can't create database '%-.64s'. (errno: %d)", "Can't create database '%-.64s' (errno: %d)",
"Can't create database '%-.64s'; database exists", "Can't create database '%-.64s'; database exists",
"Can't drop database '%-.64s'; database doesn't exist", "Can't drop database '%-.64s'; database doesn't exist",
"Error dropping database (can't delete '%-.64s', errno: %d)", "Error dropping database (can't delete '%-.64s', errno: %d)",
@ -213,7 +213,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -12,7 +12,7 @@
"JAH", "JAH",
"Ei suuda luua faili '%-.64s' (veakood: %d)", "Ei suuda luua faili '%-.64s' (veakood: %d)",
"Ei suuda luua tabelit '%-.64s' (veakood: %d)", "Ei suuda luua tabelit '%-.64s' (veakood: %d)",
"Ei suuda luua andmebaasi '%-.64s'. (veakood: %d)", "Ei suuda luua andmebaasi '%-.64s' (veakood: %d)",
"Ei suuda luua andmebaasi '%-.64s': andmebaas juba eksisteerib", "Ei suuda luua andmebaasi '%-.64s': andmebaas juba eksisteerib",
"Ei suuda kustutada andmebaasi '%-.64s': andmebaasi ei eksisteeri", "Ei suuda kustutada andmebaasi '%-.64s': andmebaasi ei eksisteeri",
"Viga andmebaasi kustutamisel (ei suuda kustutada faili '%-.64s', veakood: %d)", "Viga andmebaasi kustutamisel (ei suuda kustutada faili '%-.64s', veakood: %d)",

View File

@ -7,7 +7,7 @@
"OUI", "OUI",
"Ne peut créer le fichier '%-.64s' (Errcode: %d)", "Ne peut créer le fichier '%-.64s' (Errcode: %d)",
"Ne peut créer la table '%-.64s' (Errcode: %d)", "Ne peut créer la table '%-.64s' (Errcode: %d)",
"Ne peut créer la base '%-.64s'. Erreur %d", "Ne peut créer la base '%-.64s' (Erreur %d)",
"Ne peut créer la base '%-.64s'; elle existe déjà", "Ne peut créer la base '%-.64s'; elle existe déjà",
"Ne peut effacer la base '%-.64s'; elle n'existe pas", "Ne peut effacer la base '%-.64s'; elle n'existe pas",
"Ne peut effacer la base '%-.64s' (erreur %d)", "Ne peut effacer la base '%-.64s' (erreur %d)",
@ -213,7 +213,7 @@
"CREATE DATABASE n'est pas autorisée pendant qu'une tâche possède un verrou global en lecture", "CREATE DATABASE n'est pas autorisée pendant qu'une tâche possède un verrou global en lecture",
"Mauvais arguments à %s", "Mauvais arguments à %s",
"%-.32s@%-.64s n'est pas autorisé à créer de nouveaux utilisateurs", "%-.32s@%-.64s n'est pas autorisé à créer de nouveaux utilisateurs",
"Définition de table incorrecte : toutes les tables MERGE doivent être dans la même base de donnée", "Définition de table incorrecte; toutes les tables MERGE doivent être dans la même base de donnée",
"Deadlock découvert en essayant d'obtenir les verrous : essayez de redémarrer la transaction", "Deadlock découvert en essayant d'obtenir les verrous : essayez de redémarrer la transaction",
"Le type de table utilisé ne supporte pas les index FULLTEXT", "Le type de table utilisé ne supporte pas les index FULLTEXT",
"Impossible d'ajouter des contraintes d'index externe", "Impossible d'ajouter des contraintes d'index externe",

View File

@ -14,9 +14,9 @@
"isamchk", "isamchk",
"Nein", "Nein",
"Ja", "Ja",
"Kann Datei '%-.64s' nicht erzeugen. (Fehler: %d)", "Kann Datei '%-.64s' nicht erzeugen (Fehler: %d)",
"Kann Tabelle '%-.64s' nicht erzeugen. (Fehler: %d)", "Kann Tabelle '%-.64s' nicht erzeugen (Fehler: %d)",
"Kann Datenbank '%-.64s' nicht erzeugen. (Fehler: %d)", "Kann Datenbank '%-.64s' nicht erzeugen (Fehler: %d)",
"Kann Datenbank '%-.64s' nicht erzeugen; datenbank '%-.64s' existiert bereits.", "Kann Datenbank '%-.64s' nicht erzeugen; datenbank '%-.64s' existiert bereits.",
"Kann Datenbank '%-.64s' nicht löschen; keine Datenbank '%-.64s' vorhanden.", "Kann Datenbank '%-.64s' nicht löschen; keine Datenbank '%-.64s' vorhanden.",
"Fehler beim Löschen der Datenbank. ('%-.64s' kann nicht gelöscht werden, Fehlernuumer: %d)", "Fehler beim Löschen der Datenbank. ('%-.64s' kann nicht gelöscht werden, Fehlernuumer: %d)",
@ -222,7 +222,7 @@
"Solange ein globaler Read LOCK gesetzt ist, ist CREATE DATABASE nicht zulässig.", "Solange ein globaler Read LOCK gesetzt ist, ist CREATE DATABASE nicht zulässig.",
"Falsche Argumente für %s", "Falsche Argumente für %s",
"%-.32s@%-.64s is nicht berechtigt neue Benutzer hinzuzufügen.", "%-.32s@%-.64s is nicht berechtigt neue Benutzer hinzuzufügen.",
"Falsche Tabellendefinition: Sämtliche MERGE-Tabellen müssen in derselben Datenbank sein.", "Falsche Tabellendefinition; sämtliche MERGE-Tabellen müssen in derselben Datenbank sein.",
"Beim Versuch einen Lock anzufordern ist ein Deadlock aufgetreten. Es wird versucht die Transaktion erneut zu starten.", "Beim Versuch einen Lock anzufordern ist ein Deadlock aufgetreten. Es wird versucht die Transaktion erneut zu starten.",
"Der verwendete Tabellentyp unterstützt keinen FULLTEXT-Index.", "Der verwendete Tabellentyp unterstützt keinen FULLTEXT-Index.",
"Foreign_Key Beschränkung konnte nicht hinzugefügt werden.", "Foreign_Key Beschränkung konnte nicht hinzugefügt werden.",

View File

@ -7,8 +7,8 @@
"ΝΑΙ", "ΝΑΙ",
"Αδύνατη η δημιουργία του αρχείου '%-.64s' (κωδικός λάθους: %d)", "Αδύνατη η δημιουργία του αρχείου '%-.64s' (κωδικός λάθους: %d)",
"Αδύνατη η δημιουργία του πίνακα '%-.64s' (κωδικός λάθους: %d)", "Αδύνατη η δημιουργία του πίνακα '%-.64s' (κωδικός λάθους: %d)",
"Αδύνατη η δημιουργία της βάσης δεδομένων '%-.64s'. (κωδικός λάθους: %d)", "Αδύνατη η δημιουργία της βάσης δεδομένων '%-.64s' (κωδικός λάθους: %d)",
"Αδύνατη η δημιουργία της βάσης δεδομένων '%-.64s'. Η βάση δεδομένων υπάρχει ήδη", "Αδύνατη η δημιουργία της βάσης δεδομένων '%-.64s'; Η βάση δεδομένων υπάρχει ήδη",
"Αδύνατη η διαγραφή της βάσης δεδομένων '%-.64s'. Η βάση δεδομένων δεν υπάρχει", "Αδύνατη η διαγραφή της βάσης δεδομένων '%-.64s'. Η βάση δεδομένων δεν υπάρχει",
"Παρουσιάστηκε πρόβλημα κατά τη διαγραφή της βάσης δεδομένων (αδύνατη η διαγραφή '%-.64s', κωδικός λάθους: %d)", "Παρουσιάστηκε πρόβλημα κατά τη διαγραφή της βάσης δεδομένων (αδύνατη η διαγραφή '%-.64s', κωδικός λάθους: %d)",
"Παρουσιάστηκε πρόβλημα κατά τη διαγραφή της βάσης δεδομένων (αδύνατη η διαγραφή του φακέλλου '%-.64s', κωδικός λάθους: %d)", "Παρουσιάστηκε πρόβλημα κατά τη διαγραφή της βάσης δεδομένων (αδύνατη η διαγραφή του φακέλλου '%-.64s', κωδικός λάθους: %d)",
@ -213,7 +213,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -215,7 +215,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -7,7 +7,7 @@
"SI", "SI",
"Impossibile creare il file '%-.64s' (errno: %d)", "Impossibile creare il file '%-.64s' (errno: %d)",
"Impossibile creare la tabella '%-.64s' (errno: %d)", "Impossibile creare la tabella '%-.64s' (errno: %d)",
"Impossibile creare il database '%-.64s'. (errno: %d)", "Impossibile creare il database '%-.64s' (errno: %d)",
"Impossibile creare il database '%-.64s'; il database esiste", "Impossibile creare il database '%-.64s'; il database esiste",
"Impossibile cancellare '%-.64s'; il database non esiste", "Impossibile cancellare '%-.64s'; il database non esiste",
"Errore durante la cancellazione del database (impossibile cancellare '%-.64s', errno: %d)", "Errore durante la cancellazione del database (impossibile cancellare '%-.64s', errno: %d)",

View File

@ -215,7 +215,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -213,7 +213,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -9,7 +9,7 @@
"JA", "JA",
"Kan ikkje opprette fila '%-.64s' (Feilkode: %d)", "Kan ikkje opprette fila '%-.64s' (Feilkode: %d)",
"Kan ikkje opprette tabellen '%-.64s' (Feilkode: %d)", "Kan ikkje opprette tabellen '%-.64s' (Feilkode: %d)",
"Kan ikkje opprette databasen '%-.64s'. Feil %d", "Kan ikkje opprette databasen '%-.64s' (Feilkode: %d)",
"Kan ikkje opprette databasen '%-.64s'; databasen eksisterer", "Kan ikkje opprette databasen '%-.64s'; databasen eksisterer",
"Kan ikkje fjerne (drop) '%-.64s'; databasen eksisterer ikkje", "Kan ikkje fjerne (drop) '%-.64s'; databasen eksisterer ikkje",
"Feil ved fjerning (drop) av databasen (kan ikkje slette '%-.64s', feil %d)", "Feil ved fjerning (drop) av databasen (kan ikkje slette '%-.64s', feil %d)",
@ -215,7 +215,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -9,7 +9,7 @@
"JA", "JA",
"Kan ikke opprette fila '%-.64s' (Feilkode: %d)", "Kan ikke opprette fila '%-.64s' (Feilkode: %d)",
"Kan ikke opprette tabellen '%-.64s' (Feilkode: %d)", "Kan ikke opprette tabellen '%-.64s' (Feilkode: %d)",
"Kan ikke opprette databasen '%-.64s'. Feil %d", "Kan ikke opprette databasen '%-.64s' (Feilkode: %d)",
"Kan ikke opprette databasen '%-.64s'; databasen eksisterer", "Kan ikke opprette databasen '%-.64s'; databasen eksisterer",
"Kan ikke fjerne (drop) '%-.64s'; databasen eksisterer ikke", "Kan ikke fjerne (drop) '%-.64s'; databasen eksisterer ikke",
"Feil ved fjerning (drop) av databasen (kan ikke slette '%-.64s', feil %d)", "Feil ved fjerning (drop) av databasen (kan ikke slette '%-.64s', feil %d)",
@ -215,7 +215,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -11,7 +11,7 @@
"TAK", "TAK",
"Nie mo¿na stworzyæ pliku '%-.64s' (Kod b³êdu: %d)", "Nie mo¿na stworzyæ pliku '%-.64s' (Kod b³êdu: %d)",
"Nie mo¿na stworzyæ tabeli '%-.64s' (Kod b³êdu: %d)", "Nie mo¿na stworzyæ tabeli '%-.64s' (Kod b³êdu: %d)",
"Nie mo¿na stworzyæ bazy danych '%-.64s'. B³?d %d", "Nie mo¿na stworzyæ bazy danych '%-.64s' (Kod b³êdu: %d)",
"Nie mo¿na stworzyæ bazy danych '%-.64s'; baza danych ju¿ istnieje", "Nie mo¿na stworzyæ bazy danych '%-.64s'; baza danych ju¿ istnieje",
"Nie mo¿na usun?æ bazy danych '%-.64s'; baza danych nie istnieje", "Nie mo¿na usun?æ bazy danych '%-.64s'; baza danych nie istnieje",
"B³?d podczas usuwania bazy danych (nie mo¿na usun?æ '%-.64s', b³?d %d)", "B³?d podczas usuwania bazy danych (nie mo¿na usun?æ '%-.64s', b³?d %d)",
@ -217,7 +217,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -11,7 +11,7 @@
"DA", "DA",
"Nu pot sa creez fisierul '%-.64s' (Eroare: %d)", "Nu pot sa creez fisierul '%-.64s' (Eroare: %d)",
"Nu pot sa creez tabla '%-.64s' (Eroare: %d)", "Nu pot sa creez tabla '%-.64s' (Eroare: %d)",
"Nu pot sa creez baza de date '%-.64s'. (Eroare: %d)", "Nu pot sa creez baza de date '%-.64s' (Eroare: %d)",
"Nu pot sa creez baza de date '%-.64s'; baza de date exista deja", "Nu pot sa creez baza de date '%-.64s'; baza de date exista deja",
"Nu pot sa drop baza de date '%-.64s'; baza da date este inexistenta", "Nu pot sa drop baza de date '%-.64s'; baza da date este inexistenta",
"Eroare dropuind baza de date (nu pot sa sterg '%-.64s', Eroare: %d)", "Eroare dropuind baza de date (nu pot sa sterg '%-.64s', Eroare: %d)",
@ -217,7 +217,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -9,7 +9,7 @@
"ДА", "ДА",
"Невозможно создать файл '%-.64s' (ошибка: %d)", "Невозможно создать файл '%-.64s' (ошибка: %d)",
"Невозможно создать таблицу '%-.64s' (ошибка: %d)", "Невозможно создать таблицу '%-.64s' (ошибка: %d)",
"Невозможно создать базу данных '%-.64s'. (ошибка: %d)", "Невозможно создать базу данных '%-.64s' (ошибка: %d)",
"Невозможно создать базу данных '%-.64s'. База данных уже существует", "Невозможно создать базу данных '%-.64s'. База данных уже существует",
"Невозможно удалить базу данных '%-.64s'. Такой базы данных нет", "Невозможно удалить базу данных '%-.64s'. Такой базы данных нет",
"Ошибка при удалении базы данных (невозможно удалить '%-.64s', ошибка: %d)", "Ошибка при удалении базы данных (невозможно удалить '%-.64s', ошибка: %d)",

View File

@ -13,7 +13,7 @@
"DA", "DA",
"Ne mogu da kreiram file '%-.64s' (errno: %d)", "Ne mogu da kreiram file '%-.64s' (errno: %d)",
"Ne mogu da kreiram tabelu '%-.64s' (errno: %d)", "Ne mogu da kreiram tabelu '%-.64s' (errno: %d)",
"Ne mogu da kreiram bazu '%-.64s'. (errno: %d)", "Ne mogu da kreiram bazu '%-.64s' (errno: %d)",
"Ne mogu da kreiram bazu '%-.64s'; baza veæ postoji.", "Ne mogu da kreiram bazu '%-.64s'; baza veæ postoji.",
"Ne mogu da izbrišem bazu '%-.64s'; baza ne postoji.", "Ne mogu da izbrišem bazu '%-.64s'; baza ne postoji.",
"Ne mogu da izbrišem bazu (ne mogu da izbrišem '%-.64s', errno: %d)", "Ne mogu da izbrišem bazu (ne mogu da izbrišem '%-.64s', errno: %d)",
@ -219,7 +219,7 @@
"Komanda 'CREATE DATABASE' nije dozvoljena dok thread globalno zakljuèava èitanje podataka", "Komanda 'CREATE DATABASE' nije dozvoljena dok thread globalno zakljuèava èitanje podataka",
"Pogrešni argumenti prosleðeni na %s", "Pogrešni argumenti prosleðeni na %s",
"Korisniku %-.32s@%-.64s nije dozvoljeno da kreira nove korisnike", "Korisniku %-.32s@%-.64s nije dozvoljeno da kreira nove korisnike",
"Pogrešna definicija tabele; Sve 'MERGE' tabele moraju biti u istoj bazi podataka", "Pogrešna definicija tabele; sve 'MERGE' tabele moraju biti u istoj bazi podataka",
"Unakrsno zakljuèavanje pronaðeno kada sam pokušao da dobijem pravo na zakljuèavanje; Probajte da restartujete transakciju", "Unakrsno zakljuèavanje pronaðeno kada sam pokušao da dobijem pravo na zakljuèavanje; Probajte da restartujete transakciju",
"Upotrebljeni tip tabele ne podržava 'FULLTEXT' indekse", "Upotrebljeni tip tabele ne podržava 'FULLTEXT' indekse",
"Ne mogu da dodam proveru spoljnog kljuèa", "Ne mogu da dodam proveru spoljnog kljuèa",

View File

@ -15,7 +15,7 @@
"Áno", "Áno",
"Nemô¾em vytvori» súbor '%-.64s' (chybový kód: %d)", "Nemô¾em vytvori» súbor '%-.64s' (chybový kód: %d)",
"Nemô¾em vytvori» tabuµku '%-.64s' (chybový kód: %d)", "Nemô¾em vytvori» tabuµku '%-.64s' (chybový kód: %d)",
"Nemô¾em vytvori» databázu '%-.64s'. (chybový kód: %d)", "Nemô¾em vytvori» databázu '%-.64s' (chybový kód: %d)",
"Nemô¾em vytvori» databázu '%-.64s'; databáza existuje", "Nemô¾em vytvori» databázu '%-.64s'; databáza existuje",
"Nemô¾em zmaza» databázu '%-.64s'; databáza neexistuje", "Nemô¾em zmaza» databázu '%-.64s'; databáza neexistuje",
"Chyba pri mazaní databázy (nemô¾em zmaza» '%-.64s', chybový kód: %d)", "Chyba pri mazaní databázy (nemô¾em zmaza» '%-.64s', chybový kód: %d)",
@ -221,7 +221,7 @@
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -8,7 +8,7 @@
"SI", "SI",
"No puedo crear archivo '%-.64s' (Error: %d)", "No puedo crear archivo '%-.64s' (Error: %d)",
"No puedo crear tabla '%-.64s' (Error: %d)", "No puedo crear tabla '%-.64s' (Error: %d)",
"No puedo crear base de datos '%-.64s'. Error %d", "No puedo crear base de datos '%-.64s' (Error: %d)",
"No puedo crear base de datos '%-.64s'; la base de datos ya existe", "No puedo crear base de datos '%-.64s'; la base de datos ya existe",
"No puedo eliminar base de datos '%-.64s'; la base de datos no existe", "No puedo eliminar base de datos '%-.64s'; la base de datos no existe",
"Error eliminando la base de datos(no puedo borrar '%-.64s', error %d)", "Error eliminando la base de datos(no puedo borrar '%-.64s', error %d)",
@ -214,7 +214,7 @@
"CREATE DATABASE no permitido mientras un thread está ejerciendo un bloqueo de lectura global", "CREATE DATABASE no permitido mientras un thread está ejerciendo un bloqueo de lectura global",
"Wrong arguments to %s", "Wrong arguments to %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"The used table type doesn't support FULLTEXT indexes", "The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -7,7 +7,7 @@
"YES", "YES",
"Kan inte skapa filen '%-.64s' (Felkod: %d)", "Kan inte skapa filen '%-.64s' (Felkod: %d)",
"Kan inte skapa tabellen '%-.64s' (Felkod: %d)", "Kan inte skapa tabellen '%-.64s' (Felkod: %d)",
"Kan inte skapa databasen '%-.64s'. (Felkod: %d)", "Kan inte skapa databasen '%-.64s' (Felkod: %d)",
"Databasen '%-.64s' existerar redan", "Databasen '%-.64s' existerar redan",
"Kan inte radera databasen '%-.64s'; databasen finns inte", "Kan inte radera databasen '%-.64s'; databasen finns inte",
"Fel vid radering av databasen (Kan inte radera '%-.64s'. Felkod: %d)", "Fel vid radering av databasen (Kan inte radera '%-.64s'. Felkod: %d)",
@ -213,7 +213,7 @@
"CREATE DATABASE är inte tillåtet när man har ett globalt läslås", "CREATE DATABASE är inte tillåtet när man har ett globalt läslås",
"Felaktiga argument till %s", "Felaktiga argument till %s",
"%-.32s@%-.64s har inte rättighet att skapa nya användare", "%-.32s@%-.64s har inte rättighet att skapa nya användare",
"Felaktig tabelldefinition. Alla tabeller i en MERGE-tabell måste vara i samma databas", "Felaktig tabelldefinition; alla tabeller i en MERGE-tabell måste vara i samma databas",
"Fick 'DEADLOCK' vid låsförsök av block/rad. Försök att starta om transaktionen", "Fick 'DEADLOCK' vid låsförsök av block/rad. Försök att starta om transaktionen",
"Tabelltypen har inte hantering av FULLTEXT-index", "Tabelltypen har inte hantering av FULLTEXT-index",
"Kan inte lägga till 'FOREIGN KEY constraint'", "Kan inte lägga till 'FOREIGN KEY constraint'",

View File

@ -12,7 +12,7 @@
"ТАК", "ТАК",
"Не можу створити файл '%-.64s' (помилка: %d)", "Не можу створити файл '%-.64s' (помилка: %d)",
"Не можу створити таблицю '%-.64s' (помилка: %d)", "Не можу створити таблицю '%-.64s' (помилка: %d)",
"îÅ ÍÏÖÕ ÓÔ×ÏÒÉÔÉ ÂÁÚÕ ÄÁÎÎÉÈ '%-.64s'. (ÐÏÍÉÌËÁ: %d)", "îÅ ÍÏÖÕ ÓÔ×ÏÒÉÔÉ ÂÁÚÕ ÄÁÎÎÉÈ '%-.64s' (ÐÏÍÉÌËÁ: %d)",
"Не можу створити базу данних '%-.64s'. База данних ╕сну╓", "Не можу створити базу данних '%-.64s'. База данних ╕сну╓",
"Не можу видалити базу данних '%-.64s'. База данних не ╕сну╓", "Не можу видалити базу данних '%-.64s'. База данних не ╕сну╓",
"Не можу видалити базу данних (Не можу видалити '%-.64s', помилка: %d)", "Не можу видалити базу данних (Не можу видалити '%-.64s', помилка: %d)",
@ -218,7 +218,7 @@
"CREATE DATABASE не дозволено доки г╕лка перебува╓ п╕д загальним блокуванням читання", "CREATE DATABASE не дозволено доки г╕лка перебува╓ п╕д загальним блокуванням читання",
"Хибний аргумент для %s", "Хибний аргумент для %s",
"Користувачу %-.32s@%-.64s не дозволено створювати нових користувач╕в", "Користувачу %-.32s@%-.64s не дозволено створювати нових користувач╕в",
"Incorrect table definition; All MERGE tables must be in the same database", "Incorrect table definition; all MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"Використаний тип таблиц╕ не п╕дтриму╓ FULLTEXT ╕ндекс╕в", "Використаний тип таблиц╕ не п╕дтриму╓ FULLTEXT ╕ндекс╕в",
"Cannot add foreign key constraint", "Cannot add foreign key constraint",

View File

@ -404,13 +404,12 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list,
{ {
char buff[160]; char buff[160];
if (duplic == DUP_IGNORE) if (duplic == DUP_IGNORE)
sprintf(buff,ER(ER_INSERT_INFO),info.records, sprintf(buff, ER(ER_INSERT_INFO), (ulong) info.records,
(lock_type == TL_WRITE_DELAYED) ? 0 : (lock_type == TL_WRITE_DELAYED) ? (ulong) 0 :
info.records-info.copied, (ulong) (info.records - info.copied), (ulong) thd->cuted_fields);
thd->cuted_fields);
else else
sprintf(buff,ER(ER_INSERT_INFO),info.records,info.deleted, sprintf(buff, ER(ER_INSERT_INFO), (ulong) info.records,
thd->cuted_fields); (ulong) info.deleted, (ulong) thd->cuted_fields);
::send_ok(thd,info.copied+info.deleted,(ulonglong)id,buff); ::send_ok(thd,info.copied+info.deleted,(ulonglong)id,buff);
} }
free_underlaid_joins(thd, &thd->lex.select_lex); free_underlaid_joins(thd, &thd->lex.select_lex);
@ -1494,11 +1493,11 @@ bool select_insert::send_eof()
{ {
char buff[160]; char buff[160];
if (info.handle_duplicates == DUP_IGNORE) if (info.handle_duplicates == DUP_IGNORE)
sprintf(buff,ER(ER_INSERT_INFO),info.records,info.records-info.copied, sprintf(buff, ER(ER_INSERT_INFO), (ulong) info.records,
thd->cuted_fields); (ulong) (info.records - info.copied), (ulong) thd->cuted_fields);
else else
sprintf(buff,ER(ER_INSERT_INFO),info.records,info.deleted, sprintf(buff, ER(ER_INSERT_INFO), (ulong) info.records,
thd->cuted_fields); (ulong) info.deleted, (ulong) thd->cuted_fields);
::send_ok(thd,info.copied+info.deleted,last_insert_id,buff); ::send_ok(thd,info.copied+info.deleted,last_insert_id,buff);
return 0; return 0;
} }

View File

@ -318,8 +318,8 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
error= -1; // Error on read error= -1; // Error on read
goto err; goto err;
} }
sprintf(name,ER(ER_LOAD_INFO),info.records,info.deleted, sprintf(name, ER(ER_LOAD_INFO), (ulong) info.records, (ulong) info.deleted,
info.records-info.copied,thd->cuted_fields); (ulong) (info.records - info.copied), (ulong) thd->cuted_fields);
send_ok(thd,info.copied+info.deleted,0L,name); send_ok(thd,info.copied+info.deleted,0L,name);
// on the slave thd->query is never initialized // on the slave thd->query is never initialized
if (!thd->slave_thread) if (!thd->slave_thread)

View File

@ -2416,8 +2416,8 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
query_cache_invalidate3(thd, table_list, 0); query_cache_invalidate3(thd, table_list, 0);
end_temporary: end_temporary:
sprintf(tmp_name,ER(ER_INSERT_INFO),(ulong) (copied+deleted), sprintf(tmp_name, ER(ER_INSERT_INFO), (ulong) (copied + deleted),
(ulong) deleted, thd->cuted_fields); (ulong) deleted, (ulong) thd->cuted_fields);
send_ok(thd,copied+deleted,0L,tmp_name); send_ok(thd,copied+deleted,0L,tmp_name);
thd->some_tables_deleted=0; thd->some_tables_deleted=0;
DBUG_RETURN(0); DBUG_RETURN(0);

View File

@ -373,8 +373,8 @@ int mysql_update(THD *thd,
else else
{ {
char buff[80]; char buff[80];
sprintf(buff,ER(ER_UPDATE_INFO), (long) found, (long) updated, sprintf(buff, ER(ER_UPDATE_INFO), (ulong) found, (ulong) updated,
(long) thd->cuted_fields); (ulong) thd->cuted_fields);
send_ok(thd, send_ok(thd,
(thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated, (thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated,
thd->insert_id_used ? thd->insert_id() : 0L,buff); thd->insert_id_used ? thd->insert_id() : 0L,buff);
@ -993,8 +993,8 @@ bool multi_update::send_eof()
} }
sprintf(buff,ER(ER_UPDATE_INFO), (long) found, (long) updated, sprintf(buff, ER(ER_UPDATE_INFO), (ulong) found, (ulong) updated,
(long) thd->cuted_fields); (ulong) thd->cuted_fields);
::send_ok(thd, ::send_ok(thd,
(thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated, (thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated,
thd->insert_id_used ? thd->insert_id() : 0L,buff); thd->insert_id_used ? thd->insert_id() : 0L,buff);

View File

@ -2109,9 +2109,9 @@ all_or_any: ALL { $$ = 1; }
/* expressions that begin with 'expr' */ /* expressions that begin with 'expr' */
expr_expr: expr_expr:
expr IN_SYM '(' expr_list ')' expr IN_SYM '(' expr_list ')'
{ $$= new Item_func_in($1,*$4); } { $4->push_front($1); $$= new Item_func_in(*$4); }
| expr NOT IN_SYM '(' expr_list ')' | expr NOT IN_SYM '(' expr_list ')'
{ $$= new Item_func_not(new Item_func_in($1,*$5)); } { $5->push_front($1); $$= new Item_func_not(new Item_func_in(*$5)); }
| expr IN_SYM in_subselect | expr IN_SYM in_subselect
{ $$= new Item_in_subselect(YYTHD, $1, $3); } { $$= new Item_in_subselect(YYTHD, $1, $3); }
| expr NOT IN_SYM in_subselect | expr NOT IN_SYM in_subselect
@ -2211,9 +2211,9 @@ no_in_expr:
/* expressions that begin with 'expr' that does NOT follow AND */ /* expressions that begin with 'expr' that does NOT follow AND */
no_and_expr: no_and_expr:
no_and_expr IN_SYM '(' expr_list ')' no_and_expr IN_SYM '(' expr_list ')'
{ $$= new Item_func_in($1,*$4); } { $4->push_front($1); $$= new Item_func_in(*$4); }
| no_and_expr NOT IN_SYM '(' expr_list ')' | no_and_expr NOT IN_SYM '(' expr_list ')'
{ $$= new Item_func_not(new Item_func_in($1,*$5)); } { $5->push_front($1); $$= new Item_func_not(new Item_func_in(*$5)); }
| no_and_expr IN_SYM in_subselect | no_and_expr IN_SYM in_subselect
{ $$= new Item_in_subselect(YYTHD, $1, $3); } { $$= new Item_in_subselect(YYTHD, $1, $3); }
| no_and_expr NOT IN_SYM in_subselect | no_and_expr NOT IN_SYM in_subselect
@ -2389,7 +2389,7 @@ simple_expr:
| DAY_SYM '(' expr ')' | DAY_SYM '(' expr ')'
{ $$= new Item_func_dayofmonth($3); } { $$= new Item_func_dayofmonth($3); }
| ELT_FUNC '(' expr ',' expr_list ')' | ELT_FUNC '(' expr ',' expr_list ')'
{ $$= new Item_func_elt($3, *$5); } { $5->push_front($3); $$= new Item_func_elt(*$5); }
| MAKE_SET_SYM '(' expr ',' expr_list ')' | MAKE_SET_SYM '(' expr ',' expr_list ')'
{ $$= new Item_func_make_set($3, *$5); } { $$= new Item_func_make_set($3, *$5); }
| ENCRYPT '(' expr ')' | ENCRYPT '(' expr ')'
@ -2427,7 +2427,7 @@ simple_expr:
$$= new Item_func_date_format (new Item_func_from_unixtime($3),$5,0); $$= new Item_func_date_format (new Item_func_from_unixtime($3),$5,0);
} }
| FIELD_FUNC '(' expr ',' expr_list ')' | FIELD_FUNC '(' expr ',' expr_list ')'
{ $$= new Item_func_field($3, *$5); } { $5->push_front($3); $$= new Item_func_field(*$5); }
| GEOMFROMTEXT '(' expr ')' | GEOMFROMTEXT '(' expr ')'
{ $$= new Item_func_geometry_from_text($3); } { $$= new Item_func_geometry_from_text($3); }
| GEOMFROMTEXT '(' expr ',' expr ')' | GEOMFROMTEXT '(' expr ',' expr ')'