The foreignkeychecks
filter switches
off foreign key checks for statements using the following statements:
CREATE TABLE
DROP TABLE
ALTER TABLE
RENAME TABLE
Pre-configured filter name |
foreignkeychecks
| ||
JavaScript Filter File |
tungsten-replicator/support/filters-javascript/foreignkeychecks.js
| ||
Property prefix |
replicator.filter.foreignkeychecks
| ||
Stage compatibility |
binlog-to-q ,
q-to-dbms
| ||
tpm Option compatibility |
--svc-extractor-filters ,
--svc-applier-filters
| ||
Data compatibility | Any event | ||
Parameters | |||
Parameter | Type | Default | Description |
The process checks the statement data and parses the content of the SQL statement by first trimming any extraneous space, and then converting the statement to upper case:
upCaseQuery = d.getQuery().trim().toUpperCase();
Then comparing the string for the corresponding statement types:
if(upCaseQuery.startsWith("CREATE TABLE") ||
upCaseQuery.startsWith("DROP TABLE") ||
upCaseQuery.startsWith("ALTER TABLE") ||
upCaseQuery.startsWith("RENAME TABLE")
)
{
If they match, a new statement is inserted into the event that disables foreign key checks:
query = "SET foreign_key_checks=0";
newStatement = new com.continuent.tungsten.replicator.dbms.StatementData(
d.getDefaultSchema(),
null,
query
);
data.add(0, newStatement);
i++;
The use of 0
in the
add()
method inserts the new statement before the
others within the current event.