Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
23c4c3ab
Commit
23c4c3ab
authored
Nov 29, 2005
by
bar@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/usr/home/bar/mysql-5.0
into mysql.com:/usr/home/bar/mysql-5.1-new
parents
22183f23
0f73558e
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
129 additions
and
35 deletions
+129
-35
client/mysqladmin.cc
client/mysqladmin.cc
+1
-1
client/mysqlbinlog.cc
client/mysqlbinlog.cc
+2
-2
client/mysqlcheck.c
client/mysqlcheck.c
+1
-1
client/mysqldump.c
client/mysqldump.c
+1
-1
client/mysqlimport.c
client/mysqlimport.c
+1
-1
client/mysqlshow.c
client/mysqlshow.c
+1
-1
client/mysqltest.c
client/mysqltest.c
+1
-1
include/config-win.h
include/config-win.h
+4
-4
mysql-test/r/create.result
mysql-test/r/create.result
+19
-0
mysql-test/r/ctype_recoding.result
mysql-test/r/ctype_recoding.result
+8
-1
mysql-test/r/ps.result
mysql-test/r/ps.result
+7
-0
mysql-test/t/create.test
mysql-test/t/create.test
+14
-0
mysql-test/t/ctype_recoding.test
mysql-test/t/ctype_recoding.test
+9
-2
mysql-test/t/ps.test
mysql-test/t/ps.test
+12
-0
sql/item.cc
sql/item.cc
+2
-10
sql/item_strfunc.cc
sql/item_strfunc.cc
+2
-0
sql/item_strfunc.h
sql/item_strfunc.h
+32
-2
sql/sql_parse.cc
sql/sql_parse.cc
+8
-4
sql/table.cc
sql/table.cc
+4
-4
No files found.
client/mysqladmin.cc
View file @
23c4c3ab
...
...
@@ -161,7 +161,7 @@ static struct my_option my_long_options[] =
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#endif
{
"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)."
,
0
,
0
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"relative"
,
'r'
,
...
...
client/mysqlbinlog.cc
View file @
23c4c3ab
...
...
@@ -67,7 +67,7 @@ static const char* database= 0;
static
my_bool
force_opt
=
0
,
short_form
=
0
,
remote_opt
=
0
;
static
ulonglong
offset
=
0
;
static
const
char
*
host
=
0
;
static
int
port
=
MYSQL_PORT
;
static
int
port
=
0
;
static
const
char
*
sock
=
0
;
static
const
char
*
user
=
0
;
static
char
*
pass
=
0
;
...
...
@@ -688,7 +688,7 @@ static struct my_option my_long_options[] =
{
"password"
,
'p'
,
"Password to connect to remote server."
,
0
,
0
,
0
,
GET_STR
,
OPT_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"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
},
{
"position"
,
'j'
,
"Deprecated. Use --start-position instead."
,
(
gptr
*
)
&
start_position
,
(
gptr
*
)
&
start_position
,
0
,
GET_ULL
,
...
...
client/mysqlcheck.c
View file @
23c4c3ab
...
...
@@ -122,7 +122,7 @@ static struct my_option my_long_options[] =
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#endif
{
"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
},
{
"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
},
...
...
client/mysqldump.c
View file @
23c4c3ab
...
...
@@ -331,7 +331,7 @@ static struct my_option my_long_options[] =
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#endif
{
"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
},
{
"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
},
...
...
client/mysqlimport.c
View file @
23c4c3ab
...
...
@@ -121,7 +121,7 @@ static struct my_option my_long_options[] =
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#endif
{
"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
},
{
"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
},
...
...
client/mysqlshow.c
View file @
23c4c3ab
...
...
@@ -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."
,
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
,
(
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
},
#ifdef __WIN__
{
"pipe"
,
'W'
,
"Use named pipes to connect to server."
,
0
,
0
,
0
,
GET_NO_ARG
,
...
...
client/mysqltest.c
View file @
23c4c3ab
...
...
@@ -2763,7 +2763,7 @@ static struct my_option my_long_options[] =
{
"password"
,
'p'
,
"Password to use when connecting to server."
,
0
,
0
,
0
,
GET_STR
,
OPT_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"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"
,
(
gptr
*
)
&
ps_protocol
,
(
gptr
*
)
&
ps_protocol
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
...
...
include/config-win.h
View file @
23c4c3ab
...
...
@@ -279,10 +279,10 @@ inline double ulonglong2double(ulonglong value)
*((T)+4)=(uchar) (((A) >> 32)); }
#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A)
#define doubleget(V,M) { *((long *) &V) = *((long*) M); \
*(((long *) &V)+1) = *(((long*) M)+1); }
#define doublestore(T,V) { *((long *) T) = *((long*) &V); \
*(((long *) T)+1) = *(((long*) &V)+1); }
#define doubleget(V,M)
do
{ *((long *) &V) = *((long*) M); \
*(((long *) &V)+1) = *(((long*) M)+1); } while(0)
#define doublestore(T,V)
do
{ *((long *) T) = *((long*) &V); \
*(((long *) T)+1) = *(((long*) &V)+1); } while(0)
#define float4get(V,M) { *((long *) &(V)) = *((long*) (M)); }
#define floatstore(T,V) memcpy((byte*)(T), (byte*)(&V), sizeof(float))
#define floatget(V,M) memcpy((byte*)(&V), (byte*)(M), sizeof(float))
...
...
mysql-test/r/create.result
View file @
23c4c3ab
...
...
@@ -743,3 +743,22 @@ t2 CREATE TABLE `t2` (
`a2` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
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;
mysql-test/r/ctype_recoding.result
View file @
23c4c3ab
...
...
@@ -181,11 +181,18 @@ select * from t1 where a=_koi8r'
a
select * from t1 where a=concat(_koi8r'');
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (koi8r_general_ci,COERCIBLE) for operation '='
a
select * from t1 where a=_latin1'';
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
drop table t1;
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;
create table t1 (c1 char(10) character set cp1251);
insert into t1 values ('');
...
...
mysql-test/r/ps.result
View file @
23c4c3ab
...
...
@@ -825,3 +825,10 @@ execute stmt;
drop table t1;
set names default;
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;
mysql-test/t/create.test
View file @
23c4c3ab
...
...
@@ -631,3 +631,17 @@ show create table t2;
drop
table
t1
,
t2
;
# 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
mysql-test/t/ctype_recoding.test
View file @
23c4c3ab
...
...
@@ -144,8 +144,7 @@ create table t1 (a char(10) character set cp1251);
insert
into
t1
values
(
_koi8r
''
);
# this is possible:
select
*
from
t1
where
a
=
_koi8r
''
;
# this is not possible, because we have a function, not just a constant:
--
error
1267
# this is possible, because we have a function with constant arguments:
select
*
from
t1
where
a
=
concat
(
_koi8r
''
);
# this is not posible, cannot convert _latin1'' into cp1251:
--
error
1267
...
...
@@ -153,6 +152,14 @@ select * from t1 where a=_latin1'
drop
table
t1
;
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
#
...
...
mysql-test/t/ps.test
View file @
23c4c3ab
...
...
@@ -871,3 +871,15 @@ set names default;
deallocate
prepare
stmt
;
# 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
sql/item.cc
View file @
23c4c3ab
...
...
@@ -601,16 +601,8 @@ bool Item::eq(const Item *item, bool binary_cmp) const
Item
*
Item
::
safe_charset_converter
(
CHARSET_INFO
*
tocs
)
{
/*
Allow conversion from and to "binary".
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
);
Item_func_conv_charset
*
conv
=
new
Item_func_conv_charset
(
this
,
tocs
,
1
);
return
conv
->
safe
?
conv
:
NULL
;
}
...
...
sql/item_strfunc.cc
View file @
23c4c3ab
...
...
@@ -2316,6 +2316,8 @@ String *Item_func_conv::val_str(String *str)
String
*
Item_func_conv_charset
::
val_str
(
String
*
str
)
{
DBUG_ASSERT
(
fixed
==
1
);
if
(
use_cached_value
)
return
null_value
?
0
:
&
str_value
;
String
*
arg
=
args
[
0
]
->
val_str
(
str
);
uint
dummy_errors
;
if
(
!
arg
)
...
...
sql/item_strfunc.h
View file @
23c4c3ab
...
...
@@ -652,10 +652,40 @@ class Item_func_quote :public Item_str_func
class
Item_func_conv_charset
:
public
Item_str_func
{
bool
use_cached_value
;
public:
bool
safe
;
CHARSET_INFO
*
conv_charset
;
// keep it public
Item_func_conv_charset
(
Item
*
a
,
CHARSET_INFO
*
cs
)
:
Item_str_func
(
a
)
{
conv_charset
=
cs
;
}
Item_func_conv_charset
(
Item
*
a
,
CHARSET_INFO
*
cs
)
:
Item_str_func
(
a
)
{
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
*
);
void
fix_length_and_dec
();
const
char
*
func_name
()
const
{
return
"convert"
;
}
...
...
sql/sql_parse.cc
View file @
23c4c3ab
...
...
@@ -4844,11 +4844,15 @@ mysql_execute_command(THD *thd)
/*
The return value for ROW_COUNT() is "implementation dependent" if
the statement is not DELETE, INSERT or UPDATE (or a CALL executing
such a statement), but -1 is what JDBC and ODBC wants.
The return value for ROW_COUNT() is "implementation dependent" if the
statement is not DELETE, INSERT or UPDATE, but -1 is what JDBC and ODBC
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
;
goto
cleanup
;
...
...
sql/table.cc
View file @
23c4c3ab
...
...
@@ -1879,10 +1879,10 @@ File create_frm(THD *thd, const char *name, const char *db,
#if SIZEOF_OFF_T > 4
/* Fix this when we have new .frm files; Current limit is 4G rows (QQ) */
if
(
create_info
->
max_rows
>
~
(
ulong
)
0
)
create_info
->
max_rows
=
~
(
ulong
)
0
;
if
(
create_info
->
min_rows
>
~
(
ulong
)
0
)
create_info
->
min_rows
=
~
(
ulong
)
0
;
if
(
create_info
->
max_rows
>
UINT_MAX32
)
create_info
->
max_rows
=
UINT_MAX32
;
if
(
create_info
->
min_rows
>
UINT_MAX32
)
create_info
->
min_rows
=
UINT_MAX32
;
#endif
/*
Ensure that raid_chunks can't be larger than 255, as this would cause
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment