mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge mysql.com:/usr/home/bar/mysql-5.0
into mysql.com:/usr/home/bar/mysql-5.1-new client/mysqldump.c: Auto merged client/mysqltest.c: Auto merged sql/item.cc: Auto merged sql/item_strfunc.cc: Auto merged sql/item_strfunc.h: Auto merged sql/log_event.cc: Auto merged sql/sql_parse.cc: Auto merged sql/table.cc: Auto merged
This commit is contained in:
@ -161,7 +161,7 @@ static struct my_option my_long_options[] =
|
|||||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
#endif
|
#endif
|
||||||
{"port", 'P', "Port number to use for connection.", (gptr*) &tcp_port,
|
{"port", 'P', "Port number to use for connection.", (gptr*) &tcp_port,
|
||||||
(gptr*) &tcp_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0, 0},
|
(gptr*) &tcp_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"relative", 'r',
|
{"relative", 'r',
|
||||||
|
@ -67,7 +67,7 @@ static const char* database= 0;
|
|||||||
static my_bool force_opt= 0, short_form= 0, remote_opt= 0;
|
static my_bool force_opt= 0, short_form= 0, remote_opt= 0;
|
||||||
static ulonglong offset = 0;
|
static ulonglong offset = 0;
|
||||||
static const char* host = 0;
|
static const char* host = 0;
|
||||||
static int port = MYSQL_PORT;
|
static int port= 0;
|
||||||
static const char* sock= 0;
|
static const char* sock= 0;
|
||||||
static const char* user = 0;
|
static const char* user = 0;
|
||||||
static char* pass = 0;
|
static char* pass = 0;
|
||||||
@ -688,7 +688,7 @@ static struct my_option my_long_options[] =
|
|||||||
{"password", 'p', "Password to connect to remote server.",
|
{"password", 'p', "Password to connect to remote server.",
|
||||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"port", 'P', "Use port to connect to the remote server.",
|
{"port", 'P', "Use port to connect to the remote server.",
|
||||||
(gptr*) &port, (gptr*) &port, 0, GET_INT, REQUIRED_ARG, MYSQL_PORT, 0, 0,
|
(gptr*) &port, (gptr*) &port, 0, GET_INT, REQUIRED_ARG, 0, 0, 0,
|
||||||
0, 0, 0},
|
0, 0, 0},
|
||||||
{"position", 'j', "Deprecated. Use --start-position instead.",
|
{"position", 'j', "Deprecated. Use --start-position instead.",
|
||||||
(gptr*) &start_position, (gptr*) &start_position, 0, GET_ULL,
|
(gptr*) &start_position, (gptr*) &start_position, 0, GET_ULL,
|
||||||
|
@ -122,7 +122,7 @@ static struct my_option my_long_options[] =
|
|||||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
#endif
|
#endif
|
||||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
|
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||||
0},
|
0},
|
||||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
@ -331,7 +331,7 @@ static struct my_option my_long_options[] =
|
|||||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
#endif
|
#endif
|
||||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
|
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||||
0},
|
0},
|
||||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
@ -121,7 +121,7 @@ static struct my_option my_long_options[] =
|
|||||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
#endif
|
#endif
|
||||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
|
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||||
0},
|
0},
|
||||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
@ -188,7 +188,7 @@ static struct my_option my_long_options[] =
|
|||||||
"Password to use when connecting to server. If password is not given it's asked from the tty.",
|
"Password to use when connecting to server. If password is not given it's asked from the tty.",
|
||||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
|
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||||
0},
|
0},
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||||
|
@ -2763,7 +2763,7 @@ static struct my_option my_long_options[] =
|
|||||||
{"password", 'p', "Password to use when connecting to server.",
|
{"password", 'p', "Password to use when connecting to server.",
|
||||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"port", 'P', "Port number to use for connection.", (gptr*) &port,
|
{"port", 'P', "Port number to use for connection.", (gptr*) &port,
|
||||||
(gptr*) &port, 0, GET_INT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0, 0},
|
(gptr*) &port, 0, GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"ps-protocol", OPT_PS_PROTOCOL, "Use prepared statements protocol for communication",
|
{"ps-protocol", OPT_PS_PROTOCOL, "Use prepared statements protocol for communication",
|
||||||
(gptr*) &ps_protocol, (gptr*) &ps_protocol, 0,
|
(gptr*) &ps_protocol, (gptr*) &ps_protocol, 0,
|
||||||
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
@ -279,10 +279,10 @@ inline double ulonglong2double(ulonglong value)
|
|||||||
*((T)+4)=(uchar) (((A) >> 32)); }
|
*((T)+4)=(uchar) (((A) >> 32)); }
|
||||||
#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A)
|
#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A)
|
||||||
|
|
||||||
#define doubleget(V,M) { *((long *) &V) = *((long*) M); \
|
#define doubleget(V,M) do { *((long *) &V) = *((long*) M); \
|
||||||
*(((long *) &V)+1) = *(((long*) M)+1); }
|
*(((long *) &V)+1) = *(((long*) M)+1); } while(0)
|
||||||
#define doublestore(T,V) { *((long *) T) = *((long*) &V); \
|
#define doublestore(T,V) do { *((long *) T) = *((long*) &V); \
|
||||||
*(((long *) T)+1) = *(((long*) &V)+1); }
|
*(((long *) T)+1) = *(((long*) &V)+1); } while(0)
|
||||||
#define float4get(V,M) { *((long *) &(V)) = *((long*) (M)); }
|
#define float4get(V,M) { *((long *) &(V)) = *((long*) (M)); }
|
||||||
#define floatstore(T,V) memcpy((byte*)(T), (byte*)(&V), sizeof(float))
|
#define floatstore(T,V) memcpy((byte*)(T), (byte*)(&V), sizeof(float))
|
||||||
#define floatget(V,M) memcpy((byte*)(&V), (byte*)(M), sizeof(float))
|
#define floatget(V,M) memcpy((byte*)(&V), (byte*)(M), sizeof(float))
|
||||||
|
@ -743,3 +743,22 @@ t2 CREATE TABLE `t2` (
|
|||||||
`a2` int(11) default NULL
|
`a2` int(11) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
create table t1 (i int) engine=myisam max_rows=100000000000;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(11) default NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295
|
||||||
|
alter table t1 max_rows=100;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(11) default NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=100
|
||||||
|
alter table t1 max_rows=100000000000;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(11) default NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295
|
||||||
|
drop table t1;
|
||||||
|
@ -181,11 +181,18 @@ select * from t1 where a=_koi8r'
|
|||||||
a
|
a
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
select * from t1 where a=concat(_koi8r'<27><><EFBFBD><EFBFBD>');
|
select * from t1 where a=concat(_koi8r'<27><><EFBFBD><EFBFBD>');
|
||||||
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (koi8r_general_ci,COERCIBLE) for operation '='
|
a
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
select * from t1 where a=_latin1'<27><><EFBFBD><EFBFBD>';
|
select * from t1 where a=_latin1'<27><><EFBFBD><EFBFBD>';
|
||||||
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set names latin1;
|
set names latin1;
|
||||||
|
create table t1 (a char(10) character set utf8 collate utf8_bin);
|
||||||
|
insert into t1 values (' xxx');
|
||||||
|
select * from t1 where a=lpad('xxx',10,' ');
|
||||||
|
a
|
||||||
|
xxx
|
||||||
|
drop table t1;
|
||||||
set names koi8r;
|
set names koi8r;
|
||||||
create table t1 (c1 char(10) character set cp1251);
|
create table t1 (c1 char(10) character set cp1251);
|
||||||
insert into t1 values ('<27>');
|
insert into t1 values ('<27>');
|
||||||
|
@ -825,3 +825,10 @@ execute stmt;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
set names default;
|
set names default;
|
||||||
deallocate prepare stmt;
|
deallocate prepare stmt;
|
||||||
|
create table t1 (id int);
|
||||||
|
prepare ins_call from "insert into t1 (id) values (1)";
|
||||||
|
execute ins_call;
|
||||||
|
select row_count();
|
||||||
|
row_count()
|
||||||
|
1
|
||||||
|
drop table t1;
|
||||||
|
@ -631,3 +631,17 @@ show create table t2;
|
|||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #14155: Maximum value of MAX_ROWS handled incorrectly on 64-bit
|
||||||
|
# platforms
|
||||||
|
#
|
||||||
|
create table t1 (i int) engine=myisam max_rows=100000000000;
|
||||||
|
show create table t1;
|
||||||
|
alter table t1 max_rows=100;
|
||||||
|
show create table t1;
|
||||||
|
alter table t1 max_rows=100000000000;
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
# End of 5.0 tests
|
||||||
|
@ -144,8 +144,7 @@ create table t1 (a char(10) character set cp1251);
|
|||||||
insert into t1 values (_koi8r'<27><><EFBFBD><EFBFBD>');
|
insert into t1 values (_koi8r'<27><><EFBFBD><EFBFBD>');
|
||||||
# this is possible:
|
# this is possible:
|
||||||
select * from t1 where a=_koi8r'<27><><EFBFBD><EFBFBD>';
|
select * from t1 where a=_koi8r'<27><><EFBFBD><EFBFBD>';
|
||||||
# this is not possible, because we have a function, not just a constant:
|
# this is possible, because we have a function with constant arguments:
|
||||||
--error 1267
|
|
||||||
select * from t1 where a=concat(_koi8r'<27><><EFBFBD><EFBFBD>');
|
select * from t1 where a=concat(_koi8r'<27><><EFBFBD><EFBFBD>');
|
||||||
# this is not posible, cannot convert _latin1'<27><><EFBFBD><EFBFBD>' into cp1251:
|
# this is not posible, cannot convert _latin1'<27><><EFBFBD><EFBFBD>' into cp1251:
|
||||||
--error 1267
|
--error 1267
|
||||||
@ -153,6 +152,14 @@ select * from t1 where a=_latin1'
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
set names latin1;
|
set names latin1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#10446 Illegal mix of collations
|
||||||
|
#
|
||||||
|
create table t1 (a char(10) character set utf8 collate utf8_bin);
|
||||||
|
insert into t1 values (' xxx');
|
||||||
|
select * from t1 where a=lpad('xxx',10,' ');
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check more automatic conversion
|
# Check more automatic conversion
|
||||||
#
|
#
|
||||||
|
@ -871,3 +871,15 @@ set names default;
|
|||||||
deallocate prepare stmt;
|
deallocate prepare stmt;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #14956: ROW_COUNT() returns incorrect result after EXECUTE of prepared
|
||||||
|
# statement
|
||||||
|
#
|
||||||
|
create table t1 (id int);
|
||||||
|
prepare ins_call from "insert into t1 (id) values (1)";
|
||||||
|
execute ins_call;
|
||||||
|
select row_count();
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
# End of 5.0 tests
|
||||||
|
12
sql/item.cc
12
sql/item.cc
@ -601,16 +601,8 @@ bool Item::eq(const Item *item, bool binary_cmp) const
|
|||||||
|
|
||||||
Item *Item::safe_charset_converter(CHARSET_INFO *tocs)
|
Item *Item::safe_charset_converter(CHARSET_INFO *tocs)
|
||||||
{
|
{
|
||||||
/*
|
Item_func_conv_charset *conv= new Item_func_conv_charset(this, tocs, 1);
|
||||||
Allow conversion from and to "binary".
|
return conv->safe ? conv : NULL;
|
||||||
Don't allow automatic conversion to non-Unicode charsets,
|
|
||||||
as it potentially loses data.
|
|
||||||
*/
|
|
||||||
if (collation.collation != &my_charset_bin &&
|
|
||||||
tocs != &my_charset_bin &&
|
|
||||||
!(tocs->state & MY_CS_UNICODE))
|
|
||||||
return NULL; // safe conversion is not possible
|
|
||||||
return new Item_func_conv_charset(this, tocs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2316,6 +2316,8 @@ String *Item_func_conv::val_str(String *str)
|
|||||||
String *Item_func_conv_charset::val_str(String *str)
|
String *Item_func_conv_charset::val_str(String *str)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(fixed == 1);
|
DBUG_ASSERT(fixed == 1);
|
||||||
|
if (use_cached_value)
|
||||||
|
return null_value ? 0 : &str_value;
|
||||||
String *arg= args[0]->val_str(str);
|
String *arg= args[0]->val_str(str);
|
||||||
uint dummy_errors;
|
uint dummy_errors;
|
||||||
if (!arg)
|
if (!arg)
|
||||||
|
@ -652,10 +652,40 @@ public:
|
|||||||
|
|
||||||
class Item_func_conv_charset :public Item_str_func
|
class Item_func_conv_charset :public Item_str_func
|
||||||
{
|
{
|
||||||
|
bool use_cached_value;
|
||||||
public:
|
public:
|
||||||
|
bool safe;
|
||||||
CHARSET_INFO *conv_charset; // keep it public
|
CHARSET_INFO *conv_charset; // keep it public
|
||||||
Item_func_conv_charset(Item *a, CHARSET_INFO *cs) :Item_str_func(a)
|
Item_func_conv_charset(Item *a, CHARSET_INFO *cs) :Item_str_func(a)
|
||||||
{ conv_charset=cs; }
|
{ conv_charset= cs; use_cached_value= 0; safe= 0; }
|
||||||
|
Item_func_conv_charset(Item *a, CHARSET_INFO *cs, bool cache_if_const)
|
||||||
|
:Item_str_func(a)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(args[0]->fixed);
|
||||||
|
conv_charset= cs;
|
||||||
|
if (cache_if_const && args[0]->const_item())
|
||||||
|
{
|
||||||
|
uint errors= 0;
|
||||||
|
String tmp, *str= args[0]->val_str(&tmp);
|
||||||
|
if (!str || str_value.copy(str->ptr(), str->length(),
|
||||||
|
str->charset(), conv_charset, &errors))
|
||||||
|
null_value= 1;
|
||||||
|
use_cached_value= 1;
|
||||||
|
safe= (errors == 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
use_cached_value= 0;
|
||||||
|
/*
|
||||||
|
Conversion from and to "binary" is safe.
|
||||||
|
Conversion to Unicode is safe.
|
||||||
|
Other kind of conversions are potentially lossy.
|
||||||
|
*/
|
||||||
|
safe= (args[0]->collation.collation == &my_charset_bin ||
|
||||||
|
cs == &my_charset_bin ||
|
||||||
|
(cs->state & MY_CS_UNICODE));
|
||||||
|
}
|
||||||
|
}
|
||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "convert"; }
|
const char *func_name() const { return "convert"; }
|
||||||
|
@ -4844,11 +4844,15 @@ end_with_restore_list:
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The return value for ROW_COUNT() is "implementation dependent" if
|
The return value for ROW_COUNT() is "implementation dependent" if the
|
||||||
the statement is not DELETE, INSERT or UPDATE (or a CALL executing
|
statement is not DELETE, INSERT or UPDATE, but -1 is what JDBC and ODBC
|
||||||
such a statement), but -1 is what JDBC and ODBC wants.
|
wants.
|
||||||
|
|
||||||
|
We do not change the value for a CALL or EXECUTE statement, so the value
|
||||||
|
generated by the last called (or executed) statement is preserved.
|
||||||
*/
|
*/
|
||||||
if (lex->sql_command != SQLCOM_CALL && uc_update_queries[lex->sql_command]<2)
|
if (lex->sql_command != SQLCOM_CALL && lex->sql_command != SQLCOM_EXECUTE &&
|
||||||
|
uc_update_queries[lex->sql_command]<2)
|
||||||
thd->row_count_func= -1;
|
thd->row_count_func= -1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
@ -1879,10 +1879,10 @@ File create_frm(THD *thd, const char *name, const char *db,
|
|||||||
|
|
||||||
#if SIZEOF_OFF_T > 4
|
#if SIZEOF_OFF_T > 4
|
||||||
/* Fix this when we have new .frm files; Current limit is 4G rows (QQ) */
|
/* Fix this when we have new .frm files; Current limit is 4G rows (QQ) */
|
||||||
if (create_info->max_rows > ~(ulong) 0)
|
if (create_info->max_rows > UINT_MAX32)
|
||||||
create_info->max_rows= ~(ulong) 0;
|
create_info->max_rows= UINT_MAX32;
|
||||||
if (create_info->min_rows > ~(ulong) 0)
|
if (create_info->min_rows > UINT_MAX32)
|
||||||
create_info->min_rows= ~(ulong) 0;
|
create_info->min_rows= UINT_MAX32;
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
Ensure that raid_chunks can't be larger than 255, as this would cause
|
Ensure that raid_chunks can't be larger than 255, as this would cause
|
||||||
|
Reference in New Issue
Block a user