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 2021/08/13 15:12:06 UTC

[ignite-3] 02/03: Fix Tuple.columnIndex to return primitive type to avoid boxing.

This is an automated email from the ASF dual-hosted git repository.

amashenkov pushed a commit to branch gg-15253
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 71dd04b2434ed4398f38def30ff49e08bca29653
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Fri Aug 13 16:20:37 2021 +0300

    Fix Tuple.columnIndex to return primitive type to avoid boxing.
---
 modules/api/src/main/java/org/apache/ignite/table/Tuple.java         | 4 ++--
 .../java/org/apache/ignite/internal/client/table/ClientTuple.java    | 4 ++--
 .../src/test/java/org/apache/ignite/client/ClientTupleTest.java      | 4 ++--
 .../client/src/test/java/org/apache/ignite/client/CustomTuple.java   | 4 ++--
 .../main/java/org/apache/ignite/internal/table/RowChunkAdapter.java  | 4 ++--
 .../src/main/java/org/apache/ignite/internal/table/TupleImpl.java    | 5 +++--
 .../test/java/org/apache/ignite/internal/table/TupleImplTest.java    | 4 ++--
 .../java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java | 2 +-
 8 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/modules/api/src/main/java/org/apache/ignite/table/Tuple.java b/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
index 37af8ce..a4d7d93 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
@@ -46,9 +46,9 @@ public interface Tuple extends Iterable<Object> {
      * Gets the index of the column with the specified name.
      *
      * @param columnName Column name.
-     * @return Column index, or null when a column with given name is not present.
+     * @return Column index, or {@code -1} when a column with given name is not present.
      */
-    Integer columnIndex(String columnName);
+    int columnIndex(String columnName);
 
     /**
      * Gets column value when a column with specified name is present in this tuple; returns default value otherwise.
diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/table/ClientTuple.java b/modules/client/src/main/java/org/apache/ignite/internal/client/table/ClientTuple.java
index 1e332a0..8d9a2d7 100644
--- a/modules/client/src/main/java/org/apache/ignite/internal/client/table/ClientTuple.java
+++ b/modules/client/src/main/java/org/apache/ignite/internal/client/table/ClientTuple.java
@@ -99,10 +99,10 @@ public final class ClientTuple implements Tuple {
     }
 
     /** {@inheritDoc} */
-    @Override public Integer columnIndex(String columnName) {
+    @Override public int columnIndex(String columnName) {
         var col = schema.columnSafe(columnName);
 
-        return col == null ? null : col.schemaIndex();
+        return col == null ? -1 : col.schemaIndex();
     }
 
     /** {@inheritDoc} */
diff --git a/modules/client/src/test/java/org/apache/ignite/client/ClientTupleTest.java b/modules/client/src/test/java/org/apache/ignite/client/ClientTupleTest.java
index 08f7fe6..56fc0e3 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/ClientTupleTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/ClientTupleTest.java
@@ -122,8 +122,8 @@ public class ClientTupleTest {
     }
 
     @Test
-    public void testColumnIndexReturnsNullForMissingColumns() {
-        assertNull(getTuple().columnIndex("foo"));
+    public void testColumnIndexForMissingColumns() {
+        assertEquals(-1, getTuple().columnIndex("foo"));
     }
 
     @Test
diff --git a/modules/client/src/test/java/org/apache/ignite/client/CustomTuple.java b/modules/client/src/test/java/org/apache/ignite/client/CustomTuple.java
index 515ea14..8f9f063 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/CustomTuple.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/CustomTuple.java
@@ -58,13 +58,13 @@ public class CustomTuple implements Tuple {
         return null;
     }
 
-    @Override public Integer columnIndex(String columnName) {
+    @Override public int columnIndex(String columnName) {
         switch (columnName) {
             case "id": return 0;
             case "name": return 1;
         }
 
-        return null;
+        return -1;
     }
 
     @Override public <T> T valueOrDefault(String columnName, T def) {
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/RowChunkAdapter.java b/modules/table/src/main/java/org/apache/ignite/internal/table/RowChunkAdapter.java
index c6ad812..3f75649 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/RowChunkAdapter.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/RowChunkAdapter.java
@@ -55,10 +55,10 @@ public abstract class RowChunkAdapter implements Tuple, SchemaAware {
     }
 
     /** {@inheritDoc} */
-    @Override public Integer columnIndex(String columnName) {
+    @Override public int columnIndex(String columnName) {
         var col = schema().column(columnName);
 
-        return col == null ? null : col.schemaIndex();
+        return col == null ? -1 : col.schemaIndex();
     }
 
     /** {@inheritDoc} */
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/TupleImpl.java b/modules/table/src/main/java/org/apache/ignite/internal/table/TupleImpl.java
index fdf7918..4d979c9 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/TupleImpl.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/TupleImpl.java
@@ -46,6 +46,7 @@ public class TupleImpl implements Tuple, SchemaAware {
      * @param schemaDesc Schema descriptor.
      */
     public TupleImpl(SchemaDescriptor schemaDesc) {
+        this.schemaDesc = schemaDesc;
         map = new HashMap<>();
     }
 
@@ -81,10 +82,10 @@ public class TupleImpl implements Tuple, SchemaAware {
     }
 
     /** {@inheritDoc} */
-    @Override public Integer columnIndex(String columnName) {
+    @Override public int columnIndex(String columnName) {
         var col = schemaDesc.column(columnName);
 
-        return col == null ? null : col.schemaIndex();
+        return col == null ? -1 : col.schemaIndex();
     }
 
     /** {@inheritDoc} */
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/TupleImplTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/TupleImplTest.java
index 56af739..a8eda42 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/TupleImplTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/TupleImplTest.java
@@ -116,8 +116,8 @@ public class TupleImplTest {
     }
 
     @Test
-    public void testColumnIndexReturnsNullForMissingColumns() {
-        assertNull(getTuple().columnIndex("foo"));
+    public void testColumnIndexForMissingColumns() {
+        assertEquals(-1, getTuple().columnIndex("foo"));
     }
 
     private static TupleImpl createTuple() {
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java b/modules/table/src/test/java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java
index f291bfa..cb9713c 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java
@@ -67,7 +67,7 @@ public class TestTupleBuilder implements Tuple {
     }
 
     /** {@inheritDoc} */
-    @Override public Integer columnIndex(String columnName) {
+    @Override public int columnIndex(String columnName) {
         throw new UnsupportedOperationException();
     }