From d74aee9fc50093ce78c801a02739897c7663a87d Mon Sep 17 00:00:00 2001 From: Eric Long Date: Tue, 8 Jan 2019 08:09:43 -0500 Subject: [PATCH] 0003846: Postgres error column type tsvector but expression is of type character varying --- symmetric-db/src/main/java/org/jumpmind/db/model/TypeMap.java | 3 ++- .../db/platform/postgresql/PostgreSqlDmlStatement.java | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/symmetric-db/src/main/java/org/jumpmind/db/model/TypeMap.java b/symmetric-db/src/main/java/org/jumpmind/db/model/TypeMap.java index f0176fa20f..3e148bf3ea 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/model/TypeMap.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/model/TypeMap.java @@ -117,7 +117,8 @@ public abstract class TypeMap public static final String NCLOB = "NCLOB"; public static final String IMAGE = "IMAGE"; public static final String DATETIME2 = "DATETIME2"; - + public static final String TSVECTOR = "TSVECTOR"; + /** Maps type names to the corresponding {@link java.sql.Types} constants. */ private static HashMap _typeNameToTypeCode = new HashMap(); diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDmlStatement.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDmlStatement.java index 0d40afb65d..a2a5b7db15 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDmlStatement.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDmlStatement.java @@ -125,6 +125,8 @@ protected void appendColumnParameter(StringBuilder sql, Column column) { column.getJdbcTypeName().toUpperCase().contains(TypeMap.GEOMETRY) || column.getJdbcTypeName().toUpperCase().contains(TypeMap.GEOGRAPHY))) { sql.append("ST_GEOMFROMTEXT(?)").append(","); + } else if (column.getJdbcTypeName().toUpperCase().contains(TypeMap.TSVECTOR)) { + sql.append("cast(? as tsvector)").append(","); } else { super.appendColumnParameter(sql, column); } @@ -148,6 +150,8 @@ protected void appendColumnEquals(StringBuilder sql, Column column) { column.getJdbcTypeName().toUpperCase().contains(TypeMap.GEOGRAPHY)) { sql.append(quote).append(column.getName()).append(quote) .append(" = ST_GEOMFROMTEXT(?)"); + } else if (column.getJdbcTypeName().toUpperCase().contains(TypeMap.TSVECTOR)) { + sql.append(quote).append(column.getName()).append(quote).append(" = cast(? as tsvector)"); } else { super.appendColumnEquals(sql, column); }