[jOOQ/jOOQ#16754] Add JSON function support in BigQuery

This commit is contained in:
Lukas Eder 2024-06-04 11:17:31 +02:00
parent 23709edb79
commit 044e79d32f
15 changed files with 35 additions and 0 deletions

View File

@ -40,6 +40,7 @@ package org.jooq;
import org.jetbrains.annotations.*;
// ...
// ...
// ...
import static org.jooq.SQLDialect.H2;

View File

@ -43,6 +43,7 @@ import org.jetbrains.annotations.*;
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.H2;
import static org.jooq.SQLDialect.MARIADB;
import static org.jooq.SQLDialect.MYSQL;

View File

@ -103,6 +103,9 @@ implements
case MARIADB:
case MYSQL:
return true;
@ -134,6 +137,10 @@ implements
case MARIADB:
case MYSQL:
ctx.visit(function(N_JSON_LENGTH, getDataType(), field));

View File

@ -103,6 +103,9 @@ implements
case MARIADB:
case MYSQL:
return true;
@ -137,6 +140,10 @@ implements
case MARIADB:
case MYSQL:
ctx.visit(function(N_JSON_LENGTH, getDataType(), field));

View File

@ -113,6 +113,7 @@ implements
case MARIADB:
case MYSQL:
case TRINO:
@ -164,6 +165,7 @@ implements
case MARIADB:

View File

@ -116,6 +116,7 @@ implements
case MARIADB:
return false;
case SQLITE:
return false;
@ -169,6 +170,7 @@ implements
ctx.visit(function(N_JSON_UNQUOTE, JSONB, DSL.nullif(function(N_JSON_EXTRACT, JSONB, field, inline("$.").concat(attribute)).cast(VARCHAR), inline("null"))));
break;
case SQLITE:
ctx.visit(function(N_JSON_EXTRACT, JSONB, field, inline("$.").concat(attribute)));
break;

View File

@ -113,6 +113,7 @@ implements
case MARIADB:
case MYSQL:
case TRINO:
@ -159,6 +160,7 @@ implements
case MARIADB:

View File

@ -135,6 +135,7 @@ implements
ctx.visit(function(N_JSON_UNQUOTE, JSONB, DSL.nullif(function(N_JSON_EXTRACT, JSONB, field, inline("$[").concat(index).concat(inline("]"))).cast(VARCHAR), inline("null"))));
break;
case SQLITE:
ctx.visit(function(N_JSON_EXTRACT, JSONB, field, inline("$[").concat(index).concat(inline("]"))));
break;

View File

@ -97,6 +97,7 @@ implements
case CLICKHOUSE:
case MARIADB:
case MYSQL:
@ -127,6 +128,7 @@ implements
case CLICKHOUSE:
case MARIADB:
case MYSQL:

View File

@ -113,6 +113,7 @@ implements
case MARIADB:
case MYSQL:
case TRINO:
@ -164,6 +165,7 @@ implements
case MARIADB:

View File

@ -116,6 +116,7 @@ implements
case MARIADB:
return false;
case SQLITE:
return false;
@ -170,6 +171,7 @@ implements
ctx.visit(function(N_JSON_UNQUOTE, JSON, DSL.nullif(function(N_JSON_EXTRACT, JSON, field, inline("$.").concat(attribute)).cast(VARCHAR), inline("null"))));
break;
case SQLITE:
ctx.visit(function(N_JSON_EXTRACT, JSON, field, inline("$.").concat(attribute)));
break;

View File

@ -113,6 +113,7 @@ implements
case MARIADB:
case MYSQL:
case TRINO:
@ -159,6 +160,7 @@ implements
case MARIADB:

View File

@ -135,6 +135,7 @@ implements
ctx.visit(function(N_JSON_UNQUOTE, JSON, DSL.nullif(function(N_JSON_EXTRACT, JSON, field, inline("$[").concat(index).concat(inline("]"))).cast(VARCHAR), inline("null"))));
break;
case SQLITE:
ctx.visit(function(N_JSON_EXTRACT, JSON, field, inline("$[").concat(index).concat(inline("]"))));
break;

View File

@ -97,6 +97,7 @@ implements
case CLICKHOUSE:
case MARIADB:
case MYSQL:
@ -131,6 +132,7 @@ implements
case CLICKHOUSE:
case MARIADB:
case MYSQL:

View File

@ -499,6 +499,7 @@ final class Names {
static final Name N_JSON_ARRAY = systemName("json_array");
static final Name N_JSON_ARRAY_LENGTH = systemName("json_array_length");
static final Name N_JSON_EXTRACT = systemName("json_extract");
static final Name N_JSON_EXTRACT_ARRAY = systemName("json_extract_array");
static final Name N_JSON_GET_ATTRIBUTE = systemName("json_get_attribute");
static final Name N_JSON_GET_ATTRIBUTE_AS_TEXT = systemName("json_get_attribute_as_text");
static final Name N_JSON_GET_ELEMENT = systemName("json_get_element");