View Issue Details

IDProjectCategoryView StatusLast Update
0002935SymmetricDSBugpublic2019-04-24 14:20
Reportersmotycka Assigned To 
Priorityhigh 
Status newResolutionopen 
Product Version3.8.8 
Summary0002935: Error with GEOMETRY data type
DescriptionI try to replicate MSSQL tables with geometry data type to {MySQL,PostgreSQL}.

It ends with following error:

2016-12-07 15:44:56,459 INFO [corp-000] [MsSqlSymmetricDialect] [corp-000-sync-triggers-3] Failed to create trigger: create trigger SYM_ON_U_FOR_G_CCRNCRCRD_NXCT_CRP ...
....
2016-12-07 15:30:07,459 ERROR [corp-000] [TriggerRouterService] [corp-000-sync-triggers-3] Failed to create triggers for * StackTraceKey.init [SqlException:2558623764]
org.jumpmind.db.sql.SqlException: Invalid operator for data type. Operator equals equal to, type equals geometry.
Additional Informationoutput from log:

2016-12-07 15:44:56,459 INFO [corp-000] [MsSqlSymmetricDialect] [corp-000-sync-triggers-3] Failed to create trigger: create trigger SYM_ON_I_FOR_G_CCRNCRCRD_NXCT_CRP on "SM_testovacia"."dbo"."ig_occurencerecord_inexact" with execute as caller after insert as                                                                                                
   begin                                                                                                                                                                  
     declare @NCT int 
     set @NCT = @@OPTIONS & 512 
     set nocount on                                                                                                                                                       
     declare @TransactionId varchar(1000)                                                                                                                                 
     if (@@TRANCOUNT > 0) begin                                                                                                                                           
       select @TransactionId = convert(VARCHAR(1000),transaction_id) from sys.dm_exec_requests where session_id=@@SPID and open_transaction_count > 0                     
     end                                                                                                                                                                  
      
     if ("SM_testovacia".dbo.sym_triggers_disabled() = 0) begin                                                                                                                           
         insert into  "SM_testovacia"."dbo".sym_data 
            (table_name, event_type, trigger_hist_id, row_data, channel_id, transaction_id, source_node_id, external_data, create_time) 
          select 'ig_occurencerecord_inexact','I', 36, 
          case when inserted."SHAPE" is null then '' else '"' + replace(replace(convert(varchar(max),inserted."SHAPE".STAsText()) ,'\','\\'),'"','\"') + '"' end+','+
          case when orig."wkb" is null then '' else '"' + replace(replace("SM_testovacia".dbo.sym_base64_encode(CONVERT(VARBINARY(max), orig."wkb")),'\','\\'),'"','\"') + '"' end, 
                  'oe_transaction', @TransactionId,  "SM_testovacia".dbo.sym_node_disabled(), null, current_timestamp 
                                                                                                                                             
          from inserted inner join "SM_testovacia"."dbo"."ig_occurencerecord_inexact" orig on orig."SHAPE"=inserted."SHAPE" 
                                                                                                                                            
          where 1=1               
     end                                                                                                                                                                  
                                                                                                                                                  
     if (@NCT = 0) set nocount off                                                                                                                                        
   end                                                                                                                                                                    
---- go
2016-12-07 15:44:56,460 INFO [corp-000] [TriggerRouterService] [corp-000-sync-triggers-3] Cleaning up trigger hist row of 36 after failing to create the associated trigger
2016-12-07 15:44:56,462 ERROR [corp-000] [TriggerRouterService] [corp-000-sync-triggers-3] Failed to create triggers for * StackTraceKey.init [SqlException:2113078468]
org.jumpmind.db.sql.SqlException: Invalid operator for data type. Operator equals equal to, type equals geometry.
    at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:303)
    at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:294)
    at org.jumpmind.db.sql.JdbcSqlTransaction.executeCallback(JdbcSqlTransaction.java:391)
    at org.jumpmind.db.sql.JdbcSqlTransaction.execute(JdbcSqlTransaction.java:282)
    at org.jumpmind.symmetric.db.AbstractSymmetricDialect.createTrigger(AbstractSymmetricDialect.java:352)
    at org.jumpmind.symmetric.service.impl.TriggerRouterService.rebuildTriggerIfNecessary(TriggerRouterService.java:1775)
    at org.jumpmind.symmetric.service.impl.TriggerRouterService.updateOrCreateDatabaseTriggers(TriggerRouterService.java:1647)
    at org.jumpmind.symmetric.service.impl.TriggerRouterService.updateOrCreateDatabaseTrigger(TriggerRouterService.java:1529)
    at org.jumpmind.symmetric.service.impl.TriggerRouterService$2.run(TriggerRouterService.java:1515)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Invalid operator for data type. Operator equals equal to, type equals geometry.
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372)
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2894)
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2334)
    at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:643)
    at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:614)
    at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:573)
    at net.sourceforge.jtds.jdbc.JtdsStatement.executeImpl(JtdsStatement.java:810)
    at net.sourceforge.jtds.jdbc.JtdsStatement.execute(JtdsStatement.java:1290)
    at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
    at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
    at org.jumpmind.db.sql.JdbcSqlTransaction$3.execute(JdbcSqlTransaction.java:289)
    at org.jumpmind.db.sql.JdbcSqlTransaction$3.execute(JdbcSqlTransaction.java:282)
    at org.jumpmind.db.sql.JdbcSqlTransaction.executeCallback(JdbcSqlTransaction.java:389)
    ... 11 more
2016-12-07 15:44:56,481 INFO [corp-000] [TriggerRouterService] [symmetric-engine-startup-0] Done synchronizing triggers
Tagsdialect: sql-server, trigger

Activities

elong

2016-12-07 16:48

developer   ~0000926

It might help to set sym_trigger.use_stream_lobs=1. But the bigger problem will probably be that you are missing a primary key on the table.

Issue History

Date Modified Username Field Change
2016-12-07 15:01 smotycka New Issue
2016-12-07 16:48 elong Note Added: 0000926
2019-04-24 14:20 elong Tag Attached: trigger
2019-04-24 14:20 elong Tag Attached: dialect: sql-server