Commit 859a4cc1 authored by serg@serg.mylan's avatar serg@serg.mylan

Merge bk-internal:/home/bk/mysql-4.1/

into serg.mylan:/usr/home/serg/Abk/mysql-4.1
parents da5a81cf 46813d54
-- 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
......
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;
......
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
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);
......
# 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
......
This diff is collapsed.
......@@ -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-Bt zznam v '%-.64s'",
"Nespr-Bvn informace v souboru '%-.64s'",
"Nespr-Bvn kl pro tabulku '%-.64s'. Pokuste se ho opravit",
"Star-B klov soubor pro '%-.64s'. Opravte ho.",
"Nespr-Bvn kl pro tabulku '%-.64s'; pokuste se ho opravit",
"Star-B klov soubor pro '%-.64s'; opravte ho.",
"'%-.64s' je jen pro -Bten",
"M-Blo pamti. Pestartujte daemona a zkuste znovu (je poteba %d byt)",
"M-Blo pamti pro tdn. Zvyte velikost tdcho 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' vtmefail on vigane; Proovi seda parandada",
"Tabeli '%-.64s' vtmefail on aegunud; Paranda see!",
"Tabeli '%-.64s' vtmefail on vigane; proovi seda parandada",
"Tabeli '%-.64s' vtmefail on aegunud; paranda see!",
"Tabel '%-.64s' on ainult lugemiseks",
"Mlu sai otsa. Proovi MySQL uuesti kivitada (puudu ji %d baiti)",
"Mlu 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 lse 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 hndteraren for '%-.64s' har ikkje denne moglegheita",
"Kan ikkje finne posten i '%-.64s'",
"Feil informasjon i fila: '%-.64s'",
"Tabellen '%-.64s' har feil i nykkelfila, Prv reparere den",
"Gammel nykkelfil for tabellen '%-.64s'; Reparer den!",
"Tabellen '%-.64s' har feil i nykkelfila; prv reparere den",
"Gammel nykkelfil for tabellen '%-.64s'; reparer den!",
"'%-.64s' er skrivetryggja",
"Ikkje meir minne. Start p nytt tenesten og prv 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 mona otrzyma statusu '%-.64s' (Kod bdu: %d)",
"Nie mona rozpozna aktualnego katalogu (Kod bdu: %d)",
"Nie mona zablokowa pliku (Kod bdu: %d)",
"Nie mona otworzy pliku: '%-.64s'. (Kod bdu: %d)",
"Nie mona otworzy pliku: '%-.64s' (Kod bdu: %d)",
"Nie mona znale pliku: '%-.64s' (Kod bdu: %d)",
"Nie mona odczyta katalogu '%-.64s' (Kod bdu: %d)",
"Nie mona zmieni katalogu na '%-.64s' (Kod bdu: %d)",
"Rekord zosta zmieniony od ostaniego odczytania z tabeli '%-.64s'",
"Dysk peny (%s). Oczekiwanie na zwolnienie miejsca....",
"Dysk peny (%s). Oczekiwanie na zwolnienie miejsca...",
"Nie mona zapisa, powtrzone klucze w tabeli '%-.64s'",
"B?d podczas zamykania '%-.64s' (Kod bdu: %d)",
"B?d podczas odczytu pliku '%-.64s' (Kod bdu: %d)",
......@@ -39,8 +39,8 @@
"Obsuga tabeli '%-.64s' nie posiada tej opcji",
"Nie mona znale rekordu w '%-.64s'",
"Niewa?ciwa informacja w pliku: '%-.64s'",
"Niewa?ciwy plik kluczy dla tabeli: '%-.64s'. Sprbuj go naprawi",
"Plik kluczy dla tabeli '%-.64s' jest starego typu; Napraw go!",
"Niewa?ciwy plik kluczy dla tabeli: '%-.64s'; sprbuj go naprawi",
"Plik kluczy dla tabeli '%-.64s' jest starego typu; napraw go!",
"'%-.64s' jest tylko do odczytu",
"Zbyt mao pamici. Uruchom ponownie demona i sprbuj ponownie (potrzeba %d bajtw)",
"Zbyt mao pamici dla sortowania. Zwiksz 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 zakljuam file (errno: %d)",
"Ne mogu da otvorim file: '%-.64s'. (errno: %d)",
"Ne mogu da otvorim file: '%-.64s' (errno: %d)",
"Ne mogu da pronaem file: '%-.64s' (errno: %d)",
"Ne mogu da proitam 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 doe i oslobodi neto mesta....",
"Disk je pun (%s). ekam nekoga da doe i oslobodi neto mesta...",
"Ne mogu da piem poto postoji duplirani klju u tabeli '%-.64s'",
"Greka pri zatvaranju '%-.64s' (errno: %d)",
"Greka pri itanju file-a '%-.64s' (errno: %d)",
......@@ -41,8 +41,8 @@
"Handler tabela za '%-.64s' nema ovu opciju",
"Ne mogu da pronaem slog u '%-.64s'",
"Pogrena informacija u file-u: '%-.64s'",
"Pogrean key file za tabelu: '%-.64s'. Probajte da ga ispravite",
"Zastareo key file za tabelu '%-.64s'; Ispravite ga",
"Pogrean 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. Poveajte veliinu sort buffer-a MySQL server-u",
......
......@@ -25,12 +25,12 @@
"Nemem zisti stav '%-.64s' (chybov kd: %d)",
"Nemem zisti pracovn adresr (chybov kd: %d)",
"Nemem zamkn sbor (chybov kd: %d)",
"Nemem otvori sbor: '%-.64s'. (chybov kd: %d)",
"Nemem otvori sbor: '%-.64s' (chybov kd: %d)",
"Nemem njs sbor: '%-.64s' (chybov kd: %d)",
"Nemem ta adresr '%-.64s' (chybov kd: %d)",
"Nemem vojs do adresra '%-.64s' (chybov kd: %d)",
"Zznam bol zmenen od poslednho tania v tabuke '%-.64s'",
"Disk je pln (%s), akm na uvonenie miesta....",
"Disk je pln (%s), akm na uvonenie miesta...",
"Nemem zapsa, duplikt ka v tabuke '%-.64s'",
"Chyba pri zatvran '%-.64s' (chybov kd: %d)",
"Chyba pri tan sboru '%-.64s' (chybov kd: %d)",
......@@ -43,8 +43,8 @@
"Obsluha tabuky '%-.64s' nem tento parameter",
"Nemem njs zznam v '%-.64s'",
"Nesprvna informcia v sbore: '%-.64s'",
"Nesprvny k pre tabuku '%-.64s'. Pokste sa ho opravi",
"Star kov sbor pre '%-.64s'; Opravte ho!",
"Nesprvny k pre tabuku '%-.64s'; pokste sa ho opravi",
"Star kov sbor pre '%-.64s'; opravte ho!",
"'%-.64s' is ta only",
"Mlo pamti. Retartujte daemona a skste znova (je potrebnch %d bytov)",
"Mlo pamti pre triedenie, zvte vekos 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
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment