View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004354 | SymmetricDS | Bug | public | 2020-04-17 12:28 | 2020-05-26 16:37 |
Reporter | StrDevelopment | Assigned To | elong | ||
Priority | normal | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.11.0 | ||||
Target Version | 3.11.9 | Fixed in Version | 3.11.9 | ||
Summary | 0004354: MsSql - create trigger query fails when keys contain spaces | ||||
Description | We use Microsoft Dynamics Nav. Most of the NAV table and fieldnames contain spaces...... When the symmetric server starts/updates, triggers are (re)created. If the key(s) contain spaces the query will fail because double qoutes are missing in one line of the create trigger query. | ||||
Steps To Reproduce | Import DB.xml via Dbimport. Add to sym_channel, sym_trigger and sym_trigger_router. The logs will show it fails after a few seconds. if you run the trigger query manually with double quotes, it will work, untill you reboot or add another trigger. | ||||
Additional Information | Line 17 of create_trigger_query.sql is if (1=1 AND ( UPDATE(Vendor No_) OR UPDATE(Item No_) OR UPDATE(Variant Code) ) ) <----- Created on start and not working but it should be if (1=1 AND ( UPDATE("Vendor No_") OR UPDATE("Item No_") OR UPDATE("Variant Code") ) ) <----- Working | ||||
Tags | dialect: sql-server, trigger | ||||
|
DB.xml (4,269 bytes)
<database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="dbexport"> <table name="TABLENAME$Item Vendor"> <column name="timestamp" required="true" type="BINARY" size="8"> <platform-column name="mssql2008" type="timestamp"/> </column> <column name="Vendor No_" primaryKey="true" required="true" type="NVARCHAR" size="20"> <platform-column name="mssql2008" type="nvarchar" size="20"/> </column> <column name="Item No_" primaryKey="true" required="true" type="NVARCHAR" size="20"> <platform-column name="mssql2008" type="nvarchar" size="20"/> </column> <column name="Variant Code" primaryKey="true" required="true" type="NVARCHAR" size="10"> <platform-column name="mssql2008" type="nvarchar" size="10"/> </column> <column name="Lead Time Calculation" required="true" type="VARCHAR" size="32"> <platform-column name="mssql2008" type="varchar" size="32"/> </column> <column name="Vendor Item No_" required="true" type="NVARCHAR" size="20"> <platform-column name="mssql2008" type="nvarchar" size="20"/> </column> <column name="Inventory" required="true" type="DECIMAL" size="38,20"> <platform-column name="mssql2008" type="decimal" size="38" decimalDigits="20"/> </column> <column name="Previous Stock Quantity" required="true" type="DECIMAL" size="38,20"> <platform-column name="mssql2008" type="decimal" size="38" decimalDigits="20"/> </column> <column name="Last Modification Date" required="true" type="TIMESTAMP" size="23,3"> <platform-column name="mssql2008" type="datetime" size="23" decimalDigits="3"/> </column> <column name="Preferred supplier" required="true" type="TINYINT" size="3"> <platform-column name="mssql2008" type="tinyint" size="3"/> </column> <column name="PPD" required="true" type="DECIMAL" size="38,20"> <platform-column name="mssql2008" type="decimal" size="38" decimalDigits="20"/> </column> <column name="Previous PPD" required="true" type="DECIMAL" size="38,20"> <platform-column name="mssql2008" type="decimal" size="38" decimalDigits="20"/> </column> <column name="Producer" required="true" type="TINYINT" size="3"> <platform-column name="mssql2008" type="tinyint" size="3"/> </column> <column name="Status" required="true" type="INTEGER" size="10"> <platform-column name="mssql2008" type="int" size="10"/> </column> <unique name="$1"> <unique-column name="Item No_"/> <unique-column name="Variant Code"/> <unique-column name="Vendor No_"/> </unique> <unique name="$2"> <unique-column name="Vendor No_"/> <unique-column name="Vendor Item No_"/> <unique-column name="Item No_"/> <unique-column name="Variant Code"/> </unique> <unique name="$3"> <unique-column name="Inventory"/> <unique-column name="Vendor No_"/> <unique-column name="Item No_"/> <unique-column name="Variant Code"/> </unique> <unique name="$4"> <unique-column name="PPD"/> <unique-column name="Vendor No_"/> <unique-column name="Item No_"/> <unique-column name="Variant Code"/> </unique> </table> </database> |
|
After a little search, i maybe found the line which is causing our problem. https://github.com/JumpMind/symmetric-ds/blob/5a2342d8a2e39468acea5d367b696da8355c5468/symmetric-core/src/main/java/org/jumpmind/symmetric/db/AbstractTriggerTemplate.java#L1257 Hope this helps |
|
Thanks for reporting. This patch is working for us: http://www.jumpmind.com/downloads/symmetricds/patches/3.11/patch-0004354.jar |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-04-17 12:28 | StrDevelopment | New Issue | |
2020-04-17 12:28 | StrDevelopment | File Added: create_trigger_query.sql | |
2020-04-17 12:28 | StrDevelopment | File Added: DB.xml | |
2020-04-17 12:28 | StrDevelopment | File Added: trigger_fail.log | |
2020-04-17 12:28 | StrDevelopment | Tag Attached: trigger | |
2020-04-17 16:01 | StrDevelopment | Note Added: 0001701 | |
2020-04-23 18:56 | elong | Relationship added | related to 0003901 |
2020-04-23 18:56 | elong | Tag Attached: dialect: sql-server | |
2020-04-23 18:57 | elong | Assigned To | => elong |
2020-04-23 18:57 | elong | Status | new => assigned |
2020-04-23 18:57 | elong | Product Version | 3.11.7 => 3.11.0 |
2020-04-23 18:57 | elong | Target Version | => 3.11.9 |
2020-04-23 18:57 | elong | Description Updated | View Revisions |
2020-04-23 18:57 | elong | Steps to Reproduce Updated | View Revisions |
2020-04-23 18:57 | elong | Additional Information Updated | View Revisions |
2020-04-23 18:59 | elong | Note Added: 0001709 | |
2020-04-23 19:00 | admin | Changeset attached | => SymmetricDS 3.11 7db65c57 |
2020-04-23 19:00 | elong | Status | assigned => resolved |
2020-04-23 19:00 | elong | Resolution | open => fixed |
2020-04-23 19:00 | elong | Fixed in Version | => 3.11.9 |
2020-05-26 16:37 | elong | Status | resolved => closed |