mirror of
https://github.com/MariaDB/server.git
synced 2025-05-20 13:13:59 +03:00
merge
This commit is contained in:
commit
af41a59af7
@ -92,7 +92,7 @@ To build the latest Windows source package from the current
|
||||
BitKeeper source tree, use the following instructions. Please
|
||||
note that this procedure must be performed on a system
|
||||
running a Unix or Unix-like operating system. (The procedure
|
||||
is know to work well on Linux, for example.
|
||||
is known to work well on Linux, for example.)
|
||||
|
||||
- Clone the BitKeeper source tree for MySQL (version 4.1
|
||||
or above, as desired). For more information how to clone
|
||||
|
@ -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;
|
||||
|
@ -203,7 +203,7 @@ a
|
||||
2
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check error The storage enginge for the table doesn't support check
|
||||
test.t1 check error The storage engine for the table doesn't support check
|
||||
drop table t1;
|
||||
create table t1 (a int,b varchar(20)) type=bdb;
|
||||
insert into t1 values (1,""), (2,"testing");
|
||||
|
@ -1,12 +1,12 @@
|
||||
drop table if exists t1;
|
||||
select 0,256,00000000000000065536,2147483647,-2147483648,2147483648,+4294967296;
|
||||
0 256 00000000000000065536 2147483647 -2147483648 2147483648 +4294967296
|
||||
0 256 00000000000000065536 2147483647 -2147483648 2147483648 4294967296
|
||||
0 256 65536 2147483647 -2147483648 2147483648 4294967296
|
||||
select 9223372036854775807,-009223372036854775808;
|
||||
9223372036854775807 -009223372036854775808
|
||||
9223372036854775807 -9223372036854775808
|
||||
select +9999999999999999999,-9999999999999999999;
|
||||
+9999999999999999999 -9999999999999999999
|
||||
9999999999999999999 -9999999999999999999
|
||||
9999999999999999999 -10000000000000000000
|
||||
select cast(9223372036854775808 as unsigned)+1;
|
||||
cast(9223372036854775808 as unsigned)+1
|
||||
@ -14,6 +14,9 @@ cast(9223372036854775808 as unsigned)+1
|
||||
select 9223372036854775808+1;
|
||||
9223372036854775808+1
|
||||
9223372036854775809
|
||||
select -(0-3),round(-(0-3)), round(9999999999999999999);
|
||||
-(0-3) round(-(0-3)) round(9999999999999999999)
|
||||
3 3 10000000000000000000
|
||||
create table t1 (a bigint unsigned not null, primary key(a));
|
||||
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE);
|
||||
select * from t1;
|
||||
|
@ -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);
|
||||
|
@ -143,3 +143,24 @@ 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
|
||||
|
@ -1,2 +1,2 @@
|
||||
Variable_name Value
|
||||
jkhjkhfs
|
||||
Ssl_cipher EDH-RSA-DES-CBC3-SHA
|
||||
|
@ -156,7 +156,7 @@ level id parent_id
|
||||
1 1007 101
|
||||
optimize table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize error The storage enginge for the table doesn't support optimize
|
||||
test.t1 optimize error The storage engine for the table doesn't support optimize
|
||||
show keys from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 id A # NULL NULL BTREE
|
||||
@ -180,7 +180,7 @@ create table t1 (a int) type=innodb;
|
||||
insert into t1 values (1), (2);
|
||||
optimize table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize error The storage enginge for the table doesn't support optimize
|
||||
test.t1 optimize error The storage engine for the table doesn't support optimize
|
||||
delete from t1 where a = 1;
|
||||
select * from t1;
|
||||
a
|
||||
@ -712,7 +712,7 @@ world 2
|
||||
hello 1
|
||||
optimize table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize error The storage enginge for the table doesn't support optimize
|
||||
test.t1 optimize error The storage engine for the table doesn't support optimize
|
||||
show keys from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 a A 2 NULL NULL BTREE
|
||||
@ -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
|
||||
@ -1289,7 +1289,7 @@ a b
|
||||
111 100
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (col1 int(1))TYPE=InnoDB;
|
||||
CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP(+0),INDEX stamp_idx
|
||||
CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP,INDEX stamp_idx
|
||||
(stamp))TYPE=InnoDB;
|
||||
insert into t1 values (1),(2),(3);
|
||||
insert into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 );
|
||||
|
@ -57,14 +57,14 @@ test.t1 optimize status OK
|
||||
check table t1,t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
test.t2 check error The storage enginge for the table doesn't support check
|
||||
test.t2 check error The storage engine for the table doesn't support check
|
||||
repair table t1,t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
test.t2 repair error The storage enginge for the table doesn't support repair
|
||||
test.t2 repair error The storage engine for the table doesn't support repair
|
||||
check table t2,t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check error The storage enginge for the table doesn't support check
|
||||
test.t2 check error The storage engine for the table doesn't support check
|
||||
test.t1 check status OK
|
||||
lock tables t1 write;
|
||||
check table t2,t1;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -7,7 +7,7 @@ test.t1 repair status OK
|
||||
alter table t1 TYPE=HEAP;
|
||||
repair table t1 use_frm;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair error The storage enginge for the table doesn't support repair
|
||||
test.t1 repair error The storage engine for the table doesn't support repair
|
||||
drop table t1;
|
||||
repair table t1 use_frm;
|
||||
Table Op Msg_type Msg_text
|
||||
|
@ -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 (
|
||||
|
@ -436,8 +436,8 @@ a
|
||||
99999999999
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a_dec DECIMAL(-1,0));
|
||||
ERROR 42000: Too big column length for column 'a_dec' (max = 255). Use BLOB instead
|
||||
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '-1,0))' at line 1
|
||||
CREATE TABLE t1 (a_dec DECIMAL(-2,1));
|
||||
ERROR 42000: Too big column length for column 'a_dec' (max = 255). Use BLOB instead
|
||||
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '-2,1))' at line 1
|
||||
CREATE TABLE t1 (a_dec DECIMAL(-1,1));
|
||||
ERROR 42000: Too big column length for column 'a_dec' (max = 255). Use BLOB instead
|
||||
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '-1,1))' at line 1
|
||||
|
@ -90,6 +90,12 @@ Warning 1263 Data truncated for column 'b' at row 2
|
||||
Warning 1263 Data truncated for column 'b' at row 3
|
||||
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
|
||||
Warning 1263 Data truncated for column 'b' at row 4
|
||||
insert into t2(b) values('mysqlab');
|
||||
set sql_warnings=1;
|
||||
insert into t2(b) values('mysqlab');
|
||||
Warnings:
|
||||
Warning 1263 Data truncated for column 'b' at row 1
|
||||
set sql_warnings=0;
|
||||
drop table t1, t2;
|
||||
create table t1(a char(10));
|
||||
alter table t1 add b char;
|
||||
|
@ -13,6 +13,8 @@ select 9223372036854775807,-009223372036854775808;
|
||||
select +9999999999999999999,-9999999999999999999;
|
||||
select cast(9223372036854775808 as unsigned)+1;
|
||||
select 9223372036854775808+1;
|
||||
select -(0-3),round(-(0-3)), round(9999999999999999999);
|
||||
|
||||
#
|
||||
# In 3.23 we have to disable the test of column to bigint as
|
||||
# this fails on AIX powerpc (the resolution for double is not good enough)
|
||||
|
@ -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
|
||||
|
@ -73,3 +73,11 @@ 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);
|
||||
|
@ -868,7 +868,7 @@ drop table t1;
|
||||
|
||||
|
||||
CREATE TABLE t1 (col1 int(1))TYPE=InnoDB;
|
||||
CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP(+0),INDEX stamp_idx
|
||||
CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP,INDEX stamp_idx
|
||||
(stamp))TYPE=InnoDB;
|
||||
insert into t1 values (1),(2),(3);
|
||||
insert into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 );
|
||||
|
@ -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%';
|
||||
|
||||
|
@ -237,9 +237,9 @@ drop table t1;
|
||||
# Test of wrong decimal type
|
||||
#
|
||||
|
||||
--error 1074
|
||||
--error 1064
|
||||
CREATE TABLE t1 (a_dec DECIMAL(-1,0));
|
||||
--error 1074
|
||||
--error 1064
|
||||
CREATE TABLE t1 (a_dec DECIMAL(-2,1));
|
||||
--error 1074
|
||||
--error 1064
|
||||
CREATE TABLE t1 (a_dec DECIMAL(-1,1));
|
||||
|
@ -51,6 +51,10 @@ update t1 set c='mysql ab' where c='test';
|
||||
update t1 set d=c;
|
||||
create table t2(a tinyint NOT NULL, b char(3));
|
||||
insert into t2 select b,c from t1;
|
||||
insert into t2(b) values('mysqlab');
|
||||
set sql_warnings=1;
|
||||
insert into t2(b) values('mysqlab');
|
||||
set sql_warnings=0;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
|
@ -63,7 +63,7 @@ static void init_state_maps(CHARSET_INFO *cs)
|
||||
uint i;
|
||||
uchar *state_map= cs->state_map;
|
||||
uchar *ident_map= cs->ident_map;
|
||||
|
||||
|
||||
/* Fill state_map with states to get a faster parser */
|
||||
for (i=0; i < 256 ; i++)
|
||||
{
|
||||
@ -76,13 +76,12 @@ static void init_state_maps(CHARSET_INFO *cs)
|
||||
state_map[i]=(uchar) MY_LEX_IDENT;
|
||||
#endif
|
||||
else if (!my_isgraph(cs,i))
|
||||
state_map[i]=(uchar) MY_LEX_SKIP;
|
||||
state_map[i]=(uchar) MY_LEX_SKIP;
|
||||
else
|
||||
state_map[i]=(uchar) MY_LEX_CHAR;
|
||||
}
|
||||
state_map[(uchar)'_']=state_map[(uchar)'$']=(uchar) MY_LEX_IDENT;
|
||||
state_map[(uchar)'\'']=(uchar) MY_LEX_STRING;
|
||||
state_map[(uchar)'-']=state_map[(uchar)'+']=(uchar) MY_LEX_SIGNED_NUMBER;
|
||||
state_map[(uchar)'.']=(uchar) MY_LEX_REAL_OR_POINT;
|
||||
state_map[(uchar)'>']=state_map[(uchar)'=']=state_map[(uchar)'!']= (uchar) MY_LEX_CMP_OP;
|
||||
state_map[(uchar)'<']= (uchar) MY_LEX_LONG_CMP_OP;
|
||||
|
@ -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
|
||||
|
@ -89,6 +89,7 @@ static struct my_option my_long_options[] =
|
||||
0, 0, 0, GET_NO_ARG, NO_ARG, 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},
|
||||
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
struct hash_lex_struct
|
||||
@ -101,8 +102,8 @@ struct hash_lex_struct
|
||||
};
|
||||
int ithis;
|
||||
};
|
||||
|
||||
hash_lex_struct *get_hash_struct_by_len(hash_lex_struct **root_by_len,
|
||||
|
||||
hash_lex_struct *get_hash_struct_by_len(hash_lex_struct **root_by_len,
|
||||
int len, int *max_len)
|
||||
{
|
||||
if (*max_len<len){
|
||||
|
@ -382,7 +382,7 @@ public:
|
||||
Item_uint(const char *str_arg, uint length) :
|
||||
Item_int(str_arg, (longlong) strtoull(str_arg,(char**) 0,10), length) {}
|
||||
Item_uint(uint32 i) :Item_int((longlong) i, 10) {}
|
||||
double val() { return ulonglong2double(value); }
|
||||
double val() { return ulonglong2double((ulonglong)value); }
|
||||
String *val_str(String*);
|
||||
Item *new_item() { return new Item_uint(name,max_length); }
|
||||
bool fix_fields(THD *thd, struct st_table_list *list, Item **item)
|
||||
|
@ -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),
|
||||
@ -561,10 +587,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;
|
||||
@ -655,28 +678,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;
|
||||
}
|
||||
|
||||
|
||||
@ -749,19 +761,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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -805,7 +816,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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -868,64 +879,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;
|
||||
@ -937,7 +944,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;
|
||||
}
|
||||
|
||||
|
||||
@ -993,104 +1000,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);
|
||||
}
|
||||
|
||||
|
||||
bool Item_func_case::walk (Item_processor processor, byte *arg)
|
||||
{
|
||||
return first_expr->walk(processor, arg) ||
|
||||
else_expr->walk(processor, arg) ||
|
||||
Item_func::walk(processor, arg);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1149,13 +1109,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);
|
||||
@ -1445,7 +1403,8 @@ void Item_func_in::fix_length_and_dec()
|
||||
Item **arg, **arg_end;
|
||||
uint const_itm= 1;
|
||||
|
||||
if ((args[0]->result_type() == STRING_RESULT) &&
|
||||
agg_cmp_type(&cmp_type, args, arg_count);
|
||||
if ((cmp_type == STRING_RESULT) &&
|
||||
(agg_arg_collations_for_comparison(cmp_collation, args, arg_count)))
|
||||
return;
|
||||
|
||||
@ -1458,7 +1417,7 @@ void Item_func_in::fix_length_and_dec()
|
||||
*/
|
||||
if (const_itm && !nulls_in_row())
|
||||
{
|
||||
switch (args[0]->result_type()) {
|
||||
switch (cmp_type) {
|
||||
case STRING_RESULT:
|
||||
uint i;
|
||||
array=new in_string(arg_count-1,(qsort2_cmp) srtcmp_in,
|
||||
@ -1492,7 +1451,7 @@ void Item_func_in::fix_length_and_dec()
|
||||
else
|
||||
{
|
||||
in_item= cmp_item::get_comparator(args[0]);
|
||||
if (args[0]->result_type() == STRING_RESULT)
|
||||
if (cmp_type == STRING_RESULT)
|
||||
in_item->cmp_charset= cmp_collation.collation;
|
||||
}
|
||||
maybe_null= args[0]->maybe_null;
|
||||
|
@ -347,28 +347,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);
|
||||
|
||||
bool walk(Item_processor processor, byte *args);
|
||||
};
|
||||
|
||||
|
||||
@ -600,6 +610,7 @@ public:
|
||||
|
||||
class Item_func_in :public Item_int_func
|
||||
{
|
||||
Item_result cmp_type;
|
||||
in_vector *array;
|
||||
cmp_item *in_item;
|
||||
bool have_null;
|
||||
|
@ -470,7 +470,7 @@ Item *create_load_file(Item* a)
|
||||
}
|
||||
|
||||
|
||||
Item *create_func_cast(Item *a, Item_cast cast_type, CHARSET_INFO *cs)
|
||||
Item *create_func_cast(Item *a, Cast_target cast_type, CHARSET_INFO *cs)
|
||||
{
|
||||
Item *res;
|
||||
LINT_INIT(res);
|
||||
|
@ -28,7 +28,7 @@ Item *create_func_bit_length(Item* a);
|
||||
Item *create_func_coercibility(Item* a);
|
||||
Item *create_func_ceiling(Item* a);
|
||||
Item *create_func_char_length(Item* a);
|
||||
Item *create_func_cast(Item *a, Item_cast cast_type, CHARSET_INFO *cs);
|
||||
Item *create_func_cast(Item *a, Cast_target cast_type, CHARSET_INFO *cs);
|
||||
Item *create_func_connection_id(void);
|
||||
Item *create_func_conv(Item* a, Item *b, Item *c);
|
||||
Item *create_func_cos(Item* a);
|
||||
|
@ -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
|
||||
@ -596,7 +601,8 @@ void Item_func_neg::fix_length_and_dec()
|
||||
{
|
||||
decimals=args[0]->decimals;
|
||||
max_length=args[0]->max_length;
|
||||
hybrid_type= args[0]->result_type() == INT_RESULT ? INT_RESULT : REAL_RESULT;
|
||||
hybrid_type= args[0]->result_type() == INT_RESULT && !args[0]->unsigned_flag ?
|
||||
INT_RESULT : REAL_RESULT;
|
||||
}
|
||||
|
||||
double Item_func_abs::val()
|
||||
|
@ -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);
|
||||
@ -1067,7 +1068,7 @@ public:
|
||||
|
||||
/* For type casts */
|
||||
|
||||
enum Item_cast
|
||||
enum Cast_target
|
||||
{
|
||||
ITEM_CAST_BINARY, ITEM_CAST_SIGNED_INT, ITEM_CAST_UNSIGNED_INT,
|
||||
ITEM_CAST_DATE, ITEM_CAST_TIME, ITEM_CAST_DATETIME, ITEM_CAST_CHAR
|
||||
|
@ -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);
|
||||
|
@ -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'",
|
||||
@ -179,14 +179,14 @@
|
||||
"You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
|
||||
"Key '%-.64s' doesn't exist in table '%-.64s'",
|
||||
"Can't open table",
|
||||
"The storage enginge for the table doesn't support %s",
|
||||
"The storage engine for the table doesn't support %s",
|
||||
"You are not allowed to execute this command in a transaction",
|
||||
"Got error %d during COMMIT",
|
||||
"Got error %d during ROLLBACK",
|
||||
"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 байт╕в)",
|
||||
|
@ -455,6 +455,13 @@ int yylex(void *arg, void *yythd)
|
||||
}
|
||||
case MY_LEX_CHAR: // Unknown or single char token
|
||||
case MY_LEX_SKIP: // This should not happen
|
||||
if (c == '-' && yyPeek() == '-' &&
|
||||
(my_isspace(cs,yyPeek2()) ||
|
||||
my_iscntrl(cs,yyPeek2())))
|
||||
{
|
||||
state=MY_LEX_COMMENT;
|
||||
break;
|
||||
}
|
||||
yylval->lex_str.str=(char*) (lex->ptr=lex->tok_start);// Set to first chr
|
||||
yylval->lex_str.length=1;
|
||||
c=yyGet();
|
||||
@ -694,37 +701,6 @@ int yylex(void *arg, void *yythd)
|
||||
lex->next_state= MY_LEX_START;
|
||||
return(IDENT);
|
||||
}
|
||||
case MY_LEX_SIGNED_NUMBER: // Incomplete signed number
|
||||
if (prev_state == MY_LEX_OPERATOR_OR_IDENT)
|
||||
{
|
||||
if (c == '-' && yyPeek() == '-' &&
|
||||
(my_isspace(cs,yyPeek2()) ||
|
||||
my_iscntrl(cs,yyPeek2())))
|
||||
state=MY_LEX_COMMENT;
|
||||
else
|
||||
state= MY_LEX_CHAR; // Must be operator
|
||||
break;
|
||||
}
|
||||
if (!my_isdigit(cs,c=yyGet()) || yyPeek() == 'x')
|
||||
{
|
||||
if (c != '.')
|
||||
{
|
||||
if (c == '-' && my_isspace(cs,yyPeek()))
|
||||
state= MY_LEX_COMMENT;
|
||||
else
|
||||
state= MY_LEX_CHAR; // Return sign as single char
|
||||
break;
|
||||
}
|
||||
yyUnget(); // Fix for next loop
|
||||
}
|
||||
while (my_isdigit(cs,c=yyGet())) ; // Incomplete real or int number
|
||||
if ((c == 'e' || c == 'E') &&
|
||||
(yyPeek() == '+' || yyPeek() == '-' || my_isdigit(cs,yyPeek())))
|
||||
{ // Real number
|
||||
yyUnget();
|
||||
c= '.'; // Fool next test
|
||||
}
|
||||
// fall through
|
||||
case MY_LEX_INT_OR_REAL: // Compleat int or incompleat real
|
||||
if (c != '.')
|
||||
{ // Found complete integer number.
|
||||
|
@ -276,7 +276,7 @@ class JOIN :public Sql_alloc
|
||||
bool rollup_init();
|
||||
bool rollup_make_fields(List<Item> &all_fields, List<Item> &fields,
|
||||
Item_sum ***func);
|
||||
int JOIN::rollup_send_data(uint idx);
|
||||
int rollup_send_data(uint idx);
|
||||
};
|
||||
|
||||
|
||||
|
@ -74,7 +74,7 @@ inline Item *or_or_concat(THD *thd, Item* A, Item* B)
|
||||
enum row_type row_type;
|
||||
enum ha_rkey_function ha_rkey_mode;
|
||||
enum enum_tx_isolation tx_isolation;
|
||||
enum Item_cast cast_type;
|
||||
enum Cast_target cast_type;
|
||||
enum Item_udftype udf_type;
|
||||
CHARSET_INFO *charset;
|
||||
thr_lock_type lock_type;
|
||||
@ -2294,7 +2294,8 @@ simple_expr:
|
||||
YYABORT;
|
||||
}
|
||||
| sum_expr
|
||||
| '-' expr %prec NEG { $$= new Item_func_neg($2); }
|
||||
| '+' expr %prec NEG { $$= $2; }
|
||||
| '-' expr %prec NEG { $$= new Item_func_neg($2); }
|
||||
| '~' expr %prec NEG { $$= new Item_func_bit_neg($2); }
|
||||
| NOT expr %prec NEG { $$= new Item_func_not($2); }
|
||||
| '!' expr %prec NEG { $$= new Item_func_not($2); }
|
||||
@ -4138,7 +4139,7 @@ literal:
|
||||
Lex->next_state=MY_LEX_OPERATOR_OR_IDENT;}
|
||||
| HEX_NUM { $$ = new Item_varbinary($1.str,$1.length);}
|
||||
| UNDERSCORE_CHARSET HEX_NUM
|
||||
{
|
||||
{
|
||||
Item *tmp= new Item_varbinary($2.str,$2.length);
|
||||
String *str= tmp ? tmp->val_str((String*) 0) : (String*) 0;
|
||||
$$ = new Item_string(str ? str->ptr() : "", str ? str->length() : 0,
|
||||
@ -4310,8 +4311,6 @@ ident:
|
||||
LEX *lex= Lex;
|
||||
$$.str= lex->thd->strmake($1.str,$1.length);
|
||||
$$.length=$1.length;
|
||||
if (lex->next_state != MY_LEX_END)
|
||||
lex->next_state= MY_LEX_OPERATOR_OR_IDENT;
|
||||
}
|
||||
;
|
||||
|
||||
|
@ -2030,7 +2030,7 @@ CHARSET_INFO my_charset_utf8_bin=
|
||||
3, /* mbmaxlen */
|
||||
0,
|
||||
&my_charset_handler,
|
||||
&my_collation_ci_handler
|
||||
&my_collation_bin_handler
|
||||
};
|
||||
|
||||
|
||||
|
@ -176,7 +176,7 @@ static void client_connect()
|
||||
int rc;
|
||||
myheader_r("client_connect");
|
||||
|
||||
fprintf(stdout, "\n Establishing a connection ...");
|
||||
fprintf(stdout, "\n Establishing a connection to '%s' ...", opt_host);
|
||||
|
||||
if (!(mysql = mysql_init(NULL)))
|
||||
{
|
||||
@ -3729,7 +3729,7 @@ static void test_stmt_close()
|
||||
fprintf(stdout, "\n Establishing a test connection ...");
|
||||
if (!(lmysql = mysql_init(NULL)))
|
||||
{
|
||||
myerror("mysql_init() failed");
|
||||
myerror("mysql_init() failed");
|
||||
exit(0);
|
||||
}
|
||||
if (!(mysql_real_connect(lmysql,opt_host,opt_user,
|
||||
@ -6071,7 +6071,7 @@ static void test_prepare_grant()
|
||||
fprintf(stdout, "\n Establishing a test connection ...");
|
||||
if (!(lmysql = mysql_init(NULL)))
|
||||
{
|
||||
myerror("mysql_init() failed");
|
||||
myerror("mysql_init() failed");
|
||||
exit(0);
|
||||
}
|
||||
if (!(mysql_real_connect(lmysql,opt_host,"test_grant",
|
||||
@ -6460,7 +6460,7 @@ static void test_drop_temp()
|
||||
fprintf(stdout, "\n Establishing a test connection ...");
|
||||
if (!(lmysql = mysql_init(NULL)))
|
||||
{
|
||||
myerror("mysql_init() failed");
|
||||
myerror("mysql_init() failed");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@ -7160,6 +7160,11 @@ static void test_mem_overun()
|
||||
|
||||
rc = mysql_real_query(mysql, buffer, length);
|
||||
myquery(rc);
|
||||
|
||||
rc = mysql_query(mysql,"select * from t_mem_overun");
|
||||
myquery(rc);
|
||||
|
||||
myassert(1 == my_process_result(mysql));
|
||||
|
||||
stmt = mysql_prepare(mysql, "select * from t_mem_overun",30);
|
||||
mystmt_init(stmt);
|
||||
@ -7456,6 +7461,83 @@ static void test_sqlmode()
|
||||
mysql_stmt_close(stmt);
|
||||
}
|
||||
|
||||
/*
|
||||
test for timestamp handling
|
||||
*/
|
||||
static void test_ts()
|
||||
{
|
||||
MYSQL_STMT *stmt;
|
||||
MYSQL_BIND bind[2];
|
||||
MYSQL_TIME ts;
|
||||
char strts[30];
|
||||
long length;
|
||||
int rc;
|
||||
|
||||
myheader("test_ts");
|
||||
|
||||
rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_ts");
|
||||
myquery(rc);
|
||||
|
||||
rc= mysql_query(mysql,"CREATE TABLE test_ts(a TIMESTAMP)");
|
||||
myquery(rc);
|
||||
|
||||
rc = mysql_commit(mysql);
|
||||
myquery(rc);
|
||||
|
||||
stmt = mysql_prepare(mysql,"INSERT INTO test_ts VALUES(?),(?)",40);
|
||||
mystmt_init(stmt);
|
||||
|
||||
ts.year= 2003;
|
||||
ts.month= 07;
|
||||
ts.day= 12;
|
||||
ts.hour= 21;
|
||||
ts.minute= 07;
|
||||
ts.second= 46;
|
||||
length= (long)(strmov(strts,"2003-07-12 21:07:46") - strts);
|
||||
|
||||
bind[0].buffer_type= MYSQL_TYPE_STRING;
|
||||
bind[0].buffer= (char *)strts;
|
||||
bind[0].buffer_length= sizeof(strts);
|
||||
bind[0].is_null= 0;
|
||||
bind[0].length= &length;
|
||||
|
||||
bind[1].buffer_type= MYSQL_TYPE_TIMESTAMP;
|
||||
bind[1].buffer= (char *)&ts;
|
||||
bind[1].buffer_length= sizeof(ts);
|
||||
bind[1].is_null= 0;
|
||||
bind[1].length= 0;
|
||||
|
||||
rc = mysql_bind_param(stmt, bind);
|
||||
mystmt(stmt,rc);
|
||||
|
||||
rc = mysql_execute(stmt);
|
||||
mystmt(stmt,rc);
|
||||
|
||||
mysql_stmt_close(stmt);
|
||||
|
||||
verify_col_data("test_ts","a","2003-07-12 21:07:46");
|
||||
|
||||
stmt = mysql_prepare(mysql,"SELECT a FROM test_ts WHERE a >= ?",50);
|
||||
mystmt_init(stmt);
|
||||
|
||||
rc = mysql_bind_param(stmt, bind);
|
||||
mystmt(stmt,rc);
|
||||
|
||||
rc = mysql_execute(stmt);
|
||||
mystmt(stmt,rc);
|
||||
|
||||
rc = mysql_fetch(stmt);
|
||||
mystmt(stmt,rc);
|
||||
|
||||
rc = mysql_fetch(stmt);
|
||||
mystmt(stmt,rc);
|
||||
|
||||
rc = mysql_fetch(stmt);
|
||||
myassert(rc == MYSQL_NO_DATA);
|
||||
|
||||
mysql_stmt_close(stmt);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Read and parse arguments and MySQL options from my.cnf
|
||||
@ -7703,6 +7785,7 @@ int main(int argc, char **argv)
|
||||
test_fetch_offset(); /* to test mysql_fetch_column with offset */
|
||||
test_fetch_column(); /* to test mysql_fetch_column */
|
||||
test_sqlmode(); /* test for SQL_MODE */
|
||||
test_ts(); /* test for timestamp BR#819 */
|
||||
|
||||
end_time= time((time_t *)0);
|
||||
total_time+= difftime(end_time, start_time);
|
||||
|
Loading…
x
Reference in New Issue
Block a user