From 4b95a83e27bc3089df3505d65772cc6f43689a61 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 13 Aug 2018 13:18:41 +0200 Subject: [PATCH] [#7757] Improve SQLite LPAD() and RPAD() emulation --- jOOQ/src/main/java/org/jooq/impl/Lpad.java | 12 +----------- jOOQ/src/main/java/org/jooq/impl/Rpad.java | 12 +----------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Lpad.java b/jOOQ/src/main/java/org/jooq/impl/Lpad.java index 6f980a3e86..75ec23a391 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Lpad.java +++ b/jOOQ/src/main/java/org/jooq/impl/Lpad.java @@ -89,17 +89,7 @@ final class Lpad extends AbstractFunction { // http://stackoverflow.com/questions/6576343/how-to-simulate-lpad-rpad-with-sqlite case SQLITE: { return DSL.field( - "substr(" + - "replace(" + - "replace(" + - "substr(" + - "quote(" + - "zeroblob((({1} - length({0}) - 1 + length({2})) / length({2}) + 1) / 2)" + - "), 3" + - "), '\''', ''" + - "), '0', {2}" + - "), 1, ({1} - length({0}))" + - ") || {0}", + "substr(replace(hex(zeroblob({1})), '00', {2}), 1, {1} - length({0})) || {0}", String.class, field, length, character); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Rpad.java b/jOOQ/src/main/java/org/jooq/impl/Rpad.java index 45dcebf743..3847d88742 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Rpad.java +++ b/jOOQ/src/main/java/org/jooq/impl/Rpad.java @@ -87,17 +87,7 @@ final class Rpad extends AbstractFunction { // http://stackoverflow.com/questions/6576343/how-to-simulate-lpad-rpad-with-sqlite case SQLITE: return DSL.field( - "{0} || substr(" + - "replace(" + - "replace(" + - "substr(" + - "quote(" + - "zeroblob((({1} - length({0}) - 1 + length({2})) / length({2}) + 1) / 2)" + - "), 3" + - "), '\''', ''" + - "), '0', {2}" + - "), 1, ({1} - length({0}))" + - ")", + "{0} || substr(replace(hex(zeroblob({1})), '00', {2}), 1, {1} - length({0}))", String.class, field, length, character);