diff --git a/jooq-dialect/CHANGELOG.md b/jooq-dialect/CHANGELOG.md index 617da11..4079b1e 100644 --- a/jooq-dialect/CHANGELOG.md +++ b/jooq-dialect/CHANGELOG.md @@ -1,8 +1,11 @@ +## 1.1.0 ## +- Upgrade to new version of JDBC & SDK + ## 1.0.1 ## - Fixed bug with `useIndex` - skip the table name (`from view`) ## 1.0.0 ## -- `REPLACE` / `UPSERT` builders from YDB +- `REPLACE` / `UPSERT` builders from YDB - Supported VIEW INDEX from `useIndex("index_name")` HintedTable - Generated tables from schema diff --git a/jooq-dialect/README.md b/jooq-dialect/README.md index 543501d..b72cc14 100644 --- a/jooq-dialect/README.md +++ b/jooq-dialect/README.md @@ -1,5 +1,5 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/ydb-platform/ydb-java-dialects/blob/main/LICENSE.md) -[![Maven metadata URL](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo1.maven.org%2Fmaven2%2Ftech%2Fydb%2Fdialects%2Fhibernate-ydb-dialect-v5%2Fmaven-metadata.xml)](https://mvnrepository.com/artifact/tech.ydb.dialects/jooq-ydb-dialect) +[![Maven metadata URL](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo1.maven.org%2Fmaven2%2Ftech%2Fydb%2Fdialects%2Fjooq-ydb-dialect%2Fmaven-metadata.xml)](https://mvnrepository.com/artifact/tech.ydb.dialects/jooq-ydb-dialect) [![CI](https://img.shields.io/github/actions/workflow/status/ydb-platform/ydb-java-dialects/ci-jooq-dialect.yaml?branch=main&label=CI)](https://github.com/ydb-platform/ydb-java-dialects/actions/workflows/ci-jooq-dialect.yaml) # YDB JOOQ Dialect diff --git a/jooq-dialect/pom.xml b/jooq-dialect/pom.xml index ae9677f..edf91b3 100644 --- a/jooq-dialect/pom.xml +++ b/jooq-dialect/pom.xml @@ -4,7 +4,7 @@ tech.ydb.dialects jooq-ydb-dialect - 1.0.1 + 1.1.0 YDB JOOQ Dialect module YDB JOOQ Dialect module @@ -52,8 +52,8 @@ 3.19.0 - 2.2.6 - 2.2.3 + 2.3.8 + 2.3.7 diff --git a/jooq-dialect/src/main/java/tech/ydb/jooq/codegen/YdbDatabase.java b/jooq-dialect/src/main/java/tech/ydb/jooq/codegen/YdbDatabase.java index 6c5efd2..2282e02 100644 --- a/jooq-dialect/src/main/java/tech/ydb/jooq/codegen/YdbDatabase.java +++ b/jooq-dialect/src/main/java/tech/ydb/jooq/codegen/YdbDatabase.java @@ -1,9 +1,15 @@ package tech.ydb.jooq.codegen; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import org.jooq.*; import org.jooq.impl.DSL; import org.jooq.meta.*; import org.jooq.tools.JooqLogger; + import tech.ydb.jdbc.YdbConnection; import tech.ydb.jdbc.context.SchemeExecutor; import tech.ydb.jdbc.context.YdbContext; @@ -17,11 +23,6 @@ import tech.ydb.table.description.TableIndex; import tech.ydb.table.settings.DescribeTableSettings; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - public class YdbDatabase extends AbstractDatabase implements ResultQueryDatabase { private static final JooqLogger log = JooqLogger.getLogger(YdbDatabase.class); @@ -39,7 +40,7 @@ private YdbContext getContext() { } private String getDatabaseName() { - return getContext().getDatabase().substring(1); + return getContext().getPrefixPath().substring(1); } @Override diff --git a/jooq-dialect/src/main/java/tech/ydb/jooq/codegen/YdbTableDefinition.java b/jooq-dialect/src/main/java/tech/ydb/jooq/codegen/YdbTableDefinition.java index 5672c10..026a611 100644 --- a/jooq-dialect/src/main/java/tech/ydb/jooq/codegen/YdbTableDefinition.java +++ b/jooq-dialect/src/main/java/tech/ydb/jooq/codegen/YdbTableDefinition.java @@ -6,6 +6,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; + import org.jooq.Binding; import org.jooq.JSON; import org.jooq.JSONB; @@ -20,7 +21,7 @@ import org.jooq.types.UInteger; import org.jooq.types.ULong; import org.jooq.types.UShort; -import tech.ydb.jdbc.YdbConst; + import tech.ydb.jdbc.impl.YdbTypes; import tech.ydb.jooq.binding.DateBinding; import tech.ydb.jooq.binding.DatetimeBinding; @@ -36,6 +37,7 @@ import tech.ydb.jooq.value.YSON; import tech.ydb.table.description.TableColumn; import tech.ydb.table.description.TableDescription; +import tech.ydb.table.values.DecimalType; import tech.ydb.table.values.Type; public class YdbTableDefinition extends AbstractTableDefinition { @@ -71,7 +73,7 @@ protected List getElements0() { kind = type.getKind(); } - int decimalDigits = kind == Type.Kind.DECIMAL ? YdbConst.SQL_DECIMAL_DEFAULT_PRECISION : 0; + int decimalDigits = kind == Type.Kind.DECIMAL ? ((DecimalType) type).getPrecision(): 0; String typeName = type.toString(); Class> binding = getBinding(typeName); diff --git a/jooq-dialect/src/test/java/tech/ydb/jooq/BaseTest.java b/jooq-dialect/src/test/java/tech/ydb/jooq/BaseTest.java index cf6086f..b1fbc99 100644 --- a/jooq-dialect/src/test/java/tech/ydb/jooq/BaseTest.java +++ b/jooq-dialect/src/test/java/tech/ydb/jooq/BaseTest.java @@ -14,6 +14,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.extension.RegisterExtension; + import tech.ydb.test.junit5.YdbHelperExtension; public abstract class BaseTest { @@ -66,7 +67,7 @@ protected static List getExampleDateRecords() { public static void beforeAll() { dsl = YDB.using(jdbcUrl()); - dsl.createTable("series") + dsl.createTableIfNotExists("series") .column("series_id", YdbTypes.UINT64) .column("title", YdbTypes.UTF8) .column("series_info", YdbTypes.UTF8) @@ -74,7 +75,7 @@ public static void beforeAll() { .primaryKey("series_id") .execute(); - dsl.createTable("seasons") + dsl.createTableIfNotExists("seasons") .column("series_id", YdbTypes.UINT64) .column("season_id", YdbTypes.UINT64) .column("title", YdbTypes.UTF8) @@ -83,7 +84,7 @@ public static void beforeAll() { .primaryKey("series_id", "season_id") .execute(); - dsl.createTable("episodes") + dsl.createTableIfNotExists("episodes") .column("series_id", YdbTypes.UINT64) .column("season_id", YdbTypes.UINT64) .column("episode_id", YdbTypes.UINT64) @@ -92,7 +93,7 @@ public static void beforeAll() { .primaryKey("series_id", "season_id", "episode_id") .execute(); - dsl.createTable("hard_table") + dsl.createTableIfNotExists("hard_table") .column("id", YdbTypes.STRING) .column("first", YdbTypes.JSON) .column("second", YdbTypes.JSONDOCUMENT) @@ -100,7 +101,7 @@ public static void beforeAll() { .primaryKey("id") .execute(); - dsl.createTable("date_table") + dsl.createTableIfNotExists("date_table") .column("id", YdbTypes.UINT64) .column("int_col", YdbTypes.INT32) .column("percent", YdbTypes.DOUBLE) @@ -112,7 +113,7 @@ public static void beforeAll() { .primaryKey("id") .execute(); - CreateTableElementListStep createQuery = dsl.createTable("numeric").column("id", YdbTypes.INT32); + CreateTableElementListStep createQuery = dsl.createTableIfNotExists("numeric").column("id", YdbTypes.INT32); for (int i = 1; i <= 23; i++) { createQuery.column(Integer.toString(i), YdbTypes.INT32);