From 7e2ef6532223e7efdd824791fb7a7f8651b7c908 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 9 Dec 2014 15:30:35 +0100 Subject: [PATCH] [#3849] Add PostgresDSL.stringToArray(X, Y, Z) support --- .../org/jooq/util/postgres/PostgresDSL.java | 58 +++++++++++++++++-- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/util/postgres/PostgresDSL.java b/jOOQ/src/main/java/org/jooq/util/postgres/PostgresDSL.java index 92e162fdce..da6c8e3269 100644 --- a/jOOQ/src/main/java/org/jooq/util/postgres/PostgresDSL.java +++ b/jOOQ/src/main/java/org/jooq/util/postgres/PostgresDSL.java @@ -219,7 +219,7 @@ public class PostgresDSL extends DSL { */ @Support({ POSTGRES }) public static Field arrayToString(Object[] array, String delimiter) { - return arrayToString(val(array), val(delimiter)); + return arrayToString(val(array), val(delimiter, String.class)); } /** @@ -243,7 +243,7 @@ public class PostgresDSL extends DSL { */ @Support({ POSTGRES }) public static Field arrayToString(Field array, String delimiter) { - return arrayToString(array, val(delimiter)); + return arrayToString(array, val(delimiter, String.class)); } /** @@ -267,7 +267,7 @@ public class PostgresDSL extends DSL { */ @Support({ POSTGRES }) public static Field stringToArray(String string, String delimiter) { - return stringToArray(val(string), val(delimiter)); + return stringToArray(val(string, String.class), val(delimiter, String.class)); } /** @@ -279,7 +279,7 @@ public class PostgresDSL extends DSL { */ @Support({ POSTGRES }) public static Field stringToArray(String string, Field delimiter) { - return stringToArray(val(string), delimiter); + return stringToArray(val(string, String.class), delimiter); } /** @@ -291,7 +291,7 @@ public class PostgresDSL extends DSL { */ @Support({ POSTGRES }) public static Field stringToArray(Field string, String delimiter) { - return stringToArray(string, val(delimiter)); + return stringToArray(string, val(delimiter, String.class)); } /** @@ -306,6 +306,54 @@ public class PostgresDSL extends DSL { return field("{string_to_array}({0}, {1})", SQLDataType.VARCHAR.getArrayDataType(), nullSafe(string), nullSafe(delimiter)); } + /** + * The PostgreSQL string_to_array(anyarray, delimiter) function. + *

+ * Example:

+     * {xx,NULL,zz} = string_to_array('xx~^~yy~^~zz', '~^~', 'yy')
+     * 
+ */ + @Support({ POSTGRES }) + public static Field stringToArray(String string, String delimiter, String nullString) { + return stringToArray(val(string, String.class), val(delimiter, String.class), val(nullString, String.class)); + } + + /** + * The PostgreSQL string_to_array(anyarray, delimiter) function. + *

+ * Example:

+     * {xx,NULL,zz} = string_to_array('xx~^~yy~^~zz', '~^~', 'yy')
+     * 
+ */ + @Support({ POSTGRES }) + public static Field stringToArray(String string, Field delimiter, Field nullString) { + return stringToArray(val(string, String.class), delimiter, nullString); + } + + /** + * The PostgreSQL string_to_array(anyarray, delimiter) function. + *

+ * Example:

+     * {xx,NULL,zz} = string_to_array('xx~^~yy~^~zz', '~^~', 'yy')
+     * 
+ */ + @Support({ POSTGRES }) + public static Field stringToArray(Field string, String delimiter, String nullString) { + return stringToArray(string, val(delimiter, String.class), val(nullString, String.class)); + } + + /** + * The PostgreSQL string_to_array(anyarray, delimiter) function. + *

+ * Example:

+     * {xx,NULL,zz} = string_to_array('xx~^~yy~^~zz', '~^~', 'yy')
+     * 
+ */ + @Support({ POSTGRES }) + public static Field stringToArray(Field string, Field delimiter, Field nullString) { + return field("{string_to_array}({0}, {1}, {2})", SQLDataType.VARCHAR.getArrayDataType(), nullSafe(string), nullSafe(delimiter), nullSafe(nullString)); + } + // ------------------------------------------------------------------------- // Other PostgreSQL-specific functions / clauses // -------------------------------------------------------------------------