The EnumToString filter translates
    ENUM datatypes within MySQL tables
    into their string equivalent within the THL.
  
| Pre-configured filter name | enumtostring | ||
| Classname | com.continuent.tungsten.replicator.filter.EnumToStringFilter | ||
| Property prefix | replicator.filter.enumtostring | ||
| Stage compatibility | binlog-to-q | ||
| tpm Option compatibility | --repl-svc-extractor-filters | ||
| Data compatibility | Row events | ||
| Metadata Updated | Yes; tungsten_filter_enumtostring=true | ||
| Parameters | |||
| Parameter | Type | Default | Description | 
| user | string | ${replicator.global.extract.db.user} | The username for the connection to the database for looking up column definitions | 
| password | string | ${replicator.global.extract.db.password} | The password for the connection to the database for looking up column definitions | 
| url | string | jdbc:mysql:thin://${replicator.global.extract.db.host}:
            » ${replicator.global.extract.db.port}/${replicator.schema}?createDB=true | JDBC URL of the database connection to use for looking up column definitions | 
| reconnectTimeout | integer | 3600 | Timeout for refreshing connection to database | 
    The EnumToString filter should be used with
    heterogeneous replication to ensure that the data is represented as the
    string value, not the internal numerical representation.
  
    In the THL output below, the table has a
    ENUM column,
    country:
  
mysql> describe salesadv;
+----------+--------------------------------------+------+-----+---------+----------------+
| Field    | Type                                 | Null | Key | Default | Extra          |
+----------+--------------------------------------+------+-----+---------+----------------+
| id       | int(11)                              | NO   | PRI | NULL    | auto_increment |
| country  | enum('US','UK','France','Australia') | YES  |     | NULL    |                |
| city     | int(11)                              | YES  |     | NULL    |                |
| salesman | set('Alan','Zachary')                | YES  |     | NULL    |                |
| value    | decimal(10,2)                        | YES  |     | NULL    |                |
+----------+--------------------------------------+------+-----+---------+----------------+When extracted in the THL, the representation uses the internal value (for example, 1 for the first enumerated value). This can be seen in the THL output below.
SEQ# = 138 / FRAG# = 0 (last frag) - TIME = 2013-08-01 19:09:35.0 - EPOCH# = 122 - EVENTID = mysql-bin.000012:0000000000021434;0 - SOURCEID = host31 - METADATA = [mysql_server_id=1;dbms_type=mysql;service=alpha;shard=test] - TYPE = com.continuent.tungsten.replicator.event.ReplDBMSEvent - OPTIONS = [foreign_key_checks = 1, unique_checks = 1] - SQL(0) = - ACTION = INSERT - SCHEMA = test - TABLE = salesadv - ROW# = 0 - COL(1: id) = 2 - COL(2: country) = 1 - COL(3: city) = 8374 - COL(4: salesman) = 1 - COL(5: value) = 35000.00
    For the country column, the
    corresponding value in the THL is 1.
    With the EnumToString filter enabled, the value is
    expanded to the corresponding string value:
  
SEQ# = 121 / FRAG# = 0 (last frag) - TIME = 2013-08-01 19:05:14.0 - EPOCH# = 102 - EVENTID = mysql-bin.000012:0000000000018866;0 - SOURCEID = host31 - METADATA = [mysql_server_id=1;dbms_type=mysql;service=alpha;shard=test] - TYPE = com.continuent.tungsten.replicator.event.ReplDBMSEvent - OPTIONS = [foreign_key_checks = 1, unique_checks = 1] - SQL(0) = - ACTION = INSERT - SCHEMA = test - TABLE = salesadv - ROW# = 0 - COL(1: id) = 1 - COL(2: country) = US - COL(3: city) = 8374 - COL(4: salesman) = Alan - COL(5: value) = 35000.00
The information is critical when applying the data to a dataserver that is not aware of the table definition when replicating to non-MySQL target.
The examples here also show the Section 11.3.38, “SetToString Filter” and Section 11.3.5, “ColumnName Filter” filters.