From c4bb33795a59ef4d46081bd2e7ed7992a0f160e0 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 10 Oct 2022 11:19:03 +0200 Subject: [PATCH] [jOOQ/jOOQ#10018] Added more tests, fixed MySQL implementation --- jOOQ/src/main/java/org/jooq/impl/JSONBGetAttributeAsText.java | 3 +++ jOOQ/src/main/java/org/jooq/impl/JSONBGetElementAsText.java | 3 +++ jOOQ/src/main/java/org/jooq/impl/JSONGetAttributeAsText.java | 3 +++ jOOQ/src/main/java/org/jooq/impl/JSONGetElementAsText.java | 3 +++ jOOQ/src/main/java/org/jooq/impl/Names.java | 1 + 5 files changed, 13 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONBGetAttributeAsText.java b/jOOQ/src/main/java/org/jooq/impl/JSONBGetAttributeAsText.java index a485691778..111a09b5d2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONBGetAttributeAsText.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONBGetAttributeAsText.java @@ -125,6 +125,9 @@ implements case MARIADB: case MYSQL: + ctx.visit(function(N_JSON_UNQUOTE, JSONB, DSL.nullif(function(N_JSON_EXTRACT, JSONB, field, inline("$.").concat(attribute)), inline("null").cast(JSONB)))); + break; + case SQLITE: ctx.visit(function(N_JSON_EXTRACT, JSONB, field, inline("$.").concat(attribute))); break; diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONBGetElementAsText.java b/jOOQ/src/main/java/org/jooq/impl/JSONBGetElementAsText.java index 17304ca1fb..ff5e9a8ab1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONBGetElementAsText.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONBGetElementAsText.java @@ -125,6 +125,9 @@ implements case MARIADB: case MYSQL: + ctx.visit(function(N_JSON_UNQUOTE, JSONB, DSL.nullif(function(N_JSON_EXTRACT, JSONB, field, inline("$[").concat(index).concat(inline("]"))), inline("null").cast(JSONB)))); + break; + case SQLITE: ctx.visit(function(N_JSON_EXTRACT, JSONB, field, inline("$[").concat(index).concat(inline("]")))); break; diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONGetAttributeAsText.java b/jOOQ/src/main/java/org/jooq/impl/JSONGetAttributeAsText.java index c8a6a9b52f..51c56e075f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONGetAttributeAsText.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONGetAttributeAsText.java @@ -125,6 +125,9 @@ implements case MARIADB: case MYSQL: + ctx.visit(function(N_JSON_UNQUOTE, JSON, DSL.nullif(function(N_JSON_EXTRACT, JSON, field, inline("$.").concat(attribute)), inline("null").cast(JSON)))); + break; + case SQLITE: ctx.visit(function(N_JSON_EXTRACT, JSON, field, inline("$.").concat(attribute))); break; diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONGetElementAsText.java b/jOOQ/src/main/java/org/jooq/impl/JSONGetElementAsText.java index d936f714c0..1e05b226ac 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONGetElementAsText.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONGetElementAsText.java @@ -125,6 +125,9 @@ implements case MARIADB: case MYSQL: + ctx.visit(function(N_JSON_UNQUOTE, JSON, DSL.nullif(function(N_JSON_EXTRACT, JSON, field, inline("$[").concat(index).concat(inline("]"))), inline("null").cast(JSON)))); + break; + case SQLITE: ctx.visit(function(N_JSON_EXTRACT, JSON, field, inline("$[").concat(index).concat(inline("]")))); break; diff --git a/jOOQ/src/main/java/org/jooq/impl/Names.java b/jOOQ/src/main/java/org/jooq/impl/Names.java index 18107a8668..2e7bc1bbf4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Names.java +++ b/jOOQ/src/main/java/org/jooq/impl/Names.java @@ -192,6 +192,7 @@ final class Names { static final Name N_JSON_QUOTE = systemName("json_quote"); static final Name N_JSON_TABLE = systemName("json_table"); static final Name N_JSON_TRANSFORM = systemName("json_transform"); + static final Name N_JSON_UNQUOTE = systemName("json_unquote"); static final Name N_JSON_TYPE = systemName("json_type"); static final Name N_JSON_VALID = systemName("json_valid"); static final Name N_JSON_VALUE = systemName("json_value");