# Implicit row\_format change (dynamic =\> compact) on 'alter table'

**URL:** <https://forums.percona.com/t/implicit-row-format-change-dynamic-compact-on-alter-table/4730>\
**Category:** Percona XtraDB Cluster 5.x\
**Created:** [February 18, 2016, 10:23am UTC](https://forums.percona.com/t/implicit-row-format-change-dynamic-compact-on-alter-table/4730 "2016-02-18T10:23:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![tholewebgods](https://avatars.discourse-cdn.com/v4/letter/t/71c47a/32.png) [@tholewebgods](https://forums.percona.com/u/tholewebgods)\
**Post date:** [February 18, 2016, 10:23am UTC](https://forums.percona.com/t/implicit-row-format-change-dynamic-compact-on-alter-table/4730/1 "2016-02-18T10:23:38Z")

</div>

Background: The tables were created on a system with this setup:

```auto
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |

```

All tables were created with the option “row\_format=DYNAMIC” which was neccessary for some bigger tables.

Then I’ve transfered the data using a SST to an XtraDB cluster with this config:

```auto
| innodb_file_format | Antelope |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |

```

Eventually I had to alter one table (change a column type) which caused MySQL to accidently change the “row\_format”:

```auto
+---------+------+--------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+--------------------------------------------------------------------+
| Warning | 1478 | InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. |
| Warning | 1478 | InnoDB: assuming ROW_FORMAT=COMPACT. |
+---------+------+--------------------------------------------------------------------+

```

For that table the change was not relevant (I think). But in the future I’d like to avoid implicit changes (an possible dataloss) on tables where “row\_format=DYNAMIC” is important.

Thus I’d like to change “innodb\_file\_format” to “Barracuda” on the target system.

- First I were astounded that MySQL changed the “row\_format” becuase “innodb\_file\_format\_max=Barracuda” probably means the server is capable managing tables of this type - why does MySQL change it?
- Is my assumption correct that MySQL won’t change the “row\_format” on the next “alter table” after changing to “Barracuda”?
- Is there any risk of data loss when setting “innodb\_file\_format\_max=Barracuda”?

The server is

```auto
Server version: 5.5.41-37.0-55-log Percona XtraDB Cluster (GPL), Release rel37.0, Revision 853, WSREP version 25.11, wsrep_25.11.r4027

```
