Commit d9b108c1 authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

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
parents fe5a7354 a6b1a6fe
...@@ -1085,7 +1085,7 @@ static bool add_line(String &buffer,char *line,char *in_string, ...@@ -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, ...@@ -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())
......
...@@ -281,3 +281,42 @@ ALTER TABLE t1 DISABLE KEYS; ...@@ -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;
...@@ -71,3 +71,24 @@ orange ...@@ -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;
...@@ -111,3 +111,35 @@ id ...@@ -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;
...@@ -297,9 +297,9 @@ select FIELD('b','A' COLLATE latin1_bin,'B'); ...@@ -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); ...@@ -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` ( ...@@ -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)
...@@ -10,22 +10,22 @@ select * from t1; ...@@ -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;
......
...@@ -144,3 +144,30 @@ ALTER TABLE t1 DISABLE KEYS; ...@@ -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;
...@@ -41,3 +41,25 @@ create table t1 (row int not null, col int not null, val varchar(255) not null); ...@@ -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;
...@@ -54,3 +54,22 @@ insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9); ...@@ -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;
...@@ -167,9 +167,9 @@ select FIELD('b','A','B'); ...@@ -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'); ...@@ -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 ...@@ -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;
...@@ -2,7 +2,9 @@ ...@@ -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);
......
...@@ -1154,7 +1154,13 @@ void Item_func_coalesce::fix_length_and_dec() ...@@ -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) ...@@ -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) ...@@ -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() ...@@ -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() ...@@ -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() ...@@ -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();
......
...@@ -600,42 +600,26 @@ class cmp_item_sort_string_in_static :public cmp_item_string ...@@ -600,42 +600,26 @@ class cmp_item_sort_string_in_static :public cmp_item_string
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 */
......
...@@ -1174,32 +1174,32 @@ longlong Item_func_field::val_int() ...@@ -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() ...@@ -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);
} }
......
...@@ -626,33 +626,14 @@ class Item_func_locate :public Item_int_func ...@@ -626,33 +626,14 @@ class Item_func_locate :public Item_int_func
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);
}
}; };
......
...@@ -979,13 +979,14 @@ void Item_func_right::fix_length_and_dec() ...@@ -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() ...@@ -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;
} }
......
...@@ -372,29 +372,13 @@ class Item_func_soundex :public Item_str_func ...@@ -372,29 +372,13 @@ class Item_func_soundex :public Item_str_func
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);
}
}; };
......
...@@ -380,7 +380,7 @@ longlong Item_func_time_to_sec::val_int() ...@@ -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);
......
...@@ -627,6 +627,7 @@ static SYMBOL sql_functions[] = { ...@@ -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)},
......
...@@ -959,5 +959,5 @@ my_net_read(NET *net) ...@@ -959,5 +959,5 @@ my_net_read(NET *net)
return len; return len;
} }
#endif /* EMBEDDED_LIBRARY */ #endif /* #ifndef EMBEDDED_LIBRARY */
...@@ -832,10 +832,10 @@ static SEL_TREE *get_mm_tree(PARAM *param,COND *cond) ...@@ -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);
......
...@@ -16,7 +16,7 @@ v/* ...@@ -16,7 +16,7 @@ v/*
"ANO", "ANO",
"Nemohu vytvo-Bit soubor '%-.64s' (chybov kd: %d)", "Nemohu vytvo-Bit soubor '%-.64s' (chybov kd: %d)",
"Nemohu vytvo-Bit tabulku '%-.64s' (chybov kd: %d)", "Nemohu vytvo-Bit tabulku '%-.64s' (chybov kd: %d)",
"Nemohu vytvo-Bit databzi '%-.64s', chyba %d", "Nemohu vytvo-Bit databzi '%-.64s' (chybov kd: %d)",
"Nemohu vytvo-Bit databzi '%-.64s'; databze ji existuje", "Nemohu vytvo-Bit databzi '%-.64s'; databze ji existuje",
"Nemohu zru-Bit databzi '%-.64s', databze neexistuje", "Nemohu zru-Bit databzi '%-.64s', databze neexistuje",
"Chyba p-Bi ruen databze (nemohu vymazat '%-.64s', chyba %d)", "Chyba p-Bi ruen databze (nemohu vymazat '%-.64s', chyba %d)",
...@@ -222,7 +222,7 @@ v/* ...@@ -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",
......
...@@ -10,7 +10,7 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -224,7 +224,7 @@ ...@@ -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",
......
...@@ -7,7 +7,7 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -12,7 +12,7 @@ ...@@ -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)",
......
...@@ -7,7 +7,7 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -14,9 +14,9 @@ ...@@ -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 @@ ...@@ -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.",
......
...@@ -7,8 +7,8 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -215,7 +215,7 @@ ...@@ -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",
......
...@@ -7,7 +7,7 @@ ...@@ -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)",
......
...@@ -215,7 +215,7 @@ ...@@ -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",
......
...@@ -213,7 +213,7 @@ ...@@ -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",
......
...@@ -9,7 +9,7 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -9,7 +9,7 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
"TAK", "TAK",
"Nie mona stworzy pliku '%-.64s' (Kod bdu: %d)", "Nie mona stworzy pliku '%-.64s' (Kod bdu: %d)",
"Nie mona stworzy tabeli '%-.64s' (Kod bdu: %d)", "Nie mona stworzy tabeli '%-.64s' (Kod bdu: %d)",
"Nie mona stworzy bazy danych '%-.64s'. B?d %d", "Nie mona stworzy bazy danych '%-.64s' (Kod bdu: %d)",
"Nie mona stworzy bazy danych '%-.64s'; baza danych ju istnieje", "Nie mona stworzy bazy danych '%-.64s'; baza danych ju istnieje",
"Nie mona usun? bazy danych '%-.64s'; baza danych nie istnieje", "Nie mona usun? bazy danych '%-.64s'; baza danych nie istnieje",
"B?d podczas usuwania bazy danych (nie mona usun? '%-.64s', b?d %d)", "B?d podczas usuwania bazy danych (nie mona usun? '%-.64s', b?d %d)",
...@@ -217,7 +217,7 @@ ...@@ -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",
......
...@@ -11,7 +11,7 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
"", "",
" '%-.64s' (: %d)", " '%-.64s' (: %d)",
" '%-.64s' (: %d)", " '%-.64s' (: %d)",
" '%-.64s'. (: %d)", " '%-.64s' (: %d)",
" '%-.64s'. ", " '%-.64s'. ",
" '%-.64s'. ", " '%-.64s'. ",
" ( '%-.64s', : %d)", " ( '%-.64s', : %d)",
......
...@@ -13,7 +13,7 @@ ...@@ -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 izbriem bazu '%-.64s'; baza ne postoji.", "Ne mogu da izbriem bazu '%-.64s'; baza ne postoji.",
"Ne mogu da izbriem bazu (ne mogu da izbriem '%-.64s', errno: %d)", "Ne mogu da izbriem bazu (ne mogu da izbriem '%-.64s', errno: %d)",
...@@ -219,7 +219,7 @@ ...@@ -219,7 +219,7 @@
"Komanda 'CREATE DATABASE' nije dozvoljena dok thread globalno zakljuava itanje podataka", "Komanda 'CREATE DATABASE' nije dozvoljena dok thread globalno zakljuava itanje podataka",
"Pogreni argumenti prosleeni na %s", "Pogreni argumenti prosleeni na %s",
"Korisniku %-.32s@%-.64s nije dozvoljeno da kreira nove korisnike", "Korisniku %-.32s@%-.64s nije dozvoljeno da kreira nove korisnike",
"Pogrena definicija tabele; Sve 'MERGE' tabele moraju biti u istoj bazi podataka", "Pogrena definicija tabele; sve 'MERGE' tabele moraju biti u istoj bazi podataka",
"Unakrsno zakljuavanje pronaeno kada sam pokuao da dobijem pravo na zakljuavanje; Probajte da restartujete transakciju", "Unakrsno zakljuavanje pronaeno kada sam pokuao da dobijem pravo na zakljuavanje; Probajte da restartujete transakciju",
"Upotrebljeni tip tabele ne podrava 'FULLTEXT' indekse", "Upotrebljeni tip tabele ne podrava 'FULLTEXT' indekse",
"Ne mogu da dodam proveru spoljnog kljua", "Ne mogu da dodam proveru spoljnog kljua",
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
"no", "no",
"Nemem vytvori sbor '%-.64s' (chybov kd: %d)", "Nemem vytvori sbor '%-.64s' (chybov kd: %d)",
"Nemem vytvori tabuku '%-.64s' (chybov kd: %d)", "Nemem vytvori tabuku '%-.64s' (chybov kd: %d)",
"Nemem vytvori databzu '%-.64s'. (chybov kd: %d)", "Nemem vytvori databzu '%-.64s' (chybov kd: %d)",
"Nemem vytvori databzu '%-.64s'; databza existuje", "Nemem vytvori databzu '%-.64s'; databza existuje",
"Nemem zmaza databzu '%-.64s'; databza neexistuje", "Nemem zmaza databzu '%-.64s'; databza neexistuje",
"Chyba pri mazan databzy (nemem zmaza '%-.64s', chybov kd: %d)", "Chyba pri mazan databzy (nemem zmaza '%-.64s', chybov kd: %d)",
...@@ -221,7 +221,7 @@ ...@@ -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",
......
...@@ -8,7 +8,7 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -7,7 +7,7 @@ ...@@ -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 @@ ...@@ -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'",
......
...@@ -12,7 +12,7 @@ ...@@ -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 @@ ...@@ -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",
......
...@@ -404,13 +404,12 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, ...@@ -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() ...@@ -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;
} }
......
...@@ -318,8 +318,8 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, ...@@ -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)
......
...@@ -2416,8 +2416,8 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -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);
......
...@@ -373,8 +373,8 @@ int mysql_update(THD *thd, ...@@ -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() ...@@ -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);
......
...@@ -2109,9 +2109,9 @@ all_or_any: ALL { $$ = 1; } ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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 ')'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment