View Issue Details

IDProjectCategoryView StatusLast Update
0005068SymmetricDSBugpublic2021-08-10 17:00
Reporterelong Assigned Toelong  
Prioritynormal 
Status resolvedResolutionfixed 
Product Version3.12.11 
Target Version3.12.12Fixed in Version3.12.12 
Summary0005068: Postgres operator doesn't exist when using domain user defined type
DescriptionOn Postgres, when table has a user defined type, and a conflict with the primary key occurs, there is an error about operator doesn't exist. It queries by the primary key and does not specify the java.sql.Type to bind, but it is sending a java.lang.String for an integer field.

2021-08-04 18:30:37,561 ERROR [client-332] [ManageIncomingBatchListener] [client-332-dataloader-3] Failed to load batch server-11807 StackTraceKey.init [SqlException:361146536] org.jumpmind.db.sql.SqlException: ERREUR: l'opérateur n'existe pas : t_id = character varying
  Indice : Aucun opérateur ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
  Position : 80
    at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:313)
    at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:302)
    at org.jumpmind.db.sql.JdbcSqlTransaction.executeCallback(JdbcSqlTransaction.java:398)
    at org.jumpmind.db.sql.JdbcSqlTransaction.queryForObject(JdbcSqlTransaction.java:217)
    at org.jumpmind.db.sql.JdbcSqlTransaction.queryForInt(JdbcSqlTransaction.java:201)
    at org.jumpmind.symmetric.io.data.writer.DefaultDatabaseWriterConflictResolver$4.execute(DefaultDatabaseWriterConflictResolver.java:622)
    at org.jumpmind.symmetric.io.data.writer.DefaultDatabaseWriterConflictResolver$4.execute(DefaultDatabaseWriterConflictResolver.java:620)
    at org.jumpmind.symmetric.io.data.writer.DefaultDatabaseWriterConflictResolver.doInTransaction(DefaultDatabaseWriterConflictResolver.java:644)
    at org.jumpmind.symmetric.io.data.writer.DefaultDatabaseWriterConflictResolver.queryForInt(DefaultDatabaseWriterConflictResolver.java:620)
    at org.jumpmind.symmetric.io.data.writer.DefaultDatabaseWriterConflictResolver.checkForUniqueKeyViolation(DefaultDatabaseWriterConflictResolver.java:386)
    at org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriterConflictResolver.performChainedFallbackForInsert(AbstractDatabaseWriterConflictResolver.java:196)
    at org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriterConflictResolver.needsResolved(AbstractDatabaseWriterConflictResolver.java:67)
    at org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriter.write(AbstractDatabaseWriter.java:216)
    at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:64)
    at org.jumpmind.symmetric.model.ProcessInfoDataWriter.write(ProcessInfoDataWriter.java:85)
    at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:64)
    at org.jumpmind.symmetric.io.data.writer.TransformWriter.write(TransformWriter.java:202)
    at org.jumpmind.symmetric.io.data.DataProcessor.forEachDataInTable(DataProcessor.java:212)
    at org.jumpmind.symmetric.io.data.DataProcessor.forEachTableInBatch(DataProcessor.java:178)
    at org.jumpmind.symmetric.io.data.DataProcessor.process(DataProcessor.java:124)
    at org.jumpmind.symmetric.service.impl.DataLoaderService$LoadIntoDatabaseOnArrivalListener$2.call(DataLoaderService.java:1091)
    at org.jumpmind.symmetric.service.impl.DataLoaderService$LoadIntoDatabaseOnArrivalListener$2.call(DataLoaderService.java:1067)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.postgresql.util.PSQLException: ERREUR: l'opérateur n'existe pas : t_id = character varying
  Indice : Aucun opérateur ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
  Position : 80
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2553)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2285)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:323)
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:473)
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:393)
    at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:164)
    at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:114)
    at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:122)
    at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:122)
    at org.jumpmind.db.sql.JdbcSqlTransaction$1.execute(JdbcSqlTransaction.java:230)
    at org.jumpmind.db.sql.JdbcSqlTransaction.executeCallback(JdbcSqlTransaction.java:396)
    ... 23 more

Steps To ReproduceWas not able to reproduce. Postgres 9.5

CREATE DOMAIN public.t_id AS integer;

create table mytid (id public.t_id primary key, name varchar(10));


Tagsdialect: postgresql

Activities

There are no notes attached to this issue.

Related Changesets

SymmetricDS: 3.12 dda9dac7

2021-08-10 15:27:24

admin

Details Diff
0005068: Postgres operator doesn't exist when using domain user defined
type
Affected Issues
0005068
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java Diff File

Issue History

Date Modified Username Field Change
2021-08-06 13:14 elong New Issue
2021-08-06 13:14 elong Status new => assigned
2021-08-06 13:14 elong Assigned To => elong
2021-08-06 13:14 elong Tag Attached: dialect: postgresql
2021-08-10 16:46 elong Status assigned => resolved
2021-08-10 16:46 elong Resolution open => fixed
2021-08-10 16:46 elong Fixed in Version => 3.12.12
2021-08-10 17:00 admin Changeset attached => SymmetricDS 3.12 dda9dac7