You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2022/06/29 14:51:52 UTC

[ignite-3] 01/01: wip.

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 <an...@gmail.com>
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) {