•Transactions are not supported. 

• FEDERATED  performs bulk-insert handling such that multiple rows are sent to the remote table in a batch, which improves performance. Also, if the remote table is transactional, it enables the remote storage engine to perform statement rollback properly should an error occur. This capability has the following limitations: 

•The size of the insert cannot exceed the maximum packet size between servers. If the insert exceeds this size, it is broken into multiple packets and the rollback problem can occur. 

•Bulk-insert handling does not occur for INSERT ... ON DUPLICATE KEY UPDATE . 

•There is no way for the FEDERATED  engine to know if the remote table has changed. The reason for this is that this table must work like a data file that would never be written to by anything other than the database system. The integrity of the data in the local table could be breached if there was any change to the remote database. 

•When using a CONNECTION  string, you cannot use an ’@’ character in the password. You can get round this limitation by using the CREATE SERVER  statement to create a server connection. 

•The insert_id  and timestamp  options are not propagated to the data provider. 

•Any DROP TABLE  statement issued against a FEDERATED  table drops only the local table, not the remote table. 

## 16.8.4 FEDERATED Storage Engine Resources 

•User-defined partitioning is not supported for FEDERATED  tables. 

The following additional resources are available for the FEDERATED  storage engine: 

•A forum dedicated to the FEDERATED  storage engine is available at https://forums.mysql.com/list.php? 105. 

## 16.9 The EXAMPLE Storage Engine 

The EXAMPLE  storage engine is a stub engine that does nothing. Its purpose is to serve as an example in the MySQL source code that illustrates how to begin writing new storage engines. As such, it is primarily of interest to developers. 

To enable the EXAMPLE  storage engine if you build MySQL from source, invoke CMake  with the - DWITH_EXAMPLE_STORAGE_ENGINE  option. 

To examine the source for the EXAMPLE  engine, look in the storage/example  directory of a MySQL source distribution. 

When you create an EXAMPLE  table, no files are created. No data can be stored into the table. Retrievals return an empty result. 

mysql> CREATE TABLE test (i INT) ENGINE = EXAMPLE; Query OK, 0 rows affected (0.78 sec) mysql> INSERT INTO test VALUES(1),(2),(3); ERROR 1031 (HY000): Table storage engine for ’test’ doesn’t » have this option mysql> SELECT * FROM test; Empty set (0.31 sec) 

