From 34a153f5563d2141e8544827afffdeb332f30185 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 31 Jul 2012 19:56:41 +0200 Subject: [PATCH] [#722] Remove casting of bind values to appropriate type in Ingres --- jOOQ/src/main/java/org/jooq/impl/Substring.java | 15 +++++++++++++++ jOOQ/src/main/java/org/jooq/impl/Val.java | 3 --- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Substring.java b/jOOQ/src/main/java/org/jooq/impl/Substring.java index cf12c22f59..b23930bb36 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Substring.java +++ b/jOOQ/src/main/java/org/jooq/impl/Substring.java @@ -35,6 +35,7 @@ */ package org.jooq.impl; +import static org.jooq.impl.Factory.field; import static org.jooq.impl.Factory.function; import static org.jooq.impl.Factory.inline; @@ -76,6 +77,20 @@ class Substring extends AbstractFunction { } } + // [#722] For undocumented reasons, Ingres needs explicit casting + case INGRES: { + if (getArguments().length == 2) { + return field("{substring}({0}, {cast}({1} {as integer}))", + SQLDataType.VARCHAR, + getArguments()); + } + else { + return field("{substring}({0}, {cast}({1} {as integer}), {cast}({2} {as integer}))", + SQLDataType.VARCHAR, + getArguments()); + } + } + case DB2: case DERBY: case ORACLE: diff --git a/jOOQ/src/main/java/org/jooq/impl/Val.java b/jOOQ/src/main/java/org/jooq/impl/Val.java index 7a23db4725..de548b843c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Val.java +++ b/jOOQ/src/main/java/org/jooq/impl/Val.java @@ -158,9 +158,6 @@ class Val extends AbstractField implements Param { case H2: case HSQLDB: - // [#722] TODO This is probably not entirely right. - case INGRES: - // [#1261] There are only a few corner-cases, where this is // really needed. Check back on related CUBRID bugs case CUBRID: