This is an automated email from the ASF dual-hosted git repository. amashenkov pushed a commit to branch ignite-17203 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 40b098d34bdbfa1c68330e730c0a826014690d44 Author: Andrew V. Mashenkov <[email protected]> AuthorDate: Wed Jun 29 17:51:36 2022 +0300 wip. --- .../main/java/org/apache/ignite/sql/ColumnMetadata.java | 6 ++++++ .../internal/runner/app/client/ItThinClientSqlTest.java | 5 ++--- .../internal/sql/api/ItSqlAsynchronousApiTest.java | 17 +++++++++++++++-- .../sql/engine/AbstractBasicIntegrationTest.java | 2 ++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/modules/api/src/main/java/org/apache/ignite/sql/ColumnMetadata.java b/modules/api/src/main/java/org/apache/ignite/sql/ColumnMetadata.java index 544bb8c48..06af35241 100644 --- a/modules/api/src/main/java/org/apache/ignite/sql/ColumnMetadata.java +++ b/modules/api/src/main/java/org/apache/ignite/sql/ColumnMetadata.java @@ -23,6 +23,12 @@ import org.jetbrains.annotations.Nullable; * Interface that provides methods for accessing column metadata. */ public interface ColumnMetadata { + /** Undefined precision value. */ + int UNDEFINED_PRECISION = -1; + + /** Undefined scale value. */ + int UNDEFINED_SCALE = Integer.MIN_VALUE; + /** * Return column name in the result set. * diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java index 6a4092291..739b7f08d 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java @@ -208,9 +208,8 @@ public class ItThinClientSqlTest extends ItAbstractThinClientTest { assertEquals(String.class, columns.get(0).valueClass()); assertEquals(SqlColumnType.STRING, columns.get(0).type()); - // TODO IGNITE-17203 - // assertEquals(-1, columns.get(0).scale()); - // assertEquals(-1, columns.get(0).precision()); + assertEquals(ColumnMetadata.UNDEFINED_SCALE, columns.get(0).scale()); + assertEquals(2 << 15, columns.get(0).precision()); assertEquals("ID", columns.get(1).name()); assertEquals("ID", columns.get(1).origin().columnName()); diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlAsynchronousApiTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlAsynchronousApiTest.java index 2f45a0a77..d0ed2179c 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlAsynchronousApiTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlAsynchronousApiTest.java @@ -53,6 +53,7 @@ import org.apache.ignite.lang.IndexAlreadyExistsException; import org.apache.ignite.lang.TableAlreadyExistsException; import org.apache.ignite.lang.TableNotFoundException; import org.apache.ignite.sql.BatchedArguments; +import org.apache.ignite.sql.ColumnMetadata; import org.apache.ignite.sql.IgniteSql; import org.apache.ignite.sql.ResultSetMetadata; import org.apache.ignite.sql.Session; @@ -224,9 +225,21 @@ public class ItSqlAsynchronousApiTest extends AbstractBasicIntegrationTest { assertEquals(0, meta.indexOf("COL1")); assertEquals(1, meta.indexOf("COL0")); - checkMetadata(new ColumnMetadataImpl("COL1", SqlColumnType.STRING, 0, 0, false, new ColumnOriginImpl("PUBLIC", "TEST", "COL1")), + checkMetadata(new ColumnMetadataImpl( + "COL1", + SqlColumnType.STRING, + 2 << 15, + ColumnMetadata.UNDEFINED_SCALE, + false, + new ColumnOriginImpl("PUBLIC", "TEST", "COL1")), meta.columns().get(0)); - checkMetadata(new ColumnMetadataImpl("COL0", SqlColumnType.INT64, 0, 0, false, new ColumnOriginImpl("PUBLIC", "TEST", "COL0")), + checkMetadata(new ColumnMetadataImpl( + "COL0", + SqlColumnType.INT64, + 19, + 0, + false, + new ColumnOriginImpl("PUBLIC", "TEST", "COL0")), meta.columns().get(1)); // Validate result columns types. diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/AbstractBasicIntegrationTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/AbstractBasicIntegrationTest.java index df158e35f..4e62dbfd3 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/AbstractBasicIntegrationTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/AbstractBasicIntegrationTest.java @@ -296,6 +296,8 @@ public class AbstractBasicIntegrationTest extends BaseIgniteAbstractTest { () -> assertEquals(expectedMeta.name(), actualMeta.name(), "name"), () -> assertEquals(expectedMeta.nullable(), actualMeta.nullable(), "nullable"), () -> assertSame(expectedMeta.type(), actualMeta.type(), "type"), + () -> assertEquals(expectedMeta.precision(), actualMeta.precision(), "precision"), + () -> assertEquals(expectedMeta.scale(), actualMeta.scale(), "scale"), () -> assertSame(expectedMeta.valueClass(), actualMeta.valueClass(), "value class"), () -> { if (expectedMeta.origin() == null) {
