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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
f29b2bea
Commit
f29b2bea
authored
Dec 14, 2006
by
bar@bar.intranet.mysql.r18.ru
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/usr/home/bar/mysql-5.0.b22645
into mysql.com:/usr/home/bar/mysql-5.1.b22645
parents
bd8cf7a1
cfdec2ca
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
86 additions
and
6 deletions
+86
-6
mysql-test/r/mysqlbinlog.result
mysql-test/r/mysqlbinlog.result
+20
-0
mysql-test/r/rpl_locale.result
mysql-test/r/rpl_locale.result
+4
-0
mysql-test/t/mysqlbinlog.test
mysql-test/t/mysqlbinlog.test
+20
-2
mysql-test/t/rpl_locale.test
mysql-test/t/rpl_locale.test
+2
-0
sql/log_event.cc
sql/log_event.cc
+34
-3
sql/log_event.h
sql/log_event.h
+6
-1
No files found.
mysql-test/r/mysqlbinlog.result
View file @
f29b2bea
...
@@ -214,6 +214,26 @@ select * from t5 /* must be (1),(1) */;
...
@@ -214,6 +214,26 @@ select * from t5 /* must be (1),(1) */;
a
a
1
1
1
1
flush logs;
drop table if exists t5;
create table t5 (c1 int, c2 varchar(128) character set latin1 not null);
insert into t5 values (1, date_format('2001-01-01','%W'));
set lc_time_names=de_DE;
insert into t5 values (2, date_format('2001-01-01','%W'));
set lc_time_names=en_US;
insert into t5 values (3, date_format('2001-01-01','%W'));
select * from t5 order by c1;
c1 c2
1 Monday
2 Montag
3 Monday
flush logs;
drop table t5;
select * from t5 order by c1;
c1 c2
1 Monday
2 Montag
3 Monday
drop procedure if exists p1;
drop procedure if exists p1;
flush logs;
flush logs;
create procedure p1()
create procedure p1()
...
...
mysql-test/r/rpl_locale.result
View file @
f29b2bea
...
@@ -7,10 +7,14 @@ start slave;
...
@@ -7,10 +7,14 @@ start slave;
create table t1 (s1 char(10));
create table t1 (s1 char(10));
set lc_time_names= 'de_DE';
set lc_time_names= 'de_DE';
insert into t1 values (date_format('2001-01-01','%W'));
insert into t1 values (date_format('2001-01-01','%W'));
set lc_time_names= 'en_US';
insert into t1 values (date_format('2001-01-01','%W'));
select * from t1;
select * from t1;
s1
s1
Montag
Montag
Monday
select * from t1;
select * from t1;
s1
s1
Montag
Montag
Monday
drop table t1;
drop table t1;
mysql-test/t/mysqlbinlog.test
View file @
f29b2bea
...
@@ -136,6 +136,24 @@ flush logs;
...
@@ -136,6 +136,24 @@ flush logs;
--
exec
$MYSQL_BINLOG
--
short
-
form
$MYSQLTEST_VARDIR
/
log
/
master
-
bin
.
000006
|
$MYSQL
--
exec
$MYSQL_BINLOG
--
short
-
form
$MYSQLTEST_VARDIR
/
log
/
master
-
bin
.
000006
|
$MYSQL
select
*
from
t5
/* must be (1),(1) */
;
select
*
from
t5
/* must be (1),(1) */
;
#
# Bug#22645 LC_TIME_NAMES: Statement not replicated
# Check that a dump created by mysqlbinlog reproduces
# lc_time_names dependent values correctly
#
flush
logs
;
drop
table
if
exists
t5
;
create
table
t5
(
c1
int
,
c2
varchar
(
128
)
character
set
latin1
not
null
);
insert
into
t5
values
(
1
,
date_format
(
'2001-01-01'
,
'%W'
));
set
lc_time_names
=
de_DE
;
insert
into
t5
values
(
2
,
date_format
(
'2001-01-01'
,
'%W'
));
set
lc_time_names
=
en_US
;
insert
into
t5
values
(
3
,
date_format
(
'2001-01-01'
,
'%W'
));
select
*
from
t5
order
by
c1
;
flush
logs
;
drop
table
t5
;
--
exec
$MYSQL_BINLOG
--
short
-
form
$MYSQLTEST_VARDIR
/
log
/
master
-
bin
.
000007
|
$MYSQL
select
*
from
t5
order
by
c1
;
#
#
# Bug#20396 Bin Log does not get DELIMETER cmd - Recover StoredProc fails
# Bug#20396 Bin Log does not get DELIMETER cmd - Recover StoredProc fails
#
#
...
@@ -155,8 +173,8 @@ call p1();
...
@@ -155,8 +173,8 @@ call p1();
drop
procedure
p1
;
drop
procedure
p1
;
--
error
1305
--
error
1305
call
p1
();
call
p1
();
--
exec
$MYSQL_BINLOG
--
short
-
form
$MYSQLTEST_VARDIR
/
log
/
master
-
bin
.
00000
7
--
exec
$MYSQL_BINLOG
--
short
-
form
$MYSQLTEST_VARDIR
/
log
/
master
-
bin
.
00000
9
--
exec
$MYSQL_BINLOG
--
short
-
form
$MYSQLTEST_VARDIR
/
log
/
master
-
bin
.
00000
7
|
$MYSQL
--
exec
$MYSQL_BINLOG
--
short
-
form
$MYSQLTEST_VARDIR
/
log
/
master
-
bin
.
00000
9
|
$MYSQL
call
p1
();
call
p1
();
drop
procedure
p1
;
drop
procedure
p1
;
...
...
mysql-test/t/rpl_locale.test
View file @
f29b2bea
...
@@ -9,6 +9,8 @@ connection master;
...
@@ -9,6 +9,8 @@ connection master;
create
table
t1
(
s1
char
(
10
));
create
table
t1
(
s1
char
(
10
));
set
lc_time_names
=
'de_DE'
;
set
lc_time_names
=
'de_DE'
;
insert
into
t1
values
(
date_format
(
'2001-01-01'
,
'%W'
));
insert
into
t1
values
(
date_format
(
'2001-01-01'
,
'%W'
));
set
lc_time_names
=
'en_US'
;
insert
into
t1
values
(
date_format
(
'2001-01-01'
,
'%W'
));
select
*
from
t1
;
select
*
from
t1
;
sync_slave_with_master
;
sync_slave_with_master
;
connection
slave
;
connection
slave
;
...
...
sql/log_event.cc
View file @
f29b2bea
...
@@ -1289,7 +1289,8 @@ bool Query_log_event::write(IO_CACHE* file)
...
@@ -1289,7 +1289,8 @@ bool Query_log_event::write(IO_CACHE* file)
1
+
1
+
FN_REFLEN
+
// code of catalog and catalog length and catalog
1
+
1
+
FN_REFLEN
+
// code of catalog and catalog length and catalog
1
+
4
+
// code of autoinc and the 2 autoinc variables
1
+
4
+
// code of autoinc and the 2 autoinc variables
1
+
6
+
// code of charset and charset
1
+
6
+
// code of charset and charset
1
+
1
+
MAX_TIME_ZONE_NAME_LENGTH
// code of tz and tz length and tz name
1
+
1
+
MAX_TIME_ZONE_NAME_LENGTH
+
// code of tz and tz length and tz name
1
+
2
// code of lc_time_names and lc_time_names_number
],
*
start
,
*
start_of_status
;
],
*
start
,
*
start_of_status
;
ulong
event_length
;
ulong
event_length
;
...
@@ -1401,6 +1402,13 @@ bool Query_log_event::write(IO_CACHE* file)
...
@@ -1401,6 +1402,13 @@ bool Query_log_event::write(IO_CACHE* file)
memcpy
(
start
,
time_zone_str
,
time_zone_len
);
memcpy
(
start
,
time_zone_str
,
time_zone_len
);
start
+=
time_zone_len
;
start
+=
time_zone_len
;
}
}
if
(
lc_time_names_number
)
{
DBUG_ASSERT
(
lc_time_names_number
<=
0xFFFF
);
*
start
++=
Q_LC_TIME_NAMES_CODE
;
int2store
(
start
,
lc_time_names_number
);
start
+=
2
;
}
/*
/*
Here there could be code like
Here there could be code like
if (command-line-option-which-says-"log_this_variable" && inited)
if (command-line-option-which-says-"log_this_variable" && inited)
...
@@ -1465,7 +1473,8 @@ Query_log_event::Query_log_event(THD* thd_arg, const char* query_arg,
...
@@ -1465,7 +1473,8 @@ Query_log_event::Query_log_event(THD* thd_arg, const char* query_arg,
flags2_inited
(
1
),
sql_mode_inited
(
1
),
charset_inited
(
1
),
flags2_inited
(
1
),
sql_mode_inited
(
1
),
charset_inited
(
1
),
sql_mode
(
thd_arg
->
variables
.
sql_mode
),
sql_mode
(
thd_arg
->
variables
.
sql_mode
),
auto_increment_increment
(
thd_arg
->
variables
.
auto_increment_increment
),
auto_increment_increment
(
thd_arg
->
variables
.
auto_increment_increment
),
auto_increment_offset
(
thd_arg
->
variables
.
auto_increment_offset
)
auto_increment_offset
(
thd_arg
->
variables
.
auto_increment_offset
),
lc_time_names_number
(
thd_arg
->
variables
.
lc_time_names
->
number
)
{
{
time_t
end_time
;
time_t
end_time
;
time
(
&
end_time
);
time
(
&
end_time
);
...
@@ -1536,7 +1545,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
...
@@ -1536,7 +1545,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
db
(
NullS
),
catalog_len
(
0
),
status_vars_len
(
0
),
db
(
NullS
),
catalog_len
(
0
),
status_vars_len
(
0
),
flags2_inited
(
0
),
sql_mode_inited
(
0
),
charset_inited
(
0
),
flags2_inited
(
0
),
sql_mode_inited
(
0
),
charset_inited
(
0
),
auto_increment_increment
(
1
),
auto_increment_offset
(
1
),
auto_increment_increment
(
1
),
auto_increment_offset
(
1
),
time_zone_len
(
0
)
time_zone_len
(
0
)
,
lc_time_names_number
(
0
)
{
{
ulong
data_len
;
ulong
data_len
;
uint32
tmp
;
uint32
tmp
;
...
@@ -1637,6 +1646,10 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
...
@@ -1637,6 +1646,10 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
pos
+=
catalog_len
+
2
;
// leap over end 0
pos
+=
catalog_len
+
2
;
// leap over end 0
catalog_nz
=
0
;
// catalog has end 0 in event
catalog_nz
=
0
;
// catalog has end 0 in event
break
;
break
;
case
Q_LC_TIME_NAMES_CODE
:
lc_time_names_number
=
uint2korr
(
pos
);
pos
+=
2
;
break
;
default:
default:
/* That's why you must write status vars in growing order of code */
/* That's why you must write status vars in growing order of code */
DBUG_PRINT
(
"info"
,(
"Query_log_event has unknown status vars (first has\
DBUG_PRINT
(
"info"
,(
"Query_log_event has unknown status vars (first has\
...
@@ -1829,6 +1842,11 @@ void Query_log_event::print_query_header(IO_CACHE* file,
...
@@ -1829,6 +1842,11 @@ void Query_log_event::print_query_header(IO_CACHE* file,
memcpy
(
print_event_info
->
time_zone_str
,
time_zone_str
,
time_zone_len
+
1
);
memcpy
(
print_event_info
->
time_zone_str
,
time_zone_str
,
time_zone_len
+
1
);
}
}
}
}
if
(
lc_time_names_number
!=
print_event_info
->
lc_time_names_number
)
{
fprintf
(
file
,
"SET @@session.lc_time_names=%d;
\n
"
,
lc_time_names_number
);
print_event_info
->
lc_time_names_number
=
lc_time_names_number
;
}
}
}
...
@@ -1971,6 +1989,19 @@ int Query_log_event::exec_event(struct st_relay_log_info* rli,
...
@@ -1971,6 +1989,19 @@ int Query_log_event::exec_event(struct st_relay_log_info* rli,
goto
compare_errors
;
goto
compare_errors
;
}
}
}
}
if
(
lc_time_names_number
)
{
if
(
!
(
thd
->
variables
.
lc_time_names
=
my_locale_by_number
(
lc_time_names_number
)))
{
my_printf_error
(
ER_UNKNOWN_ERROR
,
"Unknown locale: '%d'"
,
MYF
(
0
),
lc_time_names_number
);
thd
->
variables
.
lc_time_names
=
&
my_locale_en_US
;
goto
compare_errors
;
}
}
else
thd
->
variables
.
lc_time_names
=
&
my_locale_en_US
;
/* Execute the query (note that we bypass dispatch_command()) */
/* Execute the query (note that we bypass dispatch_command()) */
mysql_parse
(
thd
,
thd
->
query
,
thd
->
query_length
);
mysql_parse
(
thd
,
thd
->
query
,
thd
->
query_length
);
...
...
sql/log_event.h
View file @
f29b2bea
...
@@ -271,6 +271,8 @@ struct sql_ex_info
...
@@ -271,6 +271,8 @@ struct sql_ex_info
*/
*/
#define Q_CATALOG_NZ_CODE 6
#define Q_CATALOG_NZ_CODE 6
#define Q_LC_TIME_NAMES_CODE 7
/* Intvar event post-header */
/* Intvar event post-header */
#define I_TYPE_OFFSET 0
#define I_TYPE_OFFSET 0
...
@@ -525,9 +527,11 @@ typedef struct st_print_event_info
...
@@ -525,9 +527,11 @@ typedef struct st_print_event_info
bool
charset_inited
;
bool
charset_inited
;
char
charset
[
6
];
// 3 variables, each of them storable in 2 bytes
char
charset
[
6
];
// 3 variables, each of them storable in 2 bytes
char
time_zone_str
[
MAX_TIME_ZONE_NAME_LENGTH
];
char
time_zone_str
[
MAX_TIME_ZONE_NAME_LENGTH
];
uint
lc_time_names_number
;
st_print_event_info
()
st_print_event_info
()
:
flags2_inited
(
0
),
sql_mode_inited
(
0
),
:
flags2_inited
(
0
),
sql_mode_inited
(
0
),
auto_increment_increment
(
1
),
auto_increment_offset
(
1
),
charset_inited
(
0
)
auto_increment_increment
(
1
),
auto_increment_offset
(
1
),
charset_inited
(
0
),
lc_time_names_number
(
0
)
{
{
/*
/*
Currently we only use static PRINT_EVENT_INFO objects, so zeroed at
Currently we only use static PRINT_EVENT_INFO objects, so zeroed at
...
@@ -829,6 +833,7 @@ public:
...
@@ -829,6 +833,7 @@ public:
char
charset
[
6
];
char
charset
[
6
];
uint
time_zone_len
;
/* 0 means uninited */
uint
time_zone_len
;
/* 0 means uninited */
const
char
*
time_zone_str
;
const
char
*
time_zone_str
;
uint
lc_time_names_number
;
/* 0 means en_US */
#ifndef MYSQL_CLIENT
#ifndef MYSQL_CLIENT
...
...
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