View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004364 | SymmetricDS | Bug | public | 2020-04-24 08:14 | 2022-08-11 18:45 |
Reporter | johnmaccain | Assigned To | elong | ||
Priority | high | ||||
Status | closed | Resolution | no change required | ||
Product Version | 3.11.7 | ||||
Summary | 0004364: Comma in table name | ||||
Description | When creating a trigger on a table containing a comma (for instance "Test,Table") the MsSqlDdlReader is trying to add a trigger on ALL tables of the database. Soluce to create the trigger: Escape the comma by inserting a second comma -> Test,,Table This solution works to add the trigger, but then it fails after : 2020-04-24 09:49:49,507 ERROR [node-nav] [AcknowledgeService] [qtp124058278-14] The outgoing batch 010-920 failed: Could not find the target table 'dbo.Table,Test' Remark: "dbo.Table,Test" is the source table use_source_catalog_schema is enabled in the router, but if I specify the target_schema_name and target_table_name in router (real target schema and table) it works for the routing. Then, the issue (my main issue) is with the table_transform. They are not applied (EXTRACT or LOAD), with or without the comma escaping in table name. Thanks for your help ! | ||||
Steps To Reproduce | Source: SQL Server with a table name: Test,Table Target: PostgreSQL with a table name: TestTablePosgres Trigger: source_schema_name: dbo source_table_name: Table,,Test Router: target_schema_name: public target_table_name: TableTestPos Transform Table: source_schema_name: dbo source_table_name: Table,,Test (or Table,Test) target_schema_name: public target_table_name: TableTestPos | ||||
Additional Information | All other tables and parameters are well configured (transform column, trigger router, channel,...) | ||||
Tags | routing, transformation, trigger | ||||
|
The sym_trigger.source_table_name field supports multiple tables separated by commas, while sym_transform_table.source_table_name allows only one table. Since commas have special meaning to sym_trigger.source_table_name, you put two commas in a row to get one comma into a table name. Commas are used as they are in sym_transform_table.source_table_name, so only use one comma there. sym_trigger.source_table_name = Test,,Table sym_transform_table.source_table_name = Test,Table You need two commas in sym_trigger.source_table_name because it allows listing of multiple tables separated by commas. You only need one comma in sym_transform_table.source_table_name because that field doesn't allow multiple tables. Test,,Table in the sym_trigger |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-04-24 08:14 | johnmaccain | New Issue | |
2020-04-24 08:14 | johnmaccain | Tag Attached: routing | |
2020-04-24 08:14 | johnmaccain | Tag Attached: transformation | |
2020-04-24 08:14 | johnmaccain | Tag Attached: trigger | |
2022-08-11 18:45 | elong | Note Added: 0002159 | |
2022-08-11 18:45 | elong | Assigned To | => elong |
2022-08-11 18:45 | elong | Status | new => closed |
2022-08-11 18:45 | elong | Resolution | open => no change required |