mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
Merge bk-internal:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1 sql/item_func.h: Auto merged sql/sql_yacc.yy: Auto merged
This commit is contained in:
commit
56b220b11e
51 changed files with 533 additions and 440 deletions
|
@ -1,4 +1,4 @@
|
|||
-- require r/have_openssl_2.require
|
||||
disable_query_log;
|
||||
SHOW STATUS LIKE "SSL_get_cipher";
|
||||
SHOW STATUS LIKE "Ssl_cipher";
|
||||
enable_query_log;
|
||||
|
|
|
@ -10,10 +10,10 @@ CASE "c" when "a" then 1 when "b" then 2 ELSE 3 END
|
|||
3
|
||||
select CASE BINARY "b" when "a" then 1 when "B" then 2 WHEN "b" then "ok" END;
|
||||
CASE BINARY "b" when "a" then 1 when "B" then 2 WHEN "b" then "ok" END
|
||||
0
|
||||
ok
|
||||
select CASE "b" when "a" then 1 when binary "B" then 2 WHEN "b" then "ok" END;
|
||||
CASE "b" when "a" then 1 when binary "B" then 2 WHEN "b" then "ok" END
|
||||
0
|
||||
ok
|
||||
select CASE concat("a","b") when concat("ab","") then "a" when "b" then "b" end;
|
||||
CASE concat("a","b") when concat("ab","") then "a" when "b" then "b" end
|
||||
a
|
||||
|
@ -72,6 +72,48 @@ yellow
|
|||
green
|
||||
drop table t1;
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1 SELECT
|
||||
CASE WHEN 1 THEN _latin1'a' COLLATE latin1_danish_ci ELSE _latin1'a' END AS c1,
|
||||
CASE WHEN 1 THEN _latin1'a' ELSE _latin1'a' COLLATE latin1_danish_ci END AS c2,
|
||||
CASE WHEN 1 THEN 'a' ELSE 1 END AS c3,
|
||||
CASE WHEN 1 THEN 1 ELSE 'a' END AS c4,
|
||||
CASE WHEN 1 THEN 'a' ELSE 1.0 END AS c5,
|
||||
CASE WHEN 1 THEN 1.0 ELSE 'a' END AS c6,
|
||||
CASE WHEN 1 THEN 1 ELSE 1.0 END AS c7,
|
||||
CASE WHEN 1 THEN 1.0 ELSE 1 END AS c8
|
||||
;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` char(1) character set latin1 collate latin1_danish_ci default NULL,
|
||||
`c2` char(1) character set latin1 collate latin1_danish_ci default NULL,
|
||||
`c3` char(1) default NULL,
|
||||
`c4` char(1) default NULL,
|
||||
`c5` char(3) default NULL,
|
||||
`c6` char(3) default NULL,
|
||||
`c7` double(3,1) default NULL,
|
||||
`c8` double(3,1) default NULL
|
||||
) TYPE=MyISAM CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
SELECT CASE
|
||||
WHEN 1
|
||||
THEN _latin1'a' COLLATE latin1_danish_ci
|
||||
ELSE _latin1'a' COLLATE latin1_swedish_ci
|
||||
END;
|
||||
ERROR HY000: Illegal mix of collations (latin1_danish_ci,EXPLICIT) and (latin1_swedish_ci,EXPLICIT) for operation 'case'
|
||||
SELECT CASE _latin1'a' COLLATE latin1_general_ci
|
||||
WHEN _latin1'a' COLLATE latin1_danish_ci THEN 1
|
||||
WHEN _latin1'a' COLLATE latin1_swedish_ci THEN 2
|
||||
END;
|
||||
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_danish_ci,EXPLICIT), (latin1_swedish_ci,EXPLICIT) for operation 'case'
|
||||
SELECT
|
||||
CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END,
|
||||
CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END,
|
||||
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END,
|
||||
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END
|
||||
;
|
||||
CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END
|
||||
1 2 1 2
|
||||
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);
|
||||
|
|
|
@ -111,3 +111,56 @@ id
|
|||
5
|
||||
9
|
||||
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;
|
||||
select '1.0' in (1,2);
|
||||
'1.0' in (1,2)
|
||||
1
|
||||
select 1 in ('1.0',2);
|
||||
1 in ('1.0',2)
|
||||
1
|
||||
select 1 in (1,'2.0');
|
||||
1 in (1,'2.0')
|
||||
1
|
||||
select 1 in ('1.0',2.0);
|
||||
1 in ('1.0',2.0)
|
||||
1
|
||||
select 1 in (1.0,'2.0');
|
||||
1 in (1.0,'2.0')
|
||||
1
|
||||
select 1 in ('1.1',2);
|
||||
1 in ('1.1',2)
|
||||
0
|
||||
select 1 in ('1.1',2.0);
|
||||
1 in ('1.1',2.0)
|
||||
0
|
||||
|
|
|
@ -297,9 +297,9 @@ select FIELD('b','A' COLLATE latin1_bin,'B');
|
|||
FIELD('b','A' COLLATE latin1_bin,'B')
|
||||
0
|
||||
select FIELD(_latin2'b','A','B');
|
||||
Illegal mix of collations (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) 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');
|
||||
Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) 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);
|
||||
FIELD('b',_latin2'A','B',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)
|
||||
0
|
||||
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');
|
||||
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');
|
||||
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');
|
||||
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);
|
||||
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));
|
||||
collation(bin(130)) coercibility(bin(130))
|
||||
latin1_swedish_ci 3
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
Variable_name Value
|
||||
jkhjkhfs
|
||||
Ssl_cipher EDH-RSA-DES-CBC3-SHA
|
||||
|
|
|
@ -788,7 +788,7 @@ id id3
|
|||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
create table t1 (a char(20), unique (a(5))) type=innodb;
|
||||
ERROR HY000: Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the store engine doesn't support unique sub keys
|
||||
ERROR HY000: Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the storage engine doesn't support unique sub keys
|
||||
create table t1 (a char(20), index (a(5))) type=innodb;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
|
|
|
@ -178,9 +178,9 @@ t3 CREATE TABLE `t3` (
|
|||
) TYPE=MRG_MyISAM CHARSET=latin1 UNION=(`t1`,`t2`)
|
||||
create table t4 (a int not null, b char(10), key(a)) type=MERGE UNION=(t1,t2);
|
||||
select * from t4;
|
||||
ERROR HY000: Can't open file: 't4.MRG'. (errno: 143)
|
||||
ERROR HY000: Can't open file: 't4.MRG' (errno: 143)
|
||||
alter table t4 add column c int;
|
||||
ERROR HY000: Can't open file: 't4.MRG'. (errno: 143)
|
||||
ERROR HY000: Can't open file: 't4.MRG' (errno: 143)
|
||||
create database mysqltest;
|
||||
create table mysqltest.t6 (a int not null primary key auto_increment, message char(20));
|
||||
create table t5 (a int not null, b char(20), key(a)) type=MERGE UNION=(test.t1,mysqltest.t6);
|
||||
|
|
|
@ -7,7 +7,7 @@ select 1 | NULL,1 & NULL,1+NULL,1-NULL;
|
|||
NULL NULL NULL NULL
|
||||
select NULL=NULL,NULL<>NULL,IFNULL(NULL,1.1)+0,IFNULL(NULL,1) | 0;
|
||||
NULL=NULL NULL<>NULL IFNULL(NULL,1.1)+0 IFNULL(NULL,1) | 0
|
||||
NULL NULL 1 1
|
||||
NULL NULL 1.1 1
|
||||
select strcmp("a",NULL),(1<NULL)+0.0,NULL regexp "a",null like "a%","a%" like null;
|
||||
strcmp("a",NULL) (1<NULL)+0.0 NULL regexp "a" null like "a%" "a%" like null
|
||||
NULL NULL NULL NULL NULL
|
||||
|
|
|
@ -10,22 +10,22 @@ select * from t1;
|
|||
f1
|
||||
5
|
||||
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;
|
||||
f1
|
||||
5
|
||||
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;
|
||||
f1
|
||||
5
|
||||
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;
|
||||
f1
|
||||
5
|
||||
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.db where user='ssl_user%';
|
||||
flush privileges;
|
||||
|
|
|
@ -1,2 +1,25 @@
|
|||
SHOW STATUS LIKE 'SSL%';
|
||||
SHOW STATUS LIKE 'Ssl%';
|
||||
Variable_name Value
|
||||
Ssl_accepts 1
|
||||
Ssl_finished_accepts 1
|
||||
Ssl_finished_connects 0
|
||||
Ssl_accept_renegotiates 0
|
||||
Ssl_connect_renegotiates 0
|
||||
Ssl_callback_cache_hits 0
|
||||
Ssl_session_cache_hits 0
|
||||
Ssl_session_cache_misses 0
|
||||
Ssl_session_cache_timeouts 0
|
||||
Ssl_used_session_cache_entries 1
|
||||
Ssl_client_connects 0
|
||||
Ssl_session_cache_overflows 0
|
||||
Ssl_session_cache_size 128
|
||||
Ssl_session_cache_mode SERVER
|
||||
Ssl_sessions_reused 0
|
||||
Ssl_ctx_verify_mode 7
|
||||
Ssl_ctx_verify_depth 4294967295
|
||||
Ssl_verify_mode 7
|
||||
Ssl_verify_depth 4294967295
|
||||
Ssl_version TLSv1
|
||||
Ssl_cipher EDH-RSA-DES-CBC3-SHA
|
||||
Ssl_cipher_list
|
||||
Ssl_default_timeout 7200
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
repair table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair error Can't open file: 't1.MYI'. (errno: 130)
|
||||
test.t1 repair error Can't open file: 't1.MYI' (errno: 130)
|
||||
repair table t1 use_frm;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair warning Number of rows changed from 0 to 1
|
||||
|
|
|
@ -347,7 +347,7 @@ a 1
|
|||
hello 1
|
||||
drop table t1;
|
||||
create table t1 (a text, key (a(300)));
|
||||
ERROR HY000: Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the store engine doesn't support unique sub keys
|
||||
ERROR HY000: Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the storage engine doesn't support unique sub keys
|
||||
create table t1 (a text, key (a(255)));
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
|
|
|
@ -42,6 +42,44 @@ insert into t1 values (1,1,'orange'),(1,2,'large'),(2,1,'yellow'),(2,2,'medium')
|
|||
select max(case col when 1 then val else null end) as color from t1 group by row;
|
||||
drop table t1;
|
||||
|
||||
SET NAMES latin1;
|
||||
|
||||
#
|
||||
# CASE and argument types/collations aggregation into result
|
||||
#
|
||||
CREATE TABLE t1 SELECT
|
||||
CASE WHEN 1 THEN _latin1'a' COLLATE latin1_danish_ci ELSE _latin1'a' END AS c1,
|
||||
CASE WHEN 1 THEN _latin1'a' ELSE _latin1'a' COLLATE latin1_danish_ci END AS c2,
|
||||
CASE WHEN 1 THEN 'a' ELSE 1 END AS c3,
|
||||
CASE WHEN 1 THEN 1 ELSE 'a' END AS c4,
|
||||
CASE WHEN 1 THEN 'a' ELSE 1.0 END AS c5,
|
||||
CASE WHEN 1 THEN 1.0 ELSE 'a' END AS c6,
|
||||
CASE WHEN 1 THEN 1 ELSE 1.0 END AS c7,
|
||||
CASE WHEN 1 THEN 1.0 ELSE 1 END AS c8
|
||||
;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--error 1265
|
||||
SELECT CASE
|
||||
WHEN 1
|
||||
THEN _latin1'a' COLLATE latin1_danish_ci
|
||||
ELSE _latin1'a' COLLATE latin1_swedish_ci
|
||||
END;
|
||||
|
||||
--error 1268
|
||||
SELECT CASE _latin1'a' COLLATE latin1_general_ci
|
||||
WHEN _latin1'a' COLLATE latin1_danish_ci THEN 1
|
||||
WHEN _latin1'a' COLLATE latin1_swedish_ci THEN 2
|
||||
END;
|
||||
|
||||
SELECT
|
||||
CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END,
|
||||
CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END,
|
||||
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END,
|
||||
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END
|
||||
;
|
||||
|
||||
#
|
||||
# COALESCE is a CASE abbrevation:
|
||||
#
|
||||
|
@ -52,7 +90,6 @@ drop table t1;
|
|||
#
|
||||
# Check COALESCE argument types aggregation
|
||||
|
||||
SET NAMES latin1;
|
||||
--error 1265
|
||||
CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a');
|
||||
--error 1265
|
||||
|
|
|
@ -54,3 +54,30 @@ insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9);
|
|||
select * from t1 where id in (2,5,9);
|
||||
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;
|
||||
|
||||
select '1.0' in (1,2);
|
||||
select 1 in ('1.0',2);
|
||||
select 1 in (1,'2.0');
|
||||
select 1 in ('1.0',2.0);
|
||||
select 1 in (1.0,'2.0');
|
||||
select 1 in ('1.1',2);
|
||||
select 1 in ('1.1',2.0);
|
||||
|
|
|
@ -167,9 +167,9 @@ select FIELD('b','A','B');
|
|||
select FIELD('B','A','B');
|
||||
select FIELD('b' COLLATE latin1_bin,'A','B');
|
||||
select FIELD('b','A' COLLATE latin1_bin,'B');
|
||||
--error 1265
|
||||
--error 1268
|
||||
select FIELD(_latin2'b','A','B');
|
||||
--error 1265
|
||||
--error 1268
|
||||
select FIELD('b',_latin2'A','B');
|
||||
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' in (_latin1'a' collate latin1_bin,_latin1'b');
|
||||
select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin);
|
||||
--error 1269
|
||||
--error 1268
|
||||
select _latin2'B' in (_latin1'a',_latin1'b');
|
||||
--error 1269
|
||||
--error 1268
|
||||
select _latin1'B' in (_latin2'a',_latin1'b');
|
||||
--error 1269
|
||||
--error 1268
|
||||
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');
|
||||
--error 1269
|
||||
--error 1268
|
||||
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin);
|
||||
|
||||
select collation(bin(130)), coercibility(bin(130));
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
# Use mysql-test-run with --with-openssl option.
|
||||
-- source include/have_openssl_1.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(f1 int);
|
||||
insert into t1 values (5);
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# We want to test everything with SSL turned on.
|
||||
-- source include/have_openssl_2.inc
|
||||
|
||||
SHOW STATUS LIKE 'SSL%';
|
||||
SHOW STATUS LIKE 'Ssl%';
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ then
|
|||
echo "Installing all prepared tables"
|
||||
fi
|
||||
if (
|
||||
$pkgdatadir/mysql_create_system_tables $create_option $mdata $hostname $windows
|
||||
$bindir/mysql_create_system_tables $create_option $mdata $hostname $windows
|
||||
if test -n "$fill_help_tables"
|
||||
then
|
||||
cat $fill_help_tables
|
||||
|
|
|
@ -24,6 +24,32 @@
|
|||
#include "mysql_priv.h"
|
||||
#include <m_ctype.h>
|
||||
|
||||
static Item_result item_store_type(Item_result a,Item_result b)
|
||||
{
|
||||
if (a == STRING_RESULT || b == STRING_RESULT)
|
||||
return STRING_RESULT;
|
||||
else if (a == REAL_RESULT || b == REAL_RESULT)
|
||||
return REAL_RESULT;
|
||||
else
|
||||
return INT_RESULT;
|
||||
}
|
||||
|
||||
static void agg_result_type(Item_result *type, Item **items, uint nitems)
|
||||
{
|
||||
uint i;
|
||||
type[0]= items[0]->result_type();
|
||||
for (i=1 ; i < nitems ; i++)
|
||||
type[0]= item_store_type(type[0], items[i]->result_type());
|
||||
}
|
||||
|
||||
static void agg_cmp_type(Item_result *type, Item **items, uint nitems)
|
||||
{
|
||||
uint i;
|
||||
type[0]= items[0]->result_type();
|
||||
for (i=1 ; i < nitems ; i++)
|
||||
type[0]= item_cmp_type(type[0], items[i]->result_type());
|
||||
}
|
||||
|
||||
static void my_coll_agg_error(DTCollation &c1, DTCollation &c2, const char *fname)
|
||||
{
|
||||
my_error(ER_CANT_AGGREGATE_2COLLATIONS,MYF(0),
|
||||
|
@ -556,10 +582,7 @@ void Item_func_between::fix_length_and_dec()
|
|||
*/
|
||||
if (!args[0] || !args[1] || !args[2])
|
||||
return;
|
||||
cmp_type=item_cmp_type(args[0]->result_type(),
|
||||
item_cmp_type(args[1]->result_type(),
|
||||
args[2]->result_type()));
|
||||
|
||||
agg_cmp_type(&cmp_type, args, 3);
|
||||
if (cmp_type == STRING_RESULT &&
|
||||
agg_arg_collations_for_comparison(cmp_collation, args, 3))
|
||||
return;
|
||||
|
@ -650,28 +673,17 @@ longlong Item_func_between::val_int()
|
|||
return 0;
|
||||
}
|
||||
|
||||
static Item_result item_store_type(Item_result a,Item_result b)
|
||||
{
|
||||
if (a == STRING_RESULT || b == STRING_RESULT)
|
||||
return STRING_RESULT;
|
||||
else if (a == REAL_RESULT || b == REAL_RESULT)
|
||||
return REAL_RESULT;
|
||||
else
|
||||
return INT_RESULT;
|
||||
}
|
||||
|
||||
void
|
||||
Item_func_ifnull::fix_length_and_dec()
|
||||
{
|
||||
maybe_null=args[1]->maybe_null;
|
||||
max_length=max(args[0]->max_length,args[1]->max_length);
|
||||
decimals=max(args[0]->decimals,args[1]->decimals);
|
||||
if ((cached_result_type=item_store_type(args[0]->result_type(),
|
||||
args[1]->result_type())) !=
|
||||
REAL_RESULT)
|
||||
decimals= 0;
|
||||
agg_result_type(&cached_result_type, args, 2);
|
||||
if (cached_result_type == STRING_RESULT)
|
||||
agg_arg_collations(collation, args, arg_count);
|
||||
else if (cached_result_type != REAL_RESULT)
|
||||
decimals= 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -744,19 +756,18 @@ Item_func_if::fix_length_and_dec()
|
|||
cached_result_type= arg1_type;
|
||||
set_charset(args[1]->charset());
|
||||
}
|
||||
else if (arg1_type == STRING_RESULT || arg2_type == STRING_RESULT)
|
||||
{
|
||||
cached_result_type = STRING_RESULT;
|
||||
if (agg_arg_collations(collation, args+1, 2))
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
set_charset(&my_charset_bin); // Number
|
||||
if (arg1_type == REAL_RESULT || arg2_type == REAL_RESULT)
|
||||
cached_result_type = REAL_RESULT;
|
||||
agg_result_type(&cached_result_type, args+1, 2);
|
||||
if (cached_result_type == STRING_RESULT)
|
||||
{
|
||||
if (agg_arg_collations(collation, args+1, 2))
|
||||
return;
|
||||
}
|
||||
else
|
||||
cached_result_type=arg1_type; // Should be INT_RESULT
|
||||
{
|
||||
set_charset(&my_charset_bin); // Number
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -800,7 +811,7 @@ Item_func_nullif::fix_length_and_dec()
|
|||
{
|
||||
max_length=args[0]->max_length;
|
||||
decimals=args[0]->decimals;
|
||||
cached_result_type=args[0]->result_type();
|
||||
agg_result_type(&cached_result_type, args, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -863,64 +874,60 @@ Item *Item_func_case::find_item(String *str)
|
|||
String *first_expr_str,*tmp;
|
||||
longlong first_expr_int;
|
||||
double first_expr_real;
|
||||
bool int_used, real_used,str_used;
|
||||
int_used=real_used=str_used=0;
|
||||
|
||||
|
||||
/* These will be initialized later */
|
||||
LINT_INIT(first_expr_str);
|
||||
LINT_INIT(first_expr_int);
|
||||
LINT_INIT(first_expr_real);
|
||||
|
||||
// Compare every WHEN argument with it and return the first match
|
||||
for (uint i=0 ; i < arg_count ; i+=2)
|
||||
if (first_expr_num != -1)
|
||||
{
|
||||
if (!first_expr)
|
||||
switch (cmp_type)
|
||||
{
|
||||
// No expression between CASE and first WHEN
|
||||
case STRING_RESULT:
|
||||
// We can't use 'str' here as this may be overwritten
|
||||
if (!(first_expr_str= args[first_expr_num]->val_str(&str_value)))
|
||||
return else_expr_num != -1 ? args[else_expr_num] : 0; // Impossible
|
||||
break;
|
||||
case INT_RESULT:
|
||||
first_expr_int= args[first_expr_num]->val_int();
|
||||
if (args[first_expr_num]->null_value)
|
||||
return else_expr_num != -1 ? args[else_expr_num] : 0;
|
||||
break;
|
||||
case REAL_RESULT:
|
||||
first_expr_real= args[first_expr_num]->val();
|
||||
if (args[first_expr_num]->null_value)
|
||||
return else_expr_num != -1 ? args[else_expr_num] : 0;
|
||||
break;
|
||||
case ROW_RESULT:
|
||||
default:
|
||||
// This case should never be choosen
|
||||
DBUG_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Compare every WHEN argument with it and return the first match
|
||||
for (uint i=0 ; i < ncases ; i+=2)
|
||||
{
|
||||
if (first_expr_num == -1)
|
||||
{
|
||||
// No expression between CASE and the first WHEN
|
||||
if (args[i]->val_int())
|
||||
return args[i+1];
|
||||
continue;
|
||||
}
|
||||
switch (args[i]->result_type()) {
|
||||
switch (cmp_type) {
|
||||
case STRING_RESULT:
|
||||
if (!str_used)
|
||||
{
|
||||
str_used=1;
|
||||
// We can't use 'str' here as this may be overwritten
|
||||
if (!(first_expr_str= first_expr->val_str(&str_value)))
|
||||
return else_expr; // Impossible
|
||||
}
|
||||
if ((tmp=args[i]->val_str(str))) // If not null
|
||||
{
|
||||
/* QQ: COERCIBILITY */
|
||||
if (first_expr_is_binary || (args[i]->charset()->state & MY_CS_BINSORT))
|
||||
{
|
||||
if (sortcmp(tmp,first_expr_str,&my_charset_bin)==0)
|
||||
return args[i+1];
|
||||
}
|
||||
else if (sortcmp(tmp,first_expr_str,tmp->charset())==0)
|
||||
if (sortcmp(tmp,first_expr_str,cmp_collation.collation)==0)
|
||||
return args[i+1];
|
||||
}
|
||||
break;
|
||||
case INT_RESULT:
|
||||
if (!int_used)
|
||||
{
|
||||
int_used=1;
|
||||
first_expr_int= first_expr->val_int();
|
||||
if (first_expr->null_value)
|
||||
return else_expr;
|
||||
}
|
||||
if (args[i]->val_int()==first_expr_int && !args[i]->null_value)
|
||||
return args[i+1];
|
||||
break;
|
||||
case REAL_RESULT:
|
||||
if (!real_used)
|
||||
{
|
||||
real_used=1;
|
||||
first_expr_real= first_expr->val();
|
||||
if (first_expr->null_value)
|
||||
return else_expr;
|
||||
}
|
||||
if (args[i]->val()==first_expr_real && !args[i]->null_value)
|
||||
return args[i+1];
|
||||
break;
|
||||
|
@ -932,7 +939,7 @@ Item *Item_func_case::find_item(String *str)
|
|||
}
|
||||
}
|
||||
// No, WHEN clauses all missed, return ELSE expression
|
||||
return else_expr;
|
||||
return else_expr_num != -1 ? args[else_expr_num] : 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -988,104 +995,57 @@ double Item_func_case::val()
|
|||
return res;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
Item_func_case::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref)
|
||||
{
|
||||
if (first_expr && (first_expr->fix_fields(thd, tables, &first_expr) ||
|
||||
first_expr->check_cols(1)) ||
|
||||
else_expr && (else_expr->fix_fields(thd, tables, &else_expr) ||
|
||||
else_expr->check_cols(1)))
|
||||
return 1;
|
||||
if (Item_func::fix_fields(thd, tables, ref))
|
||||
return 1;
|
||||
if (first_expr)
|
||||
{
|
||||
used_tables_cache|=(first_expr)->used_tables();
|
||||
const_item_cache&= (first_expr)->const_item();
|
||||
with_sum_func= with_sum_func || (first_expr)->with_sum_func;
|
||||
first_expr_is_binary= first_expr->charset()->state & MY_CS_BINSORT;
|
||||
}
|
||||
if (else_expr)
|
||||
{
|
||||
used_tables_cache|=(else_expr)->used_tables();
|
||||
const_item_cache&= (else_expr)->const_item();
|
||||
with_sum_func= with_sum_func || (else_expr)->with_sum_func;
|
||||
}
|
||||
if (!else_expr || else_expr->maybe_null)
|
||||
maybe_null=1; // The result may be NULL
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void Item_func_case::split_sum_func(Item **ref_pointer_array,
|
||||
List<Item> &fields)
|
||||
{
|
||||
if (first_expr)
|
||||
{
|
||||
if (first_expr->with_sum_func && first_expr->type() != SUM_FUNC_ITEM)
|
||||
first_expr->split_sum_func(ref_pointer_array, fields);
|
||||
else if (first_expr->used_tables() || first_expr->type() == SUM_FUNC_ITEM)
|
||||
{
|
||||
uint el= fields.elements;
|
||||
fields.push_front(first_expr);
|
||||
ref_pointer_array[el]= first_expr;
|
||||
first_expr= new Item_ref(ref_pointer_array + el, 0, first_expr->name);
|
||||
}
|
||||
}
|
||||
if (else_expr)
|
||||
{
|
||||
if (else_expr->with_sum_func && else_expr->type() != SUM_FUNC_ITEM)
|
||||
else_expr->split_sum_func(ref_pointer_array, fields);
|
||||
else if (else_expr->used_tables() || else_expr->type() == SUM_FUNC_ITEM)
|
||||
{
|
||||
uint el= fields.elements;
|
||||
fields.push_front(else_expr);
|
||||
ref_pointer_array[el]= else_expr;
|
||||
else_expr= new Item_ref(ref_pointer_array + el, 0, else_expr->name);
|
||||
}
|
||||
}
|
||||
Item_func::split_sum_func(ref_pointer_array, fields);
|
||||
}
|
||||
|
||||
|
||||
void Item_func_case::set_outer_resolving()
|
||||
{
|
||||
first_expr->set_outer_resolving();
|
||||
else_expr->set_outer_resolving();
|
||||
Item_func::set_outer_resolving();
|
||||
}
|
||||
|
||||
void Item_func_case::update_used_tables()
|
||||
{
|
||||
Item_func::update_used_tables();
|
||||
if (first_expr)
|
||||
{
|
||||
used_tables_cache|=(first_expr)->used_tables();
|
||||
const_item_cache&= (first_expr)->const_item();
|
||||
}
|
||||
if (else_expr)
|
||||
{
|
||||
used_tables_cache|=(else_expr)->used_tables();
|
||||
const_item_cache&= (else_expr)->const_item();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Item_func_case::fix_length_and_dec()
|
||||
{
|
||||
Item **agg;
|
||||
uint nagg;
|
||||
|
||||
if (!(agg= (Item**) sql_alloc(sizeof(Item*)*(ncases+1))))
|
||||
return;
|
||||
|
||||
// Aggregate all THEN and ELSE expression types
|
||||
// and collations when string result
|
||||
|
||||
for (nagg= 0 ; nagg < ncases/2 ; nagg++)
|
||||
agg[nagg]= args[nagg*2+1];
|
||||
|
||||
if (else_expr_num != -1)
|
||||
agg[nagg++]= args[else_expr_num];
|
||||
|
||||
agg_result_type(&cached_result_type, agg, nagg);
|
||||
if ((cached_result_type == STRING_RESULT) &&
|
||||
agg_arg_collations(collation, agg, nagg))
|
||||
return;
|
||||
|
||||
|
||||
// Aggregate first expression and all THEN expression types
|
||||
// and collations when string comparison
|
||||
if (first_expr_num != -1)
|
||||
{
|
||||
agg[0]= args[first_expr_num];
|
||||
for (nagg= 0; nagg < ncases/2 ; nagg++)
|
||||
agg[nagg+1]= args[nagg*2];
|
||||
nagg++;
|
||||
agg_cmp_type(&cmp_type, agg, nagg);
|
||||
if ((cmp_type == STRING_RESULT) &&
|
||||
agg_arg_collations_for_comparison(cmp_collation, agg, nagg))
|
||||
return;
|
||||
}
|
||||
|
||||
if (!else_expr_num != -1 || args[else_expr_num]->maybe_null)
|
||||
maybe_null=1;
|
||||
|
||||
max_length=0;
|
||||
decimals=0;
|
||||
cached_result_type = args[1]->result_type();
|
||||
for (uint i=0 ; i < arg_count ; i+=2)
|
||||
for (uint i=0 ; i < ncases ; i+=2)
|
||||
{
|
||||
set_if_bigger(max_length,args[i+1]->max_length);
|
||||
set_if_bigger(decimals,args[i+1]->decimals);
|
||||
}
|
||||
if (else_expr != NULL)
|
||||
if (else_expr_num != -1)
|
||||
{
|
||||
set_if_bigger(max_length,else_expr->max_length);
|
||||
set_if_bigger(decimals,else_expr->decimals);
|
||||
set_if_bigger(max_length,args[else_expr_num]->max_length);
|
||||
set_if_bigger(decimals,args[else_expr_num]->decimals);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1144,13 +1104,11 @@ void Item_func_coalesce::fix_length_and_dec()
|
|||
{
|
||||
max_length= 0;
|
||||
decimals= 0;
|
||||
cached_result_type = args[0]->result_type();
|
||||
agg_result_type(&cached_result_type, args, arg_count);
|
||||
for (uint i=0 ; i < arg_count ; i++)
|
||||
{
|
||||
set_if_bigger(max_length,args[i]->max_length);
|
||||
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);
|
||||
|
@ -1420,7 +1378,7 @@ int cmp_item_row::compare(cmp_item *c)
|
|||
bool Item_func_in::nulls_in_row()
|
||||
{
|
||||
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())
|
||||
return 1;
|
||||
|
@ -1437,42 +1395,44 @@ static int srtcmp_in(CHARSET_INFO *cs, const String *x,const String *y)
|
|||
|
||||
void Item_func_in::fix_length_and_dec()
|
||||
{
|
||||
Item **arg, **arg_end;
|
||||
uint const_itm= 1;
|
||||
|
||||
agg_cmp_type(&cmp_type, args, arg_count);
|
||||
if ((cmp_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 =>
|
||||
they can't be processed as static
|
||||
*/
|
||||
if (const_item() && !nulls_in_row())
|
||||
if (const_itm && !nulls_in_row())
|
||||
{
|
||||
switch (item->result_type()) {
|
||||
switch (cmp_type) {
|
||||
case STRING_RESULT:
|
||||
uint i;
|
||||
cmp_collation.set(item->collation);
|
||||
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,
|
||||
array=new in_string(arg_count-1,(qsort2_cmp) srtcmp_in,
|
||||
cmp_collation.collation);
|
||||
break;
|
||||
case INT_RESULT:
|
||||
array= new in_longlong(arg_count);
|
||||
array= new in_longlong(arg_count-1);
|
||||
break;
|
||||
case REAL_RESULT:
|
||||
array= new in_double(arg_count);
|
||||
array= new in_double(arg_count-1);
|
||||
break;
|
||||
case ROW_RESULT:
|
||||
array= new in_row(arg_count, item);
|
||||
array= new in_row(arg_count-1, args[0]);
|
||||
break;
|
||||
default:
|
||||
DBUG_ASSERT(0);
|
||||
return;
|
||||
}
|
||||
uint j=0;
|
||||
for (uint i=0 ; i < arg_count ; i++)
|
||||
for (uint i=1 ; i < arg_count ; i++)
|
||||
{
|
||||
array->set(j,args[i]);
|
||||
if (!args[i]->null_value) // Skip NULL values
|
||||
|
@ -1485,19 +1445,19 @@ void Item_func_in::fix_length_and_dec()
|
|||
}
|
||||
else
|
||||
{
|
||||
in_item= cmp_item::get_comparator(item);
|
||||
in_item= cmp_item::get_comparator(args[0]);
|
||||
if (cmp_type == STRING_RESULT)
|
||||
in_item->cmp_charset= cmp_collation.collation;
|
||||
}
|
||||
maybe_null= item->maybe_null;
|
||||
maybe_null= args[0]->maybe_null;
|
||||
max_length= 1;
|
||||
used_tables_cache|=item->used_tables();
|
||||
const_item_cache&=item->const_item();
|
||||
const_item_cache&=args[0]->const_item();
|
||||
}
|
||||
|
||||
|
||||
void Item_func_in::print(String *str)
|
||||
{
|
||||
str->append('(');
|
||||
item->print(str);
|
||||
Item_func::print(str);
|
||||
str->append(')');
|
||||
}
|
||||
|
@ -1507,15 +1467,15 @@ longlong Item_func_in::val_int()
|
|||
{
|
||||
if (array)
|
||||
{
|
||||
int tmp=array->find(item);
|
||||
null_value=item->null_value || (!tmp && have_null);
|
||||
int tmp=array->find(args[0]);
|
||||
null_value=args[0]->null_value || (!tmp && have_null);
|
||||
return tmp;
|
||||
}
|
||||
in_item->store_value(item);
|
||||
if ((null_value=item->null_value))
|
||||
in_item->store_value(args[0]);
|
||||
if ((null_value=args[0]->null_value))
|
||||
return 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)
|
||||
return 1; // Would maybe be nice with i ?
|
||||
|
@ -1526,29 +1486,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()
|
||||
{
|
||||
ulonglong arg1= (ulonglong) args[0]->val_int();
|
||||
|
|
|
@ -348,27 +348,38 @@ public:
|
|||
|
||||
class Item_func_case :public Item_func
|
||||
{
|
||||
Item * first_expr, *else_expr;
|
||||
int first_expr_num, else_expr_num;
|
||||
enum Item_result cached_result_type;
|
||||
String tmp_value;
|
||||
bool first_expr_is_binary;
|
||||
uint ncases;
|
||||
Item_result cmp_type;
|
||||
DTCollation cmp_collation;
|
||||
public:
|
||||
Item_func_case(List<Item> &list, Item *first_expr_arg, Item *else_expr_arg)
|
||||
:Item_func(list), first_expr(first_expr_arg), else_expr(else_expr_arg),
|
||||
:Item_func(), first_expr_num(-1), else_expr_num(-1),
|
||||
cached_result_type(INT_RESULT)
|
||||
{}
|
||||
{
|
||||
ncases= list.elements;
|
||||
if (first_expr_arg)
|
||||
{
|
||||
first_expr_num= list.elements;
|
||||
list.push_back(first_expr_arg);
|
||||
}
|
||||
if (else_expr_arg)
|
||||
{
|
||||
else_expr_num= list.elements;
|
||||
list.push_back(else_expr_arg);
|
||||
}
|
||||
set_arguments(list);
|
||||
}
|
||||
double val();
|
||||
longlong val_int();
|
||||
String *val_str(String *);
|
||||
void fix_length_and_dec();
|
||||
void update_used_tables();
|
||||
enum Item_result result_type () const { return cached_result_type; }
|
||||
const char *func_name() const { return "case"; }
|
||||
void print(String *str);
|
||||
bool fix_fields(THD *thd, struct st_table_list *tlist, Item **ref);
|
||||
void split_sum_func(Item **ref_pointer_array, List<Item> &fields);
|
||||
Item *find_item(String *str);
|
||||
void set_outer_resolving();
|
||||
};
|
||||
|
||||
|
||||
|
@ -600,42 +611,27 @@ public:
|
|||
|
||||
class Item_func_in :public Item_int_func
|
||||
{
|
||||
Item *item;
|
||||
Item_result cmp_type;
|
||||
in_vector *array;
|
||||
cmp_item *in_item;
|
||||
bool have_null;
|
||||
DTCollation cmp_collation;
|
||||
public:
|
||||
Item_func_in(Item *a,List<Item> &list)
|
||||
:Item_int_func(list), item(a), array(0), in_item(0), have_null(0)
|
||||
Item_func_in(List<Item> &list)
|
||||
: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();
|
||||
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();
|
||||
~Item_func_in() { delete item; delete array; delete in_item; }
|
||||
~Item_func_in() { delete array; delete in_item; }
|
||||
optimize_type select_optimize() const
|
||||
{ return array ? OPTIMIZE_KEY : OPTIMIZE_NONE; }
|
||||
Item *key_item() const { return item; }
|
||||
Item *key_item() const { return args[0]; }
|
||||
void print(String *str);
|
||||
enum Functype functype() const { return IN_FUNC; }
|
||||
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();
|
||||
void set_outer_resolving()
|
||||
{
|
||||
item->set_outer_resolving();
|
||||
Item_int_func::set_outer_resolving();
|
||||
}
|
||||
};
|
||||
|
||||
/* Functions used by where clause */
|
||||
|
|
|
@ -102,10 +102,9 @@ eval_const_cond(COND *cond)
|
|||
return ((Item_func*) cond)->val_int() ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
|
||||
Item_func::Item_func(List<Item> &list)
|
||||
:allowed_arg_cols(1)
|
||||
void Item_func::set_arguments(List<Item> &list)
|
||||
{
|
||||
allowed_arg_cols= 1;
|
||||
arg_count=list.elements;
|
||||
if ((args=(Item**) sql_alloc(sizeof(Item*)*arg_count)))
|
||||
{
|
||||
|
@ -122,6 +121,12 @@ Item_func::Item_func(List<Item> &list)
|
|||
list.empty(); // Fields are used
|
||||
}
|
||||
|
||||
Item_func::Item_func(List<Item> &list)
|
||||
:allowed_arg_cols(1)
|
||||
{
|
||||
set_arguments(list);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Resolve references to table column for a function and it's argument
|
||||
|
|
|
@ -115,6 +115,7 @@ public:
|
|||
virtual const char *func_name() const { return "?"; }
|
||||
virtual bool const_item() const { return const_item_cache; }
|
||||
inline Item **arguments() const { return args; }
|
||||
void set_arguments(List<Item> &list);
|
||||
inline uint argument_count() const { return arg_count; }
|
||||
inline void remove_arguments() { arg_count=0; }
|
||||
virtual void split_sum_func(Item **ref_pointer_array, List<Item> &fields);
|
||||
|
|
|
@ -1660,81 +1660,53 @@ void Item_func_elt::fix_length_and_dec()
|
|||
max_length=0;
|
||||
decimals=0;
|
||||
|
||||
if (agg_arg_collations(collation, args, arg_count))
|
||||
if (agg_arg_collations(collation, args+1, arg_count-1))
|
||||
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(decimals,args[i]->decimals);
|
||||
}
|
||||
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()
|
||||
{
|
||||
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;
|
||||
return 0.0;
|
||||
}
|
||||
null_value=0;
|
||||
return args[tmp-1]->val();
|
||||
return args[tmp]->val();
|
||||
}
|
||||
|
||||
longlong Item_func_elt::val_int()
|
||||
{
|
||||
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;
|
||||
return 0;
|
||||
}
|
||||
null_value=0;
|
||||
return args[tmp-1]->val_int();
|
||||
return args[tmp]->val_int();
|
||||
}
|
||||
|
||||
String *Item_func_elt::val_str(String *str)
|
||||
{
|
||||
uint tmp;
|
||||
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;
|
||||
return NULL;
|
||||
}
|
||||
null_value=0;
|
||||
res= args[tmp-1]->val_str(str);
|
||||
res= args[tmp]->val_str(str);
|
||||
res->set_charset(charset());
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -372,29 +372,13 @@ public:
|
|||
|
||||
class Item_func_elt :public Item_str_func
|
||||
{
|
||||
Item *item;
|
||||
|
||||
public:
|
||||
Item_func_elt(Item *a,List<Item> &list) :Item_str_func(list),item(a) {}
|
||||
~Item_func_elt() { delete item; }
|
||||
Item_func_elt(List<Item> &list) :Item_str_func(list) {}
|
||||
double val();
|
||||
longlong val_int();
|
||||
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 update_used_tables();
|
||||
const char *func_name() const { return "elt"; }
|
||||
void set_outer_resolving()
|
||||
{
|
||||
item->set_outer_resolving();
|
||||
Item_str_func::set_outer_resolving();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -225,6 +225,12 @@ const char *localhost= "localhost", *delayed_user= "DELAYED";
|
|||
#endif
|
||||
|
||||
bool opt_large_files= sizeof(my_off_t) > 4;
|
||||
|
||||
/*
|
||||
Used with --help for detailed option
|
||||
*/
|
||||
bool opt_verbose= 0;
|
||||
|
||||
arg_cmp_func Arg_comparator::comparator_matrix[4][2] =
|
||||
{{&Arg_comparator::compare_string, &Arg_comparator::compare_e_string},
|
||||
{&Arg_comparator::compare_real, &Arg_comparator::compare_e_real},
|
||||
|
@ -3638,6 +3644,9 @@ Disable with --skip-bdb (will save memory).",
|
|||
#endif /* End HAVE_INNOBASE_DB */
|
||||
{"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
|
||||
0, 0, 0, 0, 0},
|
||||
{"verbose", 'v', "Used with --help option for detailed help",
|
||||
(gptr*) &opt_verbose, (gptr*) &opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
|
||||
0, 0},
|
||||
{"init-file", OPT_INIT_FILE, "Read SQL commands from this file at startup.",
|
||||
(gptr*) &opt_init_file, (gptr*) &opt_init_file, 0, GET_STR, REQUIRED_ARG,
|
||||
0, 0, 0, 0, 0, 0},
|
||||
|
@ -3973,8 +3982,6 @@ replicating a LOAD DATA INFILE command.",
|
|||
0, 0, 0, 0, 0, 0},
|
||||
{"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"version", 'v', "Synonym for option -V.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
|
||||
0, 0, 0, 0},
|
||||
{"log-warnings", 'W', "Log some not critical warnings to the log file.",
|
||||
(gptr*) &global_system_variables.log_warnings,
|
||||
(gptr*) &max_system_variables.log_warnings, 0, GET_BOOL, NO_ARG, 0, 0, 0,
|
||||
|
@ -4573,6 +4580,10 @@ and you are welcome to modify and redistribute it under the GPL license\n\
|
|||
Starts the MySQL server\n");
|
||||
|
||||
printf("Usage: %s [OPTIONS]\n", my_progname);
|
||||
if (!opt_verbose)
|
||||
puts("\nFor more help options (several pages), use mysqld --verbose --help\n");
|
||||
else
|
||||
{
|
||||
#ifdef __WIN__
|
||||
puts("NT and Win32 specific options:\n\
|
||||
--install Install the default service (NT)\n\
|
||||
|
@ -4596,7 +4607,8 @@ Starts the MySQL server\n");
|
|||
|
||||
puts("\n\
|
||||
To see what values a running MySQL server is using, type\n\
|
||||
'mysqladmin variables' instead of 'mysqld --help'.");
|
||||
'mysqladmin variables' instead of 'mysqld --verbose --help'.\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -4871,6 +4883,8 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||
#endif
|
||||
#include <sslopt-case.h>
|
||||
case 'v':
|
||||
usage();
|
||||
exit(0);
|
||||
case 'V':
|
||||
print_version();
|
||||
exit(0);
|
||||
|
|
|
@ -832,10 +832,10 @@ static SEL_TREE *get_mm_tree(PARAM *param,COND *cond)
|
|||
Field *field=((Item_field*) (func->key_item()))->field;
|
||||
Item_result cmp_type=field->cmp_type();
|
||||
tree= get_mm_parts(param,field,Item_func::EQ_FUNC,
|
||||
func->arguments()[0],cmp_type);
|
||||
func->arguments()[1],cmp_type);
|
||||
if (!tree)
|
||||
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,
|
||||
func->arguments()[i],cmp_type);
|
||||
|
|
|
@ -44,8 +44,8 @@ v/*
|
|||
"Obsluha tabulky '%-.64s' nem-Bá tento parametr",
|
||||
"Nemohu naj-Bít záznam v '%-.64s'",
|
||||
"Nespr-Bávná informace v souboru '%-.64s'",
|
||||
"Nespr-Bávný klíč pro tabulku '%-.64s'. Pokuste se ho opravit",
|
||||
"Star-Bý klíčový soubor pro '%-.64s'. Opravte ho.",
|
||||
"Nespr-Bávný klíč pro tabulku '%-.64s'; pokuste se ho opravit",
|
||||
"Star-Bý klíčový soubor pro '%-.64s'; opravte ho.",
|
||||
"'%-.64s' je jen pro -Bčtení",
|
||||
"M-Bálo paměti. Přestartujte daemona a zkuste znovu (je potřeba %d bytů)",
|
||||
"M-Bálo paměti pro třídění. Zvyšte velikost třídícího bufferu",
|
||||
|
|
|
@ -13,19 +13,19 @@
|
|||
"Kan ikke oprette databasen '%-.64s' (Fejlkode: %d)",
|
||||
"Kan ikke oprette databasen '%-.64s'; databasen eksisterer",
|
||||
"Kan ikke slette (droppe) '%-.64s'; databasen eksisterer ikke",
|
||||
"Fejl ved sletning (drop) af databasen (kan ikke slette '%-.64s', Fejl %d)",
|
||||
"Fejl ved sletting af database (kan ikke slette folderen '%-.64s', Fejl %d)",
|
||||
"Fejl ved sletning (drop) af databasen (kan ikke slette '%-.64s', Fejlkode %d)",
|
||||
"Fejl ved sletting af database (kan ikke slette folderen '%-.64s', Fejlkode %d)",
|
||||
"Fejl ved sletning af '%-.64s' (Fejlkode: %d)",
|
||||
"Kan ikke læse posten i systemfolderen",
|
||||
"Kan ikke læse status af '%-.64s' (Fejlkode: %d)",
|
||||
"Kan ikke læse aktive folder (Fejlkode: %d)",
|
||||
"Kan ikke låse fil (Fejlkode: %d)",
|
||||
"Kan ikke åbne fil: '%-.64s'. (Fejlkode: %d)",
|
||||
"Kan ikke åbne fil: '%-.64s' (Fejlkode: %d)",
|
||||
"Kan ikke finde fila: '%-.64s' (Fejlkode: %d)",
|
||||
"Kan ikke læse folder '%-.64s' (Fejlkode: %d)",
|
||||
"Kan ikke skifte folder til '%-.64s' (Fejlkode: %d)",
|
||||
"Posten er ændret siden sidste læsning '%-.64s'",
|
||||
"Ikke mere diskplads (%s). Venter på at få frigjort plads....",
|
||||
"Ikke mere diskplads (%s). Venter på at få frigjort plads...",
|
||||
"Kan ikke skrive, flere ens nøgler i tabellen '%-.64s'",
|
||||
"Fejl ved lukning af '%-.64s' (Fejlkode: %d)",
|
||||
"Fejl ved læsning af '%-.64s' (Fejlkode: %d)",
|
||||
|
@ -38,8 +38,8 @@
|
|||
"Denne mulighed eksisterer ikke for tabeltypen '%-.64s'",
|
||||
"Kan ikke finde posten i '%-.64s'",
|
||||
"Forkert indhold i: '%-.64s'",
|
||||
"Fejl i indeksfilen til tabellen '%-.64s', prøv at reparere den",
|
||||
"Gammel indeksfil for tabellen '%-.64s'; Reparer den",
|
||||
"Fejl i indeksfilen til tabellen '%-.64s'; prøv at reparere den",
|
||||
"Gammel indeksfil for tabellen '%-.64s'; reparer den",
|
||||
"'%-.64s' er skrivebeskyttet",
|
||||
"Ikke mere hukommelse. Genstart serveren og prøv igen (mangler %d bytes)",
|
||||
"Ikke mere sorteringshukommelse. Øg sorteringshukommelse (sort buffer size) for serveren",
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
"Kan de status niet krijgen van '%-.64s' (Errcode: %d)",
|
||||
"Kan de werkdirectory niet krijgen (Errcode: %d)",
|
||||
"Kan de file niet blokeren (Errcode: %d)",
|
||||
"Kan de file '%-.64s' niet openen. (Errcode: %d)",
|
||||
"Kan de file: '%-.64s' niet vinden. (Errcode: %d)",
|
||||
"Kan de file '%-.64s' niet openen (Errcode: %d)",
|
||||
"Kan de file: '%-.64s' niet vinden (Errcode: %d)",
|
||||
"Kan de directory niet lezen van '%-.64s' (Errcode: %d)",
|
||||
"Kan de directory niet veranderen naar '%-.64s' (Errcode: %d)",
|
||||
"Record is veranderd sinds de laatste lees activiteit in de tabel '%-.64s'",
|
||||
|
@ -46,8 +46,8 @@
|
|||
"Tabel handler voor '%-.64s' heeft deze optie niet",
|
||||
"Kan record niet vinden in '%-.64s'",
|
||||
"Verkeerde info in file: '%-.64s'",
|
||||
"Verkeerde zoeksleutel file voor tabel: '%-.64s'. Probeer het te repareren",
|
||||
"Oude zoeksleutel file voor tabel '%-.64s'; Repareer het!",
|
||||
"Verkeerde zoeksleutel file voor tabel: '%-.64s'; probeer het te repareren",
|
||||
"Oude zoeksleutel file voor tabel '%-.64s'; repareer het!",
|
||||
"'%-.64s' is alleen leesbaar",
|
||||
"Geen geheugen meer. Herstart server en probeer opnieuw (%d bytes nodig)",
|
||||
"Geen geheugen om te sorteren. Verhoog de server sort buffer size",
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
"Can't get status of '%-.64s' (errno: %d)",
|
||||
"Can't get working directory (errno: %d)",
|
||||
"Can't lock file (errno: %d)",
|
||||
"Can't open file: '%-.64s'. (errno: %d)",
|
||||
"Can't open file: '%-.64s' (errno: %d)",
|
||||
"Can't find file: '%-.64s' (errno: %d)",
|
||||
"Can't read dir of '%-.64s' (errno: %d)",
|
||||
"Can't change dir to '%-.64s' (errno: %d)",
|
||||
"Record has changed since last read in table '%-.64s'",
|
||||
"Disk full (%s). Waiting for someone to free some space....",
|
||||
"Disk full (%s). Waiting for someone to free some space...",
|
||||
"Can't write, duplicate key in table '%-.64s'",
|
||||
"Error on close of '%-.64s' (errno: %d)",
|
||||
"Error reading file '%-.64s' (errno: %d)",
|
||||
|
@ -35,8 +35,8 @@
|
|||
"Table storage engine for '%-.64s' doesn't have this option",
|
||||
"Can't find record in '%-.64s'",
|
||||
"Incorrect information in file: '%-.64s'",
|
||||
"Incorrect key file for table: '%-.64s'. Try to repair it",
|
||||
"Old key file for table '%-.64s'; Repair it!",
|
||||
"Incorrect key file for table: '%-.64s'; try to repair it",
|
||||
"Old key file for table '%-.64s'; repair it!",
|
||||
"Table '%-.64s' is read only",
|
||||
"Out of memory. Restart daemon and try again (needed %d bytes)",
|
||||
"Out of sort memory. Increase daemon sort buffer size",
|
||||
|
@ -85,12 +85,12 @@
|
|||
"Can't create IP socket",
|
||||
"Table '%-.64s' has no index like the one used in CREATE INDEX. Recreate the table",
|
||||
"Field separator argument is not what is expected. Check the manual",
|
||||
"You can't use fixed rowlength with BLOBs. Please use 'fields terminated by'.",
|
||||
"You can't use fixed rowlength with BLOBs. Please use 'fields terminated by'",
|
||||
"The file '%-.64s' must be in the database directory or be readable by all",
|
||||
"File '%-.80s' already exists",
|
||||
"Records: %ld Deleted: %ld Skipped: %ld Warnings: %ld",
|
||||
"Records: %ld Duplicates: %ld",
|
||||
"Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the store engine doesn't support unique sub keys",
|
||||
"Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the storage engine doesn't support unique sub keys",
|
||||
"You can't delete all columns with ALTER TABLE. Use DROP TABLE instead",
|
||||
"Can't DROP '%-.64s'. Check that column/key exists",
|
||||
"Records: %ld Duplicates: %ld Warnings: %ld",
|
||||
|
@ -145,7 +145,7 @@
|
|||
"There is no such grant defined for user '%-.32s' on host '%-.64s'",
|
||||
"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'",
|
||||
"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'",
|
||||
"Illegal GRANT/REVOKE command. Please consult the manual which privileges can be used.",
|
||||
"Illegal GRANT/REVOKE command. Please consult the manual which privileges can be used",
|
||||
"The host or user argument to GRANT is too long",
|
||||
"Table '%-.64s.%-.64s' doesn't exist",
|
||||
"There is no such grant defined for user '%-.32s' on host '%-.64s' on table '%-.64s'",
|
||||
|
@ -186,7 +186,7 @@
|
|||
"Got error %d during FLUSH_LOGS",
|
||||
"Got error %d during CHECKPOINT",
|
||||
"Aborted connection %ld to db: '%-.64s' user: '%-.32s' host: `%-.64s' (%-.64s)",
|
||||
"The store engine for the table does not support binary table dump",
|
||||
"The storage engine for the table does not support binary table dump",
|
||||
"Binlog closed, cannot RESET MASTER",
|
||||
"Failed rebuilding the index of dumped table '%-.64s'",
|
||||
"Error from master: '%-.64s'",
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
"Ei suuda lugeda '%-.64s' olekut (veakood: %d)",
|
||||
"Ei suuda identifitseerida jooksvat kataloogi (veakood: %d)",
|
||||
"Ei suuda lukustada faili (veakood: %d)",
|
||||
"Ei suuda avada faili '%-.64s'. (veakood: %d)",
|
||||
"Ei suuda avada faili '%-.64s' (veakood: %d)",
|
||||
"Ei suuda leida faili '%-.64s' (veakood: %d)",
|
||||
"Ei suuda lugeda kataloogi '%-.64s' (veakood: %d)",
|
||||
"Ei suuda siseneda kataloogi '%-.64s' (veakood: %d)",
|
||||
|
@ -40,8 +40,8 @@
|
|||
"Tabeli '%-.64s' handler ei toeta antud operatsiooni",
|
||||
"Ei suuda leida kirjet '%-.64s'-s",
|
||||
"Vigane informatsioon failis '%-.64s'",
|
||||
"Tabeli '%-.64s' võtmefail on vigane; Proovi seda parandada",
|
||||
"Tabeli '%-.64s' võtmefail on aegunud; Paranda see!",
|
||||
"Tabeli '%-.64s' võtmefail on vigane; proovi seda parandada",
|
||||
"Tabeli '%-.64s' võtmefail on aegunud; paranda see!",
|
||||
"Tabel '%-.64s' on ainult lugemiseks",
|
||||
"Mälu sai otsa. Proovi MySQL uuesti käivitada (puudu jäi %d baiti)",
|
||||
"Mälu sai sorteerimisel otsa. Suurenda MySQL-i sorteerimispuhvrit",
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
"Ne peut obtenir le status de '%-.64s' (Errcode: %d)",
|
||||
"Ne peut obtenir le répertoire de travail (Errcode: %d)",
|
||||
"Ne peut verrouiller le fichier (Errcode: %d)",
|
||||
"Ne peut ouvrir le fichier: '%-.64s'. (Errcode: %d)",
|
||||
"Ne peut ouvrir le fichier: '%-.64s' (Errcode: %d)",
|
||||
"Ne peut trouver le fichier: '%-.64s' (Errcode: %d)",
|
||||
"Ne peut lire le répertoire de '%-.64s' (Errcode: %d)",
|
||||
"Ne peut changer le répertoire pour '%-.64s' (Errcode: %d)",
|
||||
|
@ -35,8 +35,8 @@
|
|||
"Le handler de la table '%-.64s' n'a pas cette option",
|
||||
"Ne peut trouver l'enregistrement dans '%-.64s'",
|
||||
"Information erronnée dans le fichier: '%-.64s'",
|
||||
"Index corrompu dans la table: '%-.64s'. Essayez de le réparer",
|
||||
"Vieux fichier d'index pour la table '%-.64s'; Réparez le!",
|
||||
"Index corrompu dans la table: '%-.64s'; essayez de le réparer",
|
||||
"Vieux fichier d'index pour la table '%-.64s'; réparez le!",
|
||||
"'%-.64s' est en lecture seulement",
|
||||
"Manque de mémoire. Redémarrez le démon et ré-essayez (%d octets nécessaires)",
|
||||
"Manque de mémoire pour le tri. Augmentez-la.",
|
||||
|
|
|
@ -26,27 +26,27 @@
|
|||
"Kann Status von '%-.64s' nicht ermitteln. (Fehler: %d)",
|
||||
"Kann Arbeitsverzeichnis nicht ermitteln. (Fehler: %d)",
|
||||
"Datei nicht sperrbar. (Fehler: %d)",
|
||||
"Kann Datei '%-.64s' nicht öffnen. (Fehler: %d)",
|
||||
"Kann Datei '%-.64s' nicht finden. (Fehler: %d)",
|
||||
"Verzeichnis von '%-.64s' nicht lesbar. (Fehler: %d)",
|
||||
"Kann nicht in das Verzeichnis '%-.64s' wechseln. (Fehler: %d)",
|
||||
"Datensatz hat sich seit dem letzten Zugriff auf Tabelle '%-.64s' geändert.",
|
||||
"Kann Datei '%-.64s' nicht öffnen (Fehler: %d)",
|
||||
"Kann Datei '%-.64s' nicht finden (Fehler: %d)",
|
||||
"Verzeichnis von '%-.64s' nicht lesbar (Fehler: %d)",
|
||||
"Kann nicht in das Verzeichnis '%-.64s' wechseln (Fehler: %d)",
|
||||
"Datensatz hat sich seit dem letzten Zugriff auf Tabelle '%-.64s' geändert",
|
||||
"Festplatte voll (%-.64s). Warte bis jemand Platz schafft ...",
|
||||
"Kann nicht speichern, doppelter Schlüssel in Tabelle '%-.64s'.",
|
||||
"Fehler beim Schließen von '%-.64s'. (Fehler: %d)",
|
||||
"Fehler beim Lesen der Datei '%-.64s'. (Fehler: %d)",
|
||||
"Fehler beim Umbenennen von '%-.64s' nach '%-.64s'. (Fehler: %d)",
|
||||
"Fehler beim Speichern der Datei '%-.64s'. (Fehler: %d)",
|
||||
"'%-.64s' ist für Veränderungen gesperrt.",
|
||||
"Sortieren abgebrochen.",
|
||||
"View '%-.64s' existiert für '%-.64s' nicht.",
|
||||
"Fehler %d. (Tabellenhandler)",
|
||||
"Diese Option gibt es nicht. (Tabellenhandler)",
|
||||
"Kann Datensatz nicht finden.",
|
||||
"Kann nicht speichern, doppelter Schlüssel in Tabelle '%-.64s'",
|
||||
"Fehler beim Schließen von '%-.64s' (Fehler: %d)",
|
||||
"Fehler beim Lesen der Datei '%-.64s' (Fehler: %d)",
|
||||
"Fehler beim Umbenennen von '%-.64s' nach '%-.64s' (Fehler: %d)",
|
||||
"Fehler beim Speichern der Datei '%-.64s' (Fehler: %d)",
|
||||
"'%-.64s' ist für Veränderungen gesperrt",
|
||||
"Sortieren abgebrochen",
|
||||
"View '%-.64s' existiert für '%-.64s' nicht",
|
||||
"Fehler %d (Tabellenhandler)",
|
||||
"Diese Option gibt es nicht (Tabellenhandler)",
|
||||
"Kann Datensatz nicht finden",
|
||||
"Falsche Information in Datei: '%-.64s'",
|
||||
"Falsche Schlüssel-Datei für Tabelle '%-.64s'. Versuche zu reparieren!",
|
||||
"Alte Schlüssel-Datei für Tabelle '%-.64s'. Repariere!",
|
||||
"'%-.64s' ist nur lesbar.",
|
||||
"Falsche Schlüssel-Datei für Tabelle '%-.64s'; versuche zu reparieren!",
|
||||
"Alte Schlüssel-Datei für Tabelle '%-.64s'; repariere!",
|
||||
"'%-.64s' ist nur lesbar",
|
||||
"Kein Speicher vorhanden (benötigt %d bytes). Server neu starten.",
|
||||
"Kein Speicher zum Sortieren. sort_buffer_size sollte erhöht werden.",
|
||||
"Unerwartetes Ende beim Lesen der Datei '%-.64s'. (Fehler: %d)",
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
"Αδύνατη η λήψη πληροφοριών για την κατάσταση του '%-.64s' (κωδικός λάθους: %d)",
|
||||
"Ο φάκελλος εργασίας δεν βρέθηκε (κωδικός λάθους: %d)",
|
||||
"Το αρχείο δεν μπορεί να κλειδωθεί (κωδικός λάθους: %d)",
|
||||
"Δεν είναι δυνατό να ανοιχτεί το αρχείο: '%-.64s'. (κωδικός λάθους: %d)",
|
||||
"Δεν είναι δυνατό να ανοιχτεί το αρχείο: '%-.64s' (κωδικός λάθους: %d)",
|
||||
"Δεν βρέθηκε το αρχείο: '%-.64s' (κωδικός λάθους: %d)",
|
||||
"Δεν είναι δυνατό να διαβαστεί ο φάκελλος του '%-.64s' (κωδικός λάθους: %d)",
|
||||
"Αδύνατη η αλλαγή του τρέχοντος καταλόγου σε '%-.64s' (κωδικός λάθους: %d)",
|
||||
"Η εγγραφή έχει αλλάξει από την τελευταία φορά που ανασύρθηκε από τον πίνακα '%-.64s'",
|
||||
"Δεν υπάρχει χώρος στο δίσκο (%s). Παρακαλώ, περιμένετε να ελευθερωθεί χώρος....",
|
||||
"Δεν υπάρχει χώρος στο δίσκο (%s). Παρακαλώ, περιμένετε να ελευθερωθεί χώρος...",
|
||||
"Δεν είναι δυνατή η καταχώρηση, η τιμή υπάρχει ήδη στον πίνακα '%-.64s'",
|
||||
"Παρουσιάστηκε πρόβλημα κλείνοντας το '%-.64s' (κωδικός λάθους: %d)",
|
||||
"Πρόβλημα κατά την ανάγνωση του αρχείου '%-.64s' (κωδικός λάθους: %d)",
|
||||
|
@ -35,7 +35,7 @@
|
|||
"Ο χειριστής πίνακα (table handler) για '%-.64s' δεν διαθέτει αυτή την επιλογή",
|
||||
"Αδύνατη η ανεύρεση εγγραφής στο '%-.64s'",
|
||||
"Λάθος πληροφορίες στο αρχείο: '%-.64s'",
|
||||
"Λάθος αρχείο ταξινόμισης (key file) για τον πίνακα: '%-.64s'. Παρακαλώ, διορθώστε το!",
|
||||
"Λάθος αρχείο ταξινόμισης (key file) για τον πίνακα: '%-.64s'; Παρακαλώ, διορθώστε το!",
|
||||
"Παλαιό αρχείο ταξινόμισης (key file) για τον πίνακα '%-.64s'; Παρακαλώ, διορθώστε το!",
|
||||
"'%-.64s' επιτρέπεται μόνο η ανάγνωση",
|
||||
"Δεν υπάρχει διαθέσιμη μνήμη. Προσπαθήστε πάλι, επανεκινώντας τη διαδικασία (demon) (χρειάζονται %d bytes)",
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
"A(z) '%-.64s' statusza nem allapithato meg (hibakod: %d)",
|
||||
"A munkakonyvtar nem allapithato meg (hibakod: %d)",
|
||||
"A file nem zarolhato. (hibakod: %d)",
|
||||
"A '%-.64s' file nem nyithato meg. (hibakod: %d)",
|
||||
"A(z) '%-.64s' file nem talalhato. (hibakod: %d)",
|
||||
"A '%-.64s' file nem nyithato meg (hibakod: %d)",
|
||||
"A(z) '%-.64s' file nem talalhato (hibakod: %d)",
|
||||
"A(z) '%-.64s' konyvtar nem olvashato. (hibakod: %d)",
|
||||
"Konyvtarvaltas nem lehetseges a(z) '%-.64s'-ba. (hibakod: %d)",
|
||||
"A(z) '%-.64s' tablaban talalhato rekord megvaltozott az utolso olvasas ota",
|
||||
|
@ -37,8 +37,8 @@
|
|||
"A(z) '%-.64s' tablakezelonek nincs ilyen opcioja",
|
||||
"Nem talalhato a rekord '%-.64s'-ben",
|
||||
"Ervenytelen info a file-ban: '%-.64s'",
|
||||
"Ervenytelen kulcsfile a tablahoz: '%-.64s'. Probalja kijavitani!",
|
||||
"Regi kulcsfile a '%-.64s'tablahoz; Probalja kijavitani!",
|
||||
"Ervenytelen kulcsfile a tablahoz: '%-.64s'; probalja kijavitani!",
|
||||
"Regi kulcsfile a '%-.64s'tablahoz; probalja kijavitani!",
|
||||
"'%-.64s' irasvedett",
|
||||
"Nincs eleg memoria. Inditsa ujra a demont, es probalja ismet. (%d byte szukseges.)",
|
||||
"Nincs eleg memoria a rendezeshez. Novelje a rendezo demon puffermeretet",
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
"Impossibile leggere lo stato di '%-.64s' (errno: %d)",
|
||||
"Impossibile leggere la directory di lavoro (errno: %d)",
|
||||
"Impossibile il locking il file (errno: %d)",
|
||||
"Impossibile aprire il file: '%-.64s'. (errno: %d)",
|
||||
"Impossibile aprire il file: '%-.64s' (errno: %d)",
|
||||
"Impossibile trovare il file: '%-.64s' (errno: %d)",
|
||||
"Impossibile leggere la directory di '%-.64s' (errno: %d)",
|
||||
"Impossibile cambiare la directory in '%-.64s' (errno: %d)",
|
||||
"Il record e` cambiato dall'ultima lettura della tabella '%-.64s'",
|
||||
"Disco pieno (%s). In attesa che qualcuno liberi un po' di spazio....",
|
||||
"Disco pieno (%s). In attesa che qualcuno liberi un po' di spazio...",
|
||||
"Scrittura impossibile: chiave duplicata nella tabella '%-.64s'",
|
||||
"Errore durante la chiusura di '%-.64s' (errno: %d)",
|
||||
"Errore durante la lettura del file '%-.64s' (errno: %d)",
|
||||
|
@ -35,8 +35,8 @@
|
|||
"Il gestore delle tabelle per '%-.64s' non ha questa opzione",
|
||||
"Impossibile trovare il record in '%-.64s'",
|
||||
"Informazione errata nel file: '%-.64s'",
|
||||
"File chiave errato per la tabella : '%-.64s'. Prova a riparalo",
|
||||
"File chiave vecchio per la tabella '%-.64s'; Riparalo!",
|
||||
"File chiave errato per la tabella : '%-.64s'; prova a riparalo",
|
||||
"File chiave vecchio per la tabella '%-.64s'; riparalo!",
|
||||
"'%-.64s' e` di sola lettura",
|
||||
"Memoria esaurita. Fai ripartire il demone e riprova (richiesti %d bytes)",
|
||||
"Memoria per gli ordinamenti esaurita. Incrementare il 'sort_buffer' al demone",
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
"'%-.64s' の削除がエラー (errno: %d)",
|
||||
"system table のレコードを読む事ができませんでした",
|
||||
"'%-.64s' のステイタスが得られません. (errno: %d)",
|
||||
"working directory を得る事ができませんでした. (errno: %d)",
|
||||
"ファイルをロックできません.(errno: %d)",
|
||||
"'%-.64s' ファイルを開く事ができません.(errno: %d)",
|
||||
"working directory を得る事ができませんでした (errno: %d)",
|
||||
"ファイルをロックできません (errno: %d)",
|
||||
"'%-.64s' ファイルを開く事ができません (errno: %d)",
|
||||
"'%-.64s' ファイルを見付ける事ができません.(errno: %d)",
|
||||
"'%-.64s' ディレクトリが読めません.(errno: %d)",
|
||||
"'%-.64s' ディレクトリに chdir できません.(errno: %d)",
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
"'%-.64s'의 상태를 얻지 못했습니다. (에러번호: %d)",
|
||||
"수행 디렉토리를 찾지 못했습니다. (에러번호: %d)",
|
||||
"화일을 잠그지(lock) 못했습니다. (에러번호: %d)",
|
||||
"화일을 열지 못했습니다.: '%-.64s'. (에러번호: %d)",
|
||||
"화일을 열지 못했습니다.: '%-.64s' (에러번호: %d)",
|
||||
"화일을 찾지 못했습니다.: '%-.64s' (에러번호: %d)",
|
||||
"'%-.64s'디렉토리를 읽지 못했습니다. (에러번호: %d)",
|
||||
"'%-.64s'디렉토리로 이동할 수 없었습니다. (에러번호: %d)",
|
||||
"테이블 '%-.64s'에서 마지막으로 읽은 후 Record가 변경되었습니다.",
|
||||
"Disk full (%s). 다른 사람이 지울때까지 기다립니다.....",
|
||||
"Disk full (%s). 다른 사람이 지울때까지 기다립니다...",
|
||||
"기록할 수 없읍니다., 테이블 '%-.64s'에서 중복 키",
|
||||
"'%-.64s'닫는 중 에러 (에러번호: %d)",
|
||||
"'%-.64s'화일 읽기 에러 (에러번호: %d)",
|
||||
|
@ -48,7 +48,7 @@
|
|||
"'%-.32s@%-.64s' 사용자는 '%-.64s' 데이타베이스에 접근이 거부 되었습니다.",
|
||||
"'%-.32s@%-.64s' 사용자는 접근이 거부 되었습니다. (Using password: %s)",
|
||||
"선택된 데이타베이스가 없습니다.",
|
||||
"명령어가 뭔지 모르겠어요....",
|
||||
"명령어가 뭔지 모르겠어요...",
|
||||
"칼럼 '%-.64s'는 널(Null)이 되면 안됩니다. ",
|
||||
"데이타베이스 '%-.64s'는 알수 없음",
|
||||
"테이블 '%-.64s'는 이미 존재함",
|
||||
|
|
|
@ -19,12 +19,12 @@
|
|||
"Kan ikkje lese statusen til '%-.64s' (Feilkode: %d)",
|
||||
"Kan ikkje lese aktiv katalog(Feilkode: %d)",
|
||||
"Kan ikkje låse fila (Feilkode: %d)",
|
||||
"Kan ikkje åpne fila: '%-.64s'. (Feilkode: %d)",
|
||||
"Kan ikkje åpne fila: '%-.64s' (Feilkode: %d)",
|
||||
"Kan ikkje finne fila: '%-.64s' (Feilkode: %d)",
|
||||
"Kan ikkje lese katalogen '%-.64s' (Feilkode: %d)",
|
||||
"Kan ikkje skifte katalog til '%-.64s' (Feilkode: %d)",
|
||||
"Posten har vorte endra sidan den sist vart lesen '%-.64s'",
|
||||
"Ikkje meir diskplass (%s). Ventar på å få frigjort plass....",
|
||||
"Ikkje meir diskplass (%s). Ventar på å få frigjort plass...",
|
||||
"Kan ikkje skrive, flere like nyklar i tabellen '%-.64s'",
|
||||
"Feil ved lukking av '%-.64s' (Feilkode: %d)",
|
||||
"Feil ved lesing av '%-.64s' (Feilkode: %d)",
|
||||
|
@ -37,8 +37,8 @@
|
|||
"Tabell håndteraren for '%-.64s' har ikkje denne moglegheita",
|
||||
"Kan ikkje finne posten i '%-.64s'",
|
||||
"Feil informasjon i fila: '%-.64s'",
|
||||
"Tabellen '%-.64s' har feil i nykkelfila, Prøv å reparere den",
|
||||
"Gammel nykkelfil for tabellen '%-.64s'; Reparer den!",
|
||||
"Tabellen '%-.64s' har feil i nykkelfila; prøv å reparere den",
|
||||
"Gammel nykkelfil for tabellen '%-.64s'; reparer den!",
|
||||
"'%-.64s' er skrivetryggja",
|
||||
"Ikkje meir minne. Start på nytt tenesten og prøv igjen (trengte %d bytar)",
|
||||
"Ikkje meir sorteringsminne. Auk sorteringsminnet (sorteringsbffer storleik) for tenesten",
|
||||
|
|
|
@ -19,12 +19,12 @@
|
|||
"Kan ikke lese statusen til '%-.64s' (Feilkode: %d)",
|
||||
"Kan ikke lese aktiv katalog(Feilkode: %d)",
|
||||
"Kan ikke låse fila (Feilkode: %d)",
|
||||
"Kan ikke åpne fila: '%-.64s'. (Feilkode: %d)",
|
||||
"Kan ikke åpne fila: '%-.64s' (Feilkode: %d)",
|
||||
"Kan ikke finne fila: '%-.64s' (Feilkode: %d)",
|
||||
"Kan ikke lese katalogen '%-.64s' (Feilkode: %d)",
|
||||
"Kan ikke skifte katalog til '%-.64s' (Feilkode: %d)",
|
||||
"Posten har blitt endret siden den ble lest '%-.64s'",
|
||||
"Ikke mer diskplass (%s). Venter på å få frigjort plass....",
|
||||
"Ikke mer diskplass (%s). Venter på å få frigjort plass...",
|
||||
"Kan ikke skrive, flere like nøkler i tabellen '%-.64s'",
|
||||
"Feil ved lukking av '%-.64s' (Feilkode: %d)",
|
||||
"Feil ved lesing av '%-.64s' (Feilkode: %d)",
|
||||
|
@ -37,8 +37,8 @@
|
|||
"Tabell håndtereren for '%-.64s' har ikke denne muligheten",
|
||||
"Kan ikke finne posten i '%-.64s'",
|
||||
"Feil informasjon i filen: '%-.64s'",
|
||||
"Tabellen '%-.64s' har feil i nøkkelfilen, forsøk å reparer den",
|
||||
"Gammel nøkkelfil for tabellen '%-.64s'; Reparer den!",
|
||||
"Tabellen '%-.64s' har feil i nøkkelfilen; forsøk å reparer den",
|
||||
"Gammel nøkkelfil for tabellen '%-.64s'; reparer den!",
|
||||
"'%-.64s' er skrivebeskyttet",
|
||||
"Ikke mer minne. Star på nytt tjenesten og prøv igjen (trengte %d byter)",
|
||||
"Ikke mer sorteringsminne. Øk sorteringsminnet (sort buffer size) for tjenesten",
|
||||
|
|
|
@ -21,12 +21,12 @@
|
|||
"Nie można otrzymać statusu '%-.64s' (Kod błędu: %d)",
|
||||
"Nie można rozpoznać aktualnego katalogu (Kod błędu: %d)",
|
||||
"Nie można zablokować pliku (Kod błędu: %d)",
|
||||
"Nie można otworzyć pliku: '%-.64s'. (Kod błędu: %d)",
|
||||
"Nie można otworzyć pliku: '%-.64s' (Kod błędu: %d)",
|
||||
"Nie można znaleĽć pliku: '%-.64s' (Kod błędu: %d)",
|
||||
"Nie można odczytać katalogu '%-.64s' (Kod błędu: %d)",
|
||||
"Nie można zmienić katalogu na '%-.64s' (Kod błędu: %d)",
|
||||
"Rekord został zmieniony od ostaniego odczytania z tabeli '%-.64s'",
|
||||
"Dysk pełny (%s). Oczekiwanie na zwolnienie miejsca....",
|
||||
"Dysk pełny (%s). Oczekiwanie na zwolnienie miejsca...",
|
||||
"Nie można zapisać, powtórzone klucze w tabeli '%-.64s'",
|
||||
"Bł?d podczas zamykania '%-.64s' (Kod błędu: %d)",
|
||||
"Bł?d podczas odczytu pliku '%-.64s' (Kod błędu: %d)",
|
||||
|
@ -39,8 +39,8 @@
|
|||
"Obsługa tabeli '%-.64s' nie posiada tej opcji",
|
||||
"Nie można znaleĽć rekordu w '%-.64s'",
|
||||
"Niewła?ciwa informacja w pliku: '%-.64s'",
|
||||
"Niewła?ciwy plik kluczy dla tabeli: '%-.64s'. Spróbuj go naprawić",
|
||||
"Plik kluczy dla tabeli '%-.64s' jest starego typu; Napraw go!",
|
||||
"Niewła?ciwy plik kluczy dla tabeli: '%-.64s'; spróbuj go naprawić",
|
||||
"Plik kluczy dla tabeli '%-.64s' jest starego typu; napraw go!",
|
||||
"'%-.64s' jest tylko do odczytu",
|
||||
"Zbyt mało pamięci. Uruchom ponownie demona i spróbuj ponownie (potrzeba %d bajtów)",
|
||||
"Zbyt mało pamięci dla sortowania. Zwiększ wielko?ć bufora demona dla sortowania",
|
||||
|
|
|
@ -35,8 +35,8 @@
|
|||
"Manipulador de tabela para '%-.64s' não tem esta opção",
|
||||
"Não pode encontrar registro em '%-.64s'",
|
||||
"Informação incorreta no arquivo '%-.64s'",
|
||||
"Arquivo de índice incorreto para tabela '%-.64s'. Tente repará-lo",
|
||||
"Arquivo de índice desatualizado para tabela '%-.64s'. Repare-o!",
|
||||
"Arquivo de índice incorreto para tabela '%-.64s'; tente repará-lo",
|
||||
"Arquivo de índice desatualizado para tabela '%-.64s'; repare-o!",
|
||||
"Tabela '%-.64s' é somente para leitura",
|
||||
"Sem memória. Reinicie o programa e tente novamente (necessita de %d bytes)",
|
||||
"Sem memória para ordenação. Aumente tamanho do 'buffer' de ordenação",
|
||||
|
|
|
@ -21,12 +21,12 @@
|
|||
"Nu pot sa obtin statusul lui '%-.64s' (Eroare: %d)",
|
||||
"Nu pot sa obtin directorul current (working directory) (Eroare: %d)",
|
||||
"Nu pot sa lock fisierul (Eroare: %d)",
|
||||
"Nu pot sa deschid fisierul: '%-.64s'. (Eroare: %d)",
|
||||
"Nu pot sa deschid fisierul: '%-.64s' (Eroare: %d)",
|
||||
"Nu pot sa gasesc fisierul: '%-.64s' (Eroare: %d)",
|
||||
"Nu pot sa citesc directorul '%-.64s' (Eroare: %d)",
|
||||
"Nu pot sa schimb directorul '%-.64s' (Eroare: %d)",
|
||||
"Cimpul a fost schimbat de la ultima citire a tabelei '%-.64s'",
|
||||
"Hard-disk-ul este plin (%s). Astept sa se elibereze ceva spatiu....",
|
||||
"Hard-disk-ul este plin (%s). Astept sa se elibereze ceva spatiu...",
|
||||
"Nu pot sa scriu (can't write), cheie duplicata in tabela '%-.64s'",
|
||||
"Eroare inchizind '%-.64s' (errno: %d)",
|
||||
"Eroare citind fisierul '%-.64s' (errno: %d)",
|
||||
|
@ -39,8 +39,8 @@
|
|||
"Handlerul tabelei pentru '%-.64s' nu are aceasta optiune",
|
||||
"Nu pot sa gasesc recordul in '%-.64s'",
|
||||
"Informatie incorecta in fisierul: '%-.64s'",
|
||||
"Cheia fisierului incorecta pentru tabela: '%-.64s'. Incearca s-o repari",
|
||||
"Cheia fisierului e veche pentru tabela '%-.64s'; Repar-o!",
|
||||
"Cheia fisierului incorecta pentru tabela: '%-.64s'; incearca s-o repari",
|
||||
"Cheia fisierului e veche pentru tabela '%-.64s'; repar-o!",
|
||||
"Tabela '%-.64s' e read-only",
|
||||
"Out of memory. Porneste daemon-ul din nou si incearca inca o data (e nevoie de %d bytes)",
|
||||
"Out of memory pentru sortare. Largeste marimea buffer-ului pentru sortare in daemon (sort buffer size)",
|
||||
|
|
|
@ -19,12 +19,12 @@
|
|||
"Невозможно получить статусную информацию о '%-.64s' (ошибка: %d)",
|
||||
"Невозможно определить рабочий каталог (ошибка: %d)",
|
||||
"Невозможно поставить блокировку на файле (ошибка: %d)",
|
||||
"Невозможно открыть файл: '%-.64s'. (ошибка: %d)",
|
||||
"Невозможно открыть файл: '%-.64s' (ошибка: %d)",
|
||||
"Невозможно найти файл: '%-.64s' (ошибка: %d)",
|
||||
"Невозможно прочитать каталог '%-.64s' (ошибка: %d)",
|
||||
"Невозможно перейти в каталог '%-.64s' (ошибка: %d)",
|
||||
"Запись изменилась с момента последней выборки в таблице '%-.64s'",
|
||||
"Диск заполнен. (%s). Ожидаем, пока кто-то не уберет после себя мусор....",
|
||||
"Диск заполнен. (%s). Ожидаем, пока кто-то не уберет после себя мусор...",
|
||||
"Невозможно произвести запись, дублирующийся ключ в таблице '%-.64s'",
|
||||
"Ошибка при закрытии '%-.64s' (ошибка: %d)",
|
||||
"Ошибка чтения файла '%-.64s' (ошибка: %d)",
|
||||
|
|
|
@ -23,12 +23,12 @@
|
|||
"Ne mogu da dobijem stanje file-a '%-.64s' (errno: %d)",
|
||||
"Ne mogu da dobijem trenutni direktorijum (errno: %d)",
|
||||
"Ne mogu da zaključam file (errno: %d)",
|
||||
"Ne mogu da otvorim file: '%-.64s'. (errno: %d)",
|
||||
"Ne mogu da otvorim file: '%-.64s' (errno: %d)",
|
||||
"Ne mogu da pronađem file: '%-.64s' (errno: %d)",
|
||||
"Ne mogu da pročitam direktorijum '%-.64s' (errno: %d)",
|
||||
"Ne mogu da promenim direktorijum na '%-.64s' (errno: %d)",
|
||||
"Slog je promenjen od zadnjeg čitanja tabele '%-.64s'",
|
||||
"Disk je pun (%s). Èekam nekoga da doðe i oslobodi nešto mesta....",
|
||||
"Disk je pun (%s). Èekam nekoga da doðe i oslobodi nešto mesta...",
|
||||
"Ne mogu da pišem pošto postoji duplirani ključ u tabeli '%-.64s'",
|
||||
"Greška pri zatvaranju '%-.64s' (errno: %d)",
|
||||
"Greška pri čitanju file-a '%-.64s' (errno: %d)",
|
||||
|
@ -41,8 +41,8 @@
|
|||
"Handler tabela za '%-.64s' nema ovu opciju",
|
||||
"Ne mogu da pronađem slog u '%-.64s'",
|
||||
"Pogrešna informacija u file-u: '%-.64s'",
|
||||
"Pogrešan key file za tabelu: '%-.64s'. Probajte da ga ispravite",
|
||||
"Zastareo key file za tabelu '%-.64s'; Ispravite ga",
|
||||
"Pogrešan key file za tabelu: '%-.64s'; probajte da ga ispravite",
|
||||
"Zastareo key file za tabelu '%-.64s'; ispravite ga",
|
||||
"Tabelu '%-.64s' je dozvoljeno samo čitati",
|
||||
"Nema memorije. Restartujte MySQL server i probajte ponovo (potrebno je %d byte-ova)",
|
||||
"Nema memorije za sortiranje. Povećajte veličinu sort buffer-a MySQL server-u",
|
||||
|
|
|
@ -25,12 +25,12 @@
|
|||
"Nemôžem zistiť stav '%-.64s' (chybový kód: %d)",
|
||||
"Nemôžem zistiť pracovný adresár (chybový kód: %d)",
|
||||
"Nemôžem zamknúť súbor (chybový kód: %d)",
|
||||
"Nemôžem otvoriť súbor: '%-.64s'. (chybový kód: %d)",
|
||||
"Nemôžem otvoriť súbor: '%-.64s' (chybový kód: %d)",
|
||||
"Nemôžem nájsť súbor: '%-.64s' (chybový kód: %d)",
|
||||
"Nemôžem čítať adresár '%-.64s' (chybový kód: %d)",
|
||||
"Nemôžem vojsť do adresára '%-.64s' (chybový kód: %d)",
|
||||
"Záznam bol zmenený od posledného čítania v tabuľke '%-.64s'",
|
||||
"Disk je plný (%s), čakám na uvoľnenie miesta....",
|
||||
"Disk je plný (%s), čakám na uvoľnenie miesta...",
|
||||
"Nemôžem zapísať, duplikát kľúča v tabuľke '%-.64s'",
|
||||
"Chyba pri zatváraní '%-.64s' (chybový kód: %d)",
|
||||
"Chyba pri čítaní súboru '%-.64s' (chybový kód: %d)",
|
||||
|
@ -43,8 +43,8 @@
|
|||
"Obsluha tabuľky '%-.64s' nemá tento parameter",
|
||||
"Nemôžem nájsť záznam v '%-.64s'",
|
||||
"Nesprávna informácia v súbore: '%-.64s'",
|
||||
"Nesprávny kľúč pre tabuľku '%-.64s'. Pokúste sa ho opraviť",
|
||||
"Starý kľúčový súbor pre '%-.64s'; Opravte ho!",
|
||||
"Nesprávny kľúč pre tabuľku '%-.64s'; pokúste sa ho opraviť",
|
||||
"Starý kľúčový súbor pre '%-.64s'; opravte ho!",
|
||||
"'%-.64s' is čítať only",
|
||||
"Málo pamäti. Reštartujte daemona a skúste znova (je potrebných %d bytov)",
|
||||
"Málo pamäti pre triedenie, zvýšte veľkosť triediaceho bufferu",
|
||||
|
|
|
@ -18,12 +18,12 @@
|
|||
"No puedo obtener el estado de '%-.64s' (Error: %d)",
|
||||
"No puedo acceder al directorio (Error: %d)",
|
||||
"No puedo bloquear archivo: (Error: %d)",
|
||||
"No puedo abrir archivo: '%-.64s'. (Error: %d)",
|
||||
"No puedo abrir archivo: '%-.64s' (Error: %d)",
|
||||
"No puedo encontrar archivo: '%-.64s' (Error: %d)",
|
||||
"No puedo leer el directorio de '%-.64s' (Error: %d)",
|
||||
"No puedo cambiar al directorio de '%-.64s' (Error: %d)",
|
||||
"El registro ha cambiado desde la ultima lectura de la tabla '%-.64s'",
|
||||
"Disco lleno (%s). Esperando para que se libere algo de espacio....",
|
||||
"Disco lleno (%s). Esperando para que se libere algo de espacio...",
|
||||
"No puedo escribir, clave duplicada en la tabla '%-.64s'",
|
||||
"Error en el cierre de '%-.64s' (Error: %d)",
|
||||
"Error leyendo el fichero '%-.64s' (Error: %d)",
|
||||
|
@ -36,8 +36,8 @@
|
|||
"El manejador de la tabla de '%-.64s' no tiene esta opcion",
|
||||
"No puedo encontrar el registro en '%-.64s'",
|
||||
"Informacion erronea en el archivo: '%-.64s'",
|
||||
"Clave de archivo erronea para la tabla: '%-.64s'. Intente repararlo",
|
||||
"Clave de archivo antigua para la tabla '%-.64s'; Reparelo!",
|
||||
"Clave de archivo erronea para la tabla: '%-.64s'; intente repararlo",
|
||||
"Clave de archivo antigua para la tabla '%-.64s'; reparelo!",
|
||||
"'%-.64s' es de solo lectura",
|
||||
"Memoria insuficiente. Reinicie el demonio e intentelo otra vez (necesita %d bytes)",
|
||||
"Memoria de ordenacion insuficiente. Incremente el tamano del buffer de ordenacion",
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
"Kan inte läsa filinformationen (stat) från '%-.64s' (Felkod: %d)",
|
||||
"Kan inte inte läsa aktivt bibliotek. (Felkod: %d)",
|
||||
"Kan inte låsa filen. (Felkod: %d)",
|
||||
"Kan inte använda '%-.64s'. (Felkod: %d)",
|
||||
"Hittar inte filen '%-.64s'. (Felkod: %d)",
|
||||
"Kan inte läsa från bibliotek '%-.64s'. (Felkod: %d)",
|
||||
"Kan inte byta till '%-.64s'. (Felkod: %d)",
|
||||
"Kan inte använda '%-.64s' (Felkod: %d)",
|
||||
"Hittar inte filen '%-.64s' (Felkod: %d)",
|
||||
"Kan inte läsa från bibliotek '%-.64s' (Felkod: %d)",
|
||||
"Kan inte byta till '%-.64s' (Felkod: %d)",
|
||||
"Posten har förändrats sedan den lästes i register '%-.64s'",
|
||||
"Disken är full (%s). Väntar tills det finns ledigt utrymme....",
|
||||
"Disken är full (%s). Väntar tills det finns ledigt utrymme...",
|
||||
"Kan inte skriva, dubbel söknyckel i register '%-.64s'",
|
||||
"Fick fel vid stängning av '%-.64s' (Felkod: %d)",
|
||||
"Fick fel vid läsning av '%-.64s' (Felkod %d)",
|
||||
|
@ -35,8 +35,8 @@
|
|||
"Registrets databas har inte denna facilitet",
|
||||
"Hittar inte posten",
|
||||
"Felaktig fil: '%-.64s'",
|
||||
"Fatalt fel vid hantering av register '%-.64s'. Kör en reparation",
|
||||
"Gammal nyckelfil '%-.64s'. Reparera registret",
|
||||
"Fatalt fel vid hantering av register '%-.64s'; kör en reparation",
|
||||
"Gammal nyckelfil '%-.64s'; reparera registret",
|
||||
"'%-.64s' är skyddad mot förändring",
|
||||
"Oväntat slut på minnet, starta om programmet och försök på nytt (Behövde %d bytes)",
|
||||
"Sorteringsbufferten räcker inte till. Kontrollera startparametrarna",
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
"Дескриптор таблиц╕ '%-.64s' не ма╓ ц╕╓╖ властивост╕",
|
||||
"Не можу записати у '%-.64s'",
|
||||
"Хибна ╕нформац╕я у файл╕: '%-.64s'",
|
||||
"Хибний файл ключей для таблиц╕: '%-.64s'. Спробуйте його в╕дновити",
|
||||
"Хибний файл ключей для таблиц╕: '%-.64s'; Спробуйте його в╕дновити",
|
||||
"Старий файл ключей для таблиц╕ '%-.64s'; В╕днов╕ть його!",
|
||||
"Таблиця '%-.64s' т╕льки для читання",
|
||||
"Брак пам'ят╕. Рестартуйте сервер та спробуйте знову (потр╕бно %d байт╕в)",
|
||||
|
|
|
@ -2109,9 +2109,9 @@ all_or_any: ALL { $$ = 1; }
|
|||
/* expressions that begin with 'expr' */
|
||||
expr_expr:
|
||||
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 ')'
|
||||
{ $$= 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
|
||||
{ $$= new Item_in_subselect(YYTHD, $1, $3); }
|
||||
| expr NOT IN_SYM in_subselect
|
||||
|
@ -2211,9 +2211,9 @@ no_in_expr:
|
|||
/* expressions that begin with 'expr' that does NOT follow AND */
|
||||
no_and_expr:
|
||||
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 ')'
|
||||
{ $$= 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
|
||||
{ $$= new Item_in_subselect(YYTHD, $1, $3); }
|
||||
| no_and_expr NOT IN_SYM in_subselect
|
||||
|
@ -2389,7 +2389,7 @@ simple_expr:
|
|||
| DAY_SYM '(' expr ')'
|
||||
{ $$= new Item_func_dayofmonth($3); }
|
||||
| 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 ')'
|
||||
{ $$= new Item_func_make_set($3, *$5); }
|
||||
| ENCRYPT '(' expr ')'
|
||||
|
|
|
@ -2030,7 +2030,7 @@ CHARSET_INFO my_charset_utf8_bin=
|
|||
3, /* mbmaxlen */
|
||||
0,
|
||||
&my_charset_handler,
|
||||
&my_collation_ci_handler
|
||||
&my_collation_bin_handler
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue