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
37ca9982
Commit
37ca9982
authored
Jun 26, 2007
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge maint1.mysql.com:/data/localhome/tsmith/bk/50
into maint1.mysql.com:/data/localhome/tsmith/bk/maint/50
parents
30f5af6f
a66c8c67
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
280 additions
and
19 deletions
+280
-19
CMakeLists.txt
CMakeLists.txt
+1
-1
include/my_global.h
include/my_global.h
+6
-1
mysql-test/r/binlog.result
mysql-test/r/binlog.result
+119
-3
mysql-test/t/binlog.test
mysql-test/t/binlog.test
+91
-2
sql/log.cc
sql/log.cc
+59
-4
win/create_manifest.js
win/create_manifest.js
+3
-7
win/mysql_manifest.cmake
win/mysql_manifest.cmake
+1
-1
No files found.
CMakeLists.txt
View file @
37ca9982
...
...
@@ -161,7 +161,7 @@ IF(EMBED_MANIFESTS)
ENDIF
(
NOT tmp_manifest
)
# Set the processor architecture.
IF
(
CMAKE_GENERATOR MATCHES
"Visual Studio 8 2005 Win64"
)
SET
(
PROCESSOR_ARCH
"
X
64"
)
SET
(
PROCESSOR_ARCH
"
amd
64"
)
ELSE
(
CMAKE_GENERATOR MATCHES
"Visual Studio 8 2005 Win64"
)
SET
(
PROCESSOR_ARCH
"X86"
)
ENDIF
(
CMAKE_GENERATOR MATCHES
"Visual Studio 8 2005 Win64"
)
...
...
include/my_global.h
View file @
37ca9982
...
...
@@ -895,7 +895,12 @@ typedef unsigned long uint32; /* Short for unsigned integer >= 32 bits */
typedef
unsigned
long
ulong
;
/* Short for unsigned long */
#endif
#ifndef longlong_defined
#if defined(HAVE_LONG_LONG) && SIZEOF_LONG != 8
/*
Using [unsigned] long long is preferable as [u]longlong because we use
[unsigned] long long unconditionally in many places,
for example in constants with [U]LL suffix.
*/
#if defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == 8
typedef
unsigned
long
long
int
ulonglong
;
/* ulong or unsigned long long */
typedef
long
long
int
longlong
;
#else
...
...
mysql-test/r/binlog.result
View file @
37ca9982
drop table if exists t1, t2;
reset master;
create table t1 (a int) engine=
b
db;
create table t1 (a int) engine=
inno
db;
create table t2 (a int) engine=innodb;
begin;
insert t1 values (5);
...
...
@@ -10,11 +10,11 @@ insert t2 values (5);
commit;
show binlog events from 98;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=
b
db
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=
inno
db
master-bin.000001 # Query 1 # use `test`; create table t2 (a int) engine=innodb
master-bin.000001 # Query 1 # use `test`; BEGIN
master-bin.000001 # Query 1 # use `test`; insert t1 values (5)
master-bin.000001 #
Query 1 # use `test`; COMMIT
master-bin.000001 #
Xid 1 # COMMIT /* XID */
master-bin.000001 # Query 1 # use `test`; BEGIN
master-bin.000001 # Query 1 # use `test`; insert t2 values (5)
master-bin.000001 # Xid 1 # COMMIT /* XID */
...
...
@@ -133,3 +133,119 @@ master-bin.000001 # Rotate 1 # master-bin.000002;pos=4
show binlog events in 'master-bin.000002' from 98;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000002 # Query 1 # use `test`; drop table t1
set @ac = @@autocommit;
set autocommit= 0;
reset master;
create table t1(n int) engine=innodb;
begin;
insert into t1 values (1);
insert into t1 values (2);
insert into t1 values (3);
commit;
drop table t1;
show binlog events from 0;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 4 Format_desc 1 98 Server version, Binlog ver: 4
master-bin.000001 98 Query 1 197 use `test`; create table t1(n int) engine=innodb
master-bin.000001 197 Query 1 265 use `test`; BEGIN
master-bin.000001 265 Query 1 353 use `test`; insert into t1 values (1)
master-bin.000001 353 Query 1 441 use `test`; insert into t1 values (2)
master-bin.000001 441 Query 1 529 use `test`; insert into t1 values (3)
master-bin.000001 529 Xid 1 556 COMMIT /* XID */
master-bin.000001 556 Query 1 632 use `test`; drop table t1
set autocommit= 1;
reset master;
create table t1(n int) engine=innodb;
insert into t1 values (1);
insert into t1 values (2);
insert into t1 values (3);
commit;
drop table t1;
show binlog events from 0;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 4 Format_desc 1 98 Server version, Binlog ver: 4
master-bin.000001 98 Query 1 197 use `test`; create table t1(n int) engine=innodb
master-bin.000001 197 Query 1 285 use `test`; insert into t1 values (1)
master-bin.000001 285 Xid 1 312 COMMIT /* XID */
master-bin.000001 312 Query 1 400 use `test`; insert into t1 values (2)
master-bin.000001 400 Xid 1 427 COMMIT /* XID */
master-bin.000001 427 Query 1 515 use `test`; insert into t1 values (3)
master-bin.000001 515 Xid 1 542 COMMIT /* XID */
master-bin.000001 542 Query 1 618 use `test`; drop table t1
reset master;
create table t1(n int) engine=myisam;
begin;
insert into t1 values (4);
insert into t1 values (5);
insert into t1 values (6);
commit;
drop table t1;
show binlog events from 0;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 4 Format_desc 1 98 Server version, Binlog ver: 4
master-bin.000001 98 Query 1 197 use `test`; create table t1(n int) engine=myisam
master-bin.000001 197 Query 1 285 use `test`; insert into t1 values (4)
master-bin.000001 285 Query 1 373 use `test`; insert into t1 values (5)
master-bin.000001 373 Query 1 461 use `test`; insert into t1 values (6)
master-bin.000001 461 Query 1 537 use `test`; drop table t1
set autocommit= 1;
reset master;
create table t1(n int) engine=innodb;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 197
insert into t1 values (1);
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 312
insert into t1 values (2);
insert into t1 values (3);
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 542
commit;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 542
drop table t1;
show binlog events from 0;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 4 Format_desc 1 98 Server version, Binlog ver: 4
master-bin.000001 98 Query 1 197 use `test`; create table t1(n int) engine=innodb
master-bin.000001 197 Query 1 285 use `test`; insert into t1 values (1)
master-bin.000001 285 Xid 1 312 COMMIT /* XID */
master-bin.000001 312 Query 1 400 use `test`; insert into t1 values (2)
master-bin.000001 400 Xid 1 427 COMMIT /* XID */
master-bin.000001 427 Query 1 515 use `test`; insert into t1 values (3)
master-bin.000001 515 Xid 1 542 COMMIT /* XID */
master-bin.000001 542 Query 1 618 use `test`; drop table t1
set autocommit= 0;
reset master;
create table t1(n int) engine=myisam;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 197
insert into t1 values (4);
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 285
insert into t1 values (5);
insert into t1 values (6);
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 461
commit;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 461
drop table t1;
show binlog events from 0;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 4 Format_desc 1 98 Server version, Binlog ver: 4
master-bin.000001 98 Query 1 197 use `test`; create table t1(n int) engine=myisam
master-bin.000001 197 Query 1 285 use `test`; insert into t1 values (4)
master-bin.000001 285 Query 1 373 use `test`; insert into t1 values (5)
master-bin.000001 373 Query 1 461 use `test`; insert into t1 values (6)
master-bin.000001 461 Query 1 537 use `test`; drop table t1
set session autocommit = @ac;
End of 5.0 tests
mysql-test/t/binlog.test
View file @
37ca9982
...
...
@@ -3,7 +3,6 @@
#
--
source
include
/
have_log_bin
.
inc
--
source
include
/
not_embedded
.
inc
--
source
include
/
have_bdb
.
inc
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_log_bin
.
inc
...
...
@@ -12,7 +11,7 @@ drop table if exists t1, t2;
--
enable_warnings
reset
master
;
create
table
t1
(
a
int
)
engine
=
b
db
;
create
table
t1
(
a
int
)
engine
=
inno
db
;
create
table
t2
(
a
int
)
engine
=
innodb
;
begin
;
insert
t1
values
(
5
);
...
...
@@ -49,3 +48,93 @@ show binlog events in 'master-bin.000001' from 98;
--
replace_column
2
# 5 #
show
binlog
events
in
'master-bin.000002'
from
98
;
#
# Bug#22540 - Incorrect value in column End_log_pos of
# SHOW BINLOG EVENTS using InnoDB
#
# the following tests will show that certain queries now return
# absolute offsets (from binlog start, rather than relative to
# the beginning of the current transaction). under what
# conditions it should be allowed / is sensible to put the
# slider into the middle of a transaction is not our concern
# here; we just guarantee that if and when it's done, the
# user has valid offsets to use. if the setter function still
# wants to throw a "positioning into middle of transaction"
# warning, that's its prerogative and handled elsewhere.
set
@
ac
=
@@
autocommit
;
# first show this to work for SHOW BINLOG EVENTS
set
autocommit
=
0
;
reset
master
;
create
table
t1
(
n
int
)
engine
=
innodb
;
begin
;
insert
into
t1
values
(
1
);
insert
into
t1
values
(
2
);
insert
into
t1
values
(
3
);
commit
;
drop
table
t1
;
--
replace_regex
/
\
/
\
*
xid
=.*
\
*
\
//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
show
binlog
events
from
0
;
set
autocommit
=
1
;
reset
master
;
create
table
t1
(
n
int
)
engine
=
innodb
;
insert
into
t1
values
(
1
);
insert
into
t1
values
(
2
);
insert
into
t1
values
(
3
);
commit
;
drop
table
t1
;
--
replace_regex
/
\
/
\
*
xid
=.*
\
*
\
//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
show
binlog
events
from
0
;
reset
master
;
create
table
t1
(
n
int
)
engine
=
myisam
;
begin
;
insert
into
t1
values
(
4
);
insert
into
t1
values
(
5
);
insert
into
t1
values
(
6
);
commit
;
drop
table
t1
;
--
replace_regex
/
\
/
\
*
xid
=.*
\
*
\
//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
show
binlog
events
from
0
;
# now show this also works for SHOW MASTER STATUS
# as this is what "mysqldump --master-data=1" uses.
set
autocommit
=
1
;
reset
master
;
create
table
t1
(
n
int
)
engine
=
innodb
;
show
master
status
;
insert
into
t1
values
(
1
);
show
master
status
;
insert
into
t1
values
(
2
);
insert
into
t1
values
(
3
);
show
master
status
;
commit
;
show
master
status
;
drop
table
t1
;
--
replace_regex
/
\
/
\
*
xid
=.*
\
*
\
//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
show
binlog
events
from
0
;
set
autocommit
=
0
;
reset
master
;
create
table
t1
(
n
int
)
engine
=
myisam
;
show
master
status
;
insert
into
t1
values
(
4
);
show
master
status
;
insert
into
t1
values
(
5
);
insert
into
t1
values
(
6
);
show
master
status
;
commit
;
show
master
status
;
drop
table
t1
;
--
replace_regex
/
\
/
\
*
xid
=.*
\
*
\
//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
show
binlog
events
from
0
;
set
session
autocommit
=
@
ac
;
--
echo
End
of
5.0
tests
sql/log.cc
View file @
37ca9982
...
...
@@ -134,7 +134,7 @@ static int binlog_commit(THD *thd, bool all)
// we're here because trans_log was flushed in MYSQL_LOG::log_xid()
DBUG_RETURN
(
0
);
}
if
(
all
)
if
(
all
)
{
Query_log_event
qev
(
thd
,
STRING_WITH_LEN
(
"COMMIT"
),
TRUE
,
FALSE
);
qev
.
error_code
=
0
;
// see comment in MYSQL_LOG::write(THD, IO_CACHE)
...
...
@@ -1835,7 +1835,9 @@ bool MYSQL_LOG::write(THD *thd, IO_CACHE *cache, Log_event *commit_event)
if
(
likely
(
is_open
()))
// Should always be true
{
uint
length
;
uint
length
,
group
,
carry
,
hdr_offs
;
long
val
;
byte
header
[
LOG_EVENT_HEADER_LEN
];
/*
Log "BEGIN" at the beginning of the transaction.
...
...
@@ -1867,13 +1869,66 @@ bool MYSQL_LOG::write(THD *thd, IO_CACHE *cache, Log_event *commit_event)
/* Read from the file used to cache the queries .*/
if
(
reinit_io_cache
(
cache
,
READ_CACHE
,
0
,
0
,
0
))
goto
err
;
length
=
my_b_bytes_in_cache
(
cache
);
length
=
my_b_bytes_in_cache
(
cache
);
DBUG_EXECUTE_IF
(
"half_binlogged_transaction"
,
length
-=
100
;);
group
=
my_b_tell
(
&
log_file
);
hdr_offs
=
carry
=
0
;
do
{
if
(
likely
(
carry
>
0
))
{
DBUG_ASSERT
(
carry
<
LOG_EVENT_HEADER_LEN
);
memcpy
(
&
header
[
carry
],
(
char
*
)
cache
->
read_pos
,
LOG_EVENT_HEADER_LEN
-
carry
);
val
=
uint4korr
(
&
header
[
LOG_POS_OFFSET
])
+
group
;
int4store
(
&
header
[
LOG_POS_OFFSET
],
val
);
if
(
my_b_write
(
&
log_file
,
header
,
carry
))
goto
err
;
memcpy
((
char
*
)
cache
->
read_pos
,
&
header
[
carry
],
LOG_EVENT_HEADER_LEN
-
carry
);
hdr_offs
=
LOG_EVENT_HEADER_LEN
-
carry
+
uint4korr
(
&
header
[
EVENT_LEN_OFFSET
]);
carry
=
0
;
}
if
(
likely
(
length
>
0
))
{
do
{
DBUG_ASSERT
((
hdr_offs
+
max
(
EVENT_LEN_OFFSET
,
LOG_POS_OFFSET
)
+
4
)
<=
length
);
val
=
uint4korr
((
char
*
)
cache
->
read_pos
+
hdr_offs
+
LOG_POS_OFFSET
)
+
group
;
int4store
((
char
*
)
cache
->
read_pos
+
hdr_offs
+
LOG_POS_OFFSET
,
val
);
hdr_offs
+=
uint4korr
((
char
*
)
cache
->
read_pos
+
hdr_offs
+
EVENT_LEN_OFFSET
);
/* header beyond current read-buffer? */
if
(
hdr_offs
>=
length
)
{
hdr_offs
-=
length
;
break
;
}
/* split header? */
if
(
hdr_offs
+
LOG_EVENT_HEADER_LEN
>
length
)
{
carry
=
length
-
hdr_offs
;
memcpy
(
header
,
(
char
*
)
cache
->
read_pos
+
hdr_offs
,
carry
);
length
-=
carry
;
}
}
while
(
hdr_offs
<
length
);
}
/* Write data to the binary log file */
if
(
my_b_write
(
&
log_file
,
cache
->
read_pos
,
length
))
goto
err
;
goto
err
;
cache
->
read_pos
=
cache
->
read_end
;
// Mark buffer used up
DBUG_EXECUTE_IF
(
"half_binlogged_transaction"
,
goto
DBUG_skip_commit
;);
}
while
((
length
=
my_b_fill
(
cache
)));
...
...
win/create_manifest.js
View file @
37ca9982
/*
manifest.js - Writes a custom XML manifest for each executable/library
6
command line options must be supplied:
5
command line options must be supplied:
name - Name of the executable/library into which the mainfest will be
embedded.
version - Version of the executable
arch - Architecture intended.
type - Application type.
exe_level - Application execution level.
[asInvoker|highestAvailable|requireAdministrator]
outfile - Final destination where mainfest will be written.
...
...
@@ -37,9 +36,6 @@ try
case
"
arch
"
:
var
app_arch
=
parts
[
1
];
break
;
case
"
type
"
:
var
app_type
=
parts
[
1
];
break
;
case
"
exe_level
"
:
var
app_exe_level
=
parts
[
1
];
break
;
...
...
@@ -50,7 +46,7 @@ try
WScript
.
echo
(
"
Invalid argument supplied.
"
);
}
}
if
(
i
!=
6
)
if
(
i
!=
5
)
throw
new
Error
(
1
,
"
Incorrect number of arguments.
"
);
var
manifest_xml
=
"
<?xml version=
\
'1.0
\
' encoding=
\
'UTF-8
\
' standalone=
\
'yes
\
'?>
\r\n
"
;
...
...
@@ -61,7 +57,7 @@ try
manifest_xml
+=
"
version=
\
'
"
+
app_version
+
"
\
'
"
;
manifest_xml
+=
"
processorArchitecture=
\
'
"
+
app_arch
+
"
\
'
"
;
// TOADD - Add publicKeyToken attribute once we have Authenticode key.
manifest_xml
+=
"
type=
\
'
"
+
app_type
+
"
\
' />
\r\n
"
;
manifest_xml
+=
"
type=
\
'
win32
\
' />
\r\n
"
;
// Identify the application security requirements.
manifest_xml
+=
"
\t
<trustInfo xmlns=
\
'urn:schemas-microsoft-com:asm.v2
\
'>
\r\n
"
;
manifest_xml
+=
"
\t\t
<security>
\r\n\t\t\t
<requestedPrivileges>
\r\n\t\t\t\t
"
;
...
...
win/mysql_manifest.cmake
View file @
37ca9982
...
...
@@ -9,7 +9,7 @@ MACRO(MYSQL_EMBED_MANIFEST _target_name _required_privs)
TARGET
${
_target_name
}
PRE_LINK
COMMAND cscript.exe
ARGS
"
${
PROJECT_SOURCE_DIR
}
/win/create_manifest.js"
name=$
(
ProjectName
)
version=
${
VERSION
}
arch=
${
PROCESSOR_ARCH
}
type=$
(
PlatformName
)
exe_level=
${
_required_privs
}
outfile=$
(
IntDir
)
\\$
(
TargetFileName
)
.intermediate.manifest
ARGS
"
${
PROJECT_SOURCE_DIR
}
/win/create_manifest.js"
name=$
(
ProjectName
)
version=
${
VERSION
}
arch=
${
PROCESSOR_ARCH
}
exe_level=
${
_required_privs
}
outfile=$
(
IntDir
)
\\$
(
TargetFileName
)
.intermediate.manifest
COMMENT
"Generates the contents of the manifest contents."
)
ADD_CUSTOM_COMMAND
(
TARGET
${
_target_name
}
...
...
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