truncatetext.js Filter
The truncatetext filter truncates a MySQL BLOB field.
| Pre-configured filter name | truncatetext |
| JavaScript Filter File | tungsten-replicator/support/filters-javascript/truncatetext.js |
| Property prefix | replicator.filter.truncatetext |
| Stage compatibility | binlog-to-q, q-to-dbms |
tpm Option compatibility | svc-extractor-filters, svc-extractor-filters |
| Data compatibility | Row events |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
length | numeric | (none) | Maximum size of truncated field (bytes) |
The length is determined by the length parameter in the properties:
replicator.filter.truncatetext=com.continuent.tungsten.replicator.filter.JavaScriptFilter
replicator.filter.truncatetext.script=${replicator.home.dir}/samples/extensions/javascript/truncatetext.js
replicator.filter.truncatetext.length=4000
Statement-based events are ignored, but row-based events are processed for each volume value, checking the column type, isBlob() method
and then truncating the contents when they are identified as larger than the configured length. To confirm the type, it is compared against the Java
class com.continuent.tungsten.replicator.extractor.mysql.SerialBlob, the class for a serialized BLOB value. These need to be
processed differently as they are not exposed as a single variable.
if (value.getValue() instanceof com.continuent.tungsten.replicator.extractor.mysql.SerialBlob)
{
blob = value.getValue();
if (blob != null)
{
valueBytes = blob.getBytes(1, blob.length());
if (blob.length() > truncateTo)
{
blob.truncate(truncateTo);
}
}
}