From a7777b0bf0da766c8e0e55d3b45bf90c698adfc3 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 28 Apr 2020 16:40:01 +0200 Subject: [PATCH] [jOOQ/jOOQ#10137] RPAD() and LPAD() should no longer need to cast --- jOOQ/src/main/java/org/jooq/impl/Lpad.java | 18 ++---------------- jOOQ/src/main/java/org/jooq/impl/Rpad.java | 9 --------- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Lpad.java b/jOOQ/src/main/java/org/jooq/impl/Lpad.java index f33358df33..615070e64a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Lpad.java +++ b/jOOQ/src/main/java/org/jooq/impl/Lpad.java @@ -38,9 +38,6 @@ package org.jooq.impl; import static org.jooq.impl.DSL.inline; -import static org.jooq.impl.Keywords.K_AS; -import static org.jooq.impl.Keywords.K_CAST; -import static org.jooq.impl.Keywords.K_VARCHAR; import static org.jooq.impl.Names.N_HEX; import static org.jooq.impl.Names.N_LEN; import static org.jooq.impl.Names.N_LENGTH; @@ -96,11 +93,9 @@ final class Lpad extends AbstractField { - - // This beautiful expression was contributed by "Ludo", here: // http://stackoverflow.com/questions/6576343/how-to-simulate-lpad-rpad-with-sqlite - case SQLITE: { + case SQLITE: ctx.visit(N_SUBSTR).sql('(') .visit(N_REPLACE).sql('(') .visit(N_HEX).sql('(') @@ -110,19 +105,10 @@ final class Lpad extends AbstractField { .sql("), 1, ").visit(length).sql(" - ").visit(N_LENGTH).sql('(').visit(field) .sql(")) || ").visit(field); break; - } - // According to the Firebird documentation, LPAD outcomes should be - // cast to truncate large results... - case FIREBIRD: { - ctx.visit(K_CAST).sql('(').visit(N_LPAD).sql('(').visit(field).sql(", ").visit(length).sql(", ").visit(character).sql(") ").visit(K_AS).sql(' ').visit(K_VARCHAR).sql("(4000))"); - break; - } - - default: { + default: ctx.visit(N_LPAD).sql('(').visit(field).sql(", ").visit(length).sql(", ").visit(character).sql(')'); break; - } } } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Rpad.java b/jOOQ/src/main/java/org/jooq/impl/Rpad.java index e17b481fa6..2af9861013 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Rpad.java +++ b/jOOQ/src/main/java/org/jooq/impl/Rpad.java @@ -38,9 +38,6 @@ package org.jooq.impl; import static org.jooq.impl.DSL.inline; -import static org.jooq.impl.Keywords.K_AS; -import static org.jooq.impl.Keywords.K_CAST; -import static org.jooq.impl.Keywords.K_VARCHAR; import static org.jooq.impl.Names.N_HEX; import static org.jooq.impl.Names.N_LEN; import static org.jooq.impl.Names.N_LENGTH; @@ -109,12 +106,6 @@ final class Rpad extends AbstractField { .sql(')'); break; - // According to the Firebird documentation, RPAD outcomes should be - // cast to truncate large results... - case FIREBIRD: - ctx.visit(K_CAST).sql('(').visit(N_RPAD).sql('(').visit(field).sql(", ").visit(length).sql(", ").visit(character).sql(") ").visit(K_AS).sql(' ').visit(K_VARCHAR).sql("(4000))"); - break; - default: ctx.visit(N_RPAD).sql('(').visit(field).sql(", ").visit(length).sql(", ").visit(character).sql(')'); break;