Bug #31671 Falcon engine does not support ROW or STATEMENT binlog_format

Submitted: 17 Oct 2007 17:44 Modified: 3 Dec 2007 14:22
Reporter: Giuseppe Maxia Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S1 (Critical)
Version:6.0.3 OS:Linux (ChangeSet@1.2630, 2007-10-10 07:46:05+02:00)
Assigned to: Kevin Lewis CPU Architecture:Any
Tags: binlog_format, falcon, replication, replication, row-based, statement-based

[17 Oct 2007 17:44] Giuseppe Maxia
Description:
Falcon engine does not support either ROW or STATEMENT based binlog format.

create table tmi (id int not null auto_increment primary key ) engine=myisam;
Query OK, 0 rows affected (0.01 sec)

create table tib (id int not null auto_increment primary key ) engine=innodb;
Query OK, 0 rows affected (0.01 sec)

create table tf (id int not null auto_increment primary key ) engine=falcon;
Query OK, 0 rows affected (0.01 sec)

set binlog_format=mixed;
Query OK, 0 rows affected (0.00 sec)

insert into tmi values ();
Query OK, 1 row affected (0.00 sec)

insert into tib values ();
Query OK, 1 row affected (0.00 sec)

insert into tf values ();
Query OK, 1 row affected (0.01 sec)

set binlog_format=row;
Query OK, 0 rows affected (0.00 sec)

insert into tmi values ();
Query OK, 1 row affected (0.00 sec)

insert into tib values ();
Query OK, 1 row affected (0.01 sec)

insert into tf values ();
ERROR 1597 (HY000): Binary logging not possible. Message: Row-based format required for this statement, but not allowed by this combination of engines

set binlog_format=statement;
Query OK, 0 rows affected (0.00 sec)

insert into tmi values ();
Query OK, 1 row affected (0.00 sec)

insert into tib values ();
Query OK, 1 row affected (0.01 sec)

insert into tf values ();
ERROR 1597 (HY000): Binary logging not possible. Message: Statement-based format required for this statement, but not allowed by this combination of engines

How to repeat:
# start a 6.0.3 server with binary log active

drop table if exists tmi,tib,tf;

create table tmi (id int not null auto_increment primary key ) engine=myisam;
create table tib (id int not null auto_increment primary key ) engine=innodb;
create table tf (id int not null auto_increment primary key ) engine=falcon;

set binlog_format=mixed;
insert into tmi values ();
insert into tib values ();
insert into tf values ();

set binlog_format=row;
insert into tmi values ();
insert into tib values ();
insert into tf values ();

set binlog_format=statement;
insert into tmi values ();
insert into tib values ();
insert into tf values ();

Suggested fix:
enable the RBR/SBR flag for Falcon
[18 Oct 2007 14:52] Kevin Lewis
Made the change suggested by Calvin to explicitly declare in StorageInterface::table_flags() that Falcon supports row based replication.
Pushed to mysql-6.0-falcon-team
[30 Nov 2007 17:33] Hakan Küçükyılmaz
Works now

[18:31] root@test>set binlog_format=row;
Query OK, 0 rows affected (0.00 sec)

[18:31] root@test>insert into tmi values ();
Query OK, 1 row affected (0.00 sec)

[18:31] root@test>insert into tib values ();
Query OK, 1 row affected (0.01 sec)

[18:31] root@test>insert into tf values ();
Query OK, 1 row affected (0.00 sec
[30 Nov 2007 20:42] Bugs System
Pushed into 6.0.4-alpha
[3 Dec 2007 14:22] MC Brown
A note has been added to the 6.0.4 changelog: 

Falcon tables would fail during replication if ROW-based replication was specified.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.