From 694f566df9571cc6d90bc5488dab64f531685d44 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 20 Feb 2023 16:12:51 +0100 Subject: [PATCH] [jOOQ/jOOQ#14653] Support JSON_GET_ATTRIBUTE and JSON_GET_ELEMENT --- .../java/org/jooq/impl/JSONBGetAttribute.java | 31 +++++++++++++++++++ .../java/org/jooq/impl/JSONBGetElement.java | 31 +++++++++++++++++++ .../java/org/jooq/impl/JSONGetAttribute.java | 31 +++++++++++++++++++ .../java/org/jooq/impl/JSONGetElement.java | 31 +++++++++++++++++++ jOOQ/src/main/java/org/jooq/impl/Names.java | 2 ++ 5 files changed, 126 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONBGetAttribute.java b/jOOQ/src/main/java/org/jooq/impl/JSONBGetAttribute.java index ab5a449727..3e4648514f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONBGetAttribute.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONBGetAttribute.java @@ -92,6 +92,33 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + switch (ctx.family()) { + + + + + + + + + + + + + + + + case MARIADB: + case MYSQL: + return false; + + default: + return false; + } + } + @Override public final void accept(Context ctx) { switch (ctx.family()) { @@ -123,6 +150,10 @@ implements + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONBGetElement.java b/jOOQ/src/main/java/org/jooq/impl/JSONBGetElement.java index 755a921be1..c4ff3efc83 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONBGetElement.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONBGetElement.java @@ -92,6 +92,33 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + switch (ctx.family()) { + + + + + + + + + + + + + + + + case MARIADB: + case MYSQL: + return false; + + default: + return false; + } + } + @Override public final void accept(Context ctx) { switch (ctx.family()) { @@ -118,6 +145,10 @@ implements + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONGetAttribute.java b/jOOQ/src/main/java/org/jooq/impl/JSONGetAttribute.java index 908dd291b1..544557a401 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONGetAttribute.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONGetAttribute.java @@ -92,6 +92,33 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + switch (ctx.family()) { + + + + + + + + + + + + + + + + case MARIADB: + case MYSQL: + return false; + + default: + return false; + } + } + @Override public final void accept(Context ctx) { switch (ctx.family()) { @@ -123,6 +150,10 @@ implements + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONGetElement.java b/jOOQ/src/main/java/org/jooq/impl/JSONGetElement.java index 61e8d67523..09ca940de8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONGetElement.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONGetElement.java @@ -92,6 +92,33 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + switch (ctx.family()) { + + + + + + + + + + + + + + + + case MARIADB: + case MYSQL: + return false; + + default: + return false; + } + } + @Override public final void accept(Context ctx) { switch (ctx.family()) { @@ -118,6 +145,10 @@ implements + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Names.java b/jOOQ/src/main/java/org/jooq/impl/Names.java index f2f6043801..fe99da5016 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Names.java +++ b/jOOQ/src/main/java/org/jooq/impl/Names.java @@ -131,6 +131,7 @@ final class Names { static final Name N_GENERATOR = systemName("generator"); static final Name N_GEN_ID = systemName("gen_id"); static final Name N_GEN_UUID = systemName("gen_uuid"); + static final Name N_GET = systemName("get"); static final Name N_GETDATE = systemName("getdate"); static final Name N_GREATEST = systemName("greatest"); static final Name N_GROUPING_SETS = systemName("grouping sets"); @@ -393,6 +394,7 @@ final class Names { static final Name N_GENERATE_UUID = systemName("generate_uuid"); static final Name N_GENGUID = systemName("genguid"); static final Name N_GEN_RANDOM_UUID = systemName("gen_random_uuid"); + static final Name N_GET = systemName("get"); static final Name N_GETBIT = systemName("getbit"); static final Name N_GET_BIT = systemName("get_bit"); static final Name N_GOTO = systemName("goto");