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 2024/12/10 15:07:26 UTC
(ignite-3) branch ignite-23420 updated (0b974ac421 -> 64f68c455b)
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a change to branch ignite-23420
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
discard 0b974ac421 Add getter methods for BigDecimal to the Tuple
new 64f68c455b Add getter methods for BigDecimal to the Tuple
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (0b974ac421)
\
N -- N -- N refs/heads/ignite-23420 (64f68c455b)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../org/apache/ignite/internal/table/AbstractRowTupleAdapter.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
(ignite-3) 01/01: Add getter methods for BigDecimal to the Tuple
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch ignite-23420
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 64f68c455bf73ecc8c4c73ccee2af2ed95cf8084
Author: amashenkov <am...@apache.org>
AuthorDate: Tue Dec 10 17:59:53 2024 +0300
Add getter methods for BigDecimal to the Tuple
---
.../main/java/org/apache/ignite/table/Tuple.java | 21 +++++++++++++++++++++
.../java/org/apache/ignite/table/TupleImpl.java | 13 +++++++++++++
.../table/MutableTupleBinaryTupleAdapter.java | 17 +++++++++++++++++
.../ignite/client/AbstractClientTableTest.java | 2 +-
.../ignite/client/ClientKeyValueViewTest.java | 4 ++--
.../apache/ignite/client/ClientRecordViewTest.java | 2 +-
.../org/apache/ignite/client/ClientSqlTest.java | 2 +-
.../org/apache/ignite/client/ClientTupleTest.java | 13 +++++++++++++
.../java/org/apache/ignite/client/CustomTuple.java | 13 +++++++++++++
.../ignite/client/fakes/FakeIgniteTables.java | 2 +-
.../internal/table/criteria/SqlRowProjection.java | 13 +++++++++++++
.../runner/app/client/ItThinClientSqlTest.java | 10 +++++-----
.../ignite/internal/sql/api/AsyncResultSetImpl.java | 13 +++++++++++++
.../apache/ignite/internal/sql/engine/TestRow.java | 13 +++++++++++++
.../internal/table/AbstractRowTupleAdapter.java | 17 +++++++++++++++++
.../internal/table/MutableRowTupleAdapter.java | 13 +++++++++++++
.../internal/table/InteropOperationsTest.java | 2 +-
.../internal/table/impl/TestTupleBuilder.java | 13 +++++++++++++
18 files changed, 171 insertions(+), 12 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 1b9ef64047..a30a22c414 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
@@ -17,6 +17,7 @@
package org.apache.ignite.table;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -396,6 +397,26 @@ public interface Tuple extends Iterable<Object> {
*/
double doubleValue(int columnIndex);
+ /**
+ * Gets a {@code BigDecimal} column value.
+ *
+ * @param columnName Column name in SQL-parser style notation; e.g., <br>
+ * "myColumn" - "MYCOLUMN", returns the index of the column ignores case sensitivity, <br>
+ * "\"MyColumn\"" - "MyColumn", returns the index of the column with respect to case sensitivity.
+ * @return Column value.
+ * @throws IllegalArgumentException If no column with the given name exists.
+ */
+ BigDecimal decimalValue(String columnName);
+
+ /**
+ * Gets a {@code BigDecimal} column value.
+ *
+ * @param columnIndex Column index.
+ * @return Column value.
+ * @throws IndexOutOfBoundsException If no column with the given index exists.
+ */
+ BigDecimal decimalValue(int columnIndex);
+
/**
* Gets a {@code String} column value.
*
diff --git a/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java b/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
index 11391faa1b..8baf0ae026 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
@@ -21,6 +21,7 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -250,6 +251,18 @@ class TupleImpl implements Tuple, Serializable {
return value(columnIndex);
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ return value(columnIndex);
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {
diff --git a/modules/client-common/src/main/java/org/apache/ignite/internal/client/table/MutableTupleBinaryTupleAdapter.java b/modules/client-common/src/main/java/org/apache/ignite/internal/client/table/MutableTupleBinaryTupleAdapter.java
index c92ddf2c48..9cc46cccb7 100644
--- a/modules/client-common/src/main/java/org/apache/ignite/internal/client/table/MutableTupleBinaryTupleAdapter.java
+++ b/modules/client-common/src/main/java/org/apache/ignite/internal/client/table/MutableTupleBinaryTupleAdapter.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.client.table;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -256,6 +257,22 @@ public abstract class MutableTupleBinaryTupleAdapter implements Tuple, BinaryTup
: binaryTuple.doubleValue(validateSchemaColumnType(columnIndex, ColumnType.DOUBLE));
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ return tuple != null
+ ? tuple.decimalValue(columnName)
+ : binaryTuple.decimalValue(validateSchemaColumnType(columnName, ColumnType.DECIMAL), -1);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ return tuple != null
+ ? tuple.decimalValue(columnIndex)
+ : binaryTuple.decimalValue(validateSchemaColumnType(columnIndex, ColumnType.DECIMAL), -1);
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {
diff --git a/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTableTest.java b/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTableTest.java
index e567d71317..e22151e029 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTableTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTableTest.java
@@ -121,7 +121,7 @@ public class AbstractClientTableTest extends AbstractClientTest {
.set("ztimestamp", instant)
.set("zstring", name)
.set("zbytes", new byte[]{1, 2})
- .set("zdecimal", BigDecimal.valueOf(21))
+ .set("zdecimal", BigDecimal.valueOf(21).setScale(3))
.set("zuuid", uuid);
if (!skipKey) {
diff --git a/modules/client/src/test/java/org/apache/ignite/client/ClientKeyValueViewTest.java b/modules/client/src/test/java/org/apache/ignite/client/ClientKeyValueViewTest.java
index 300f76e687..2b6ae94dc5 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/ClientKeyValueViewTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/ClientKeyValueViewTest.java
@@ -138,7 +138,7 @@ public class ClientKeyValueViewTest extends AbstractClientTableTest {
assertEquals(instant.with(NANO_OF_SECOND, truncateNanosToMicros(instant.getNano())), res.ztimestamp);
assertEquals("foo", res.zstring);
assertArrayEquals(new byte[]{1, 2}, res.zbytes);
- assertEquals(21, res.zdecimal.longValue());
+ assertEquals(BigDecimal.valueOf(21).setScale(3), res.zdecimal);
assertEquals(uuid, res.zuuid);
}
@@ -193,7 +193,7 @@ public class ClientKeyValueViewTest extends AbstractClientTableTest {
assertEquals(instant.with(NANO_OF_SECOND, truncateNanosToMicros(instant.getNano())), res.timestampValue("ztimestamp"));
assertEquals("119", res.stringValue("zstring"));
assertEquals(120, ((byte[]) res.value("zbytes"))[0]);
- assertEquals(122, ((BigDecimal) res.value("zdecimal")).longValue());
+ assertEquals(BigDecimal.valueOf(122), res.decimalValue("zdecimal"));
assertEquals(uuid, res.uuidValue("zuuid"));
}
diff --git a/modules/client/src/test/java/org/apache/ignite/client/ClientRecordViewTest.java b/modules/client/src/test/java/org/apache/ignite/client/ClientRecordViewTest.java
index 15f6441243..afc7051ca2 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/ClientRecordViewTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/ClientRecordViewTest.java
@@ -180,7 +180,7 @@ public class ClientRecordViewTest extends AbstractClientTableTest {
assertEquals(instant.with(NANO_OF_SECOND, truncateNanosToMicros(instant.getNano())), res.timestampValue("ztimestamp"));
assertEquals("119", res.stringValue("zstring"));
assertEquals(120, ((byte[]) res.value("zbytes"))[0]);
- assertEquals(122, ((BigDecimal) res.value("zdecimal")).longValue());
+ assertEquals(BigDecimal.valueOf(122), res.decimalValue("zdecimal"));
assertEquals(uuid, res.uuidValue("zuuid"));
}
diff --git a/modules/client/src/test/java/org/apache/ignite/client/ClientSqlTest.java b/modules/client/src/test/java/org/apache/ignite/client/ClientSqlTest.java
index 14f9286a54..d5ab2a896c 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/ClientSqlTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/ClientSqlTest.java
@@ -138,7 +138,7 @@ public class ClientSqlTest extends AbstractClientTableTest {
assertEquals(1.4d, row.doubleValue(6));
assertEquals(ColumnType.DOUBLE, meta.columns().get(6).type());
- assertEquals(BigDecimal.valueOf(145).setScale(2, RoundingMode.HALF_UP), row.value(7));
+ assertEquals(BigDecimal.valueOf(145), row.decimalValue(7));
ColumnMetadata decimalCol = meta.columns().get(7);
assertEquals(ColumnType.DECIMAL, decimalCol.type());
assertEquals(1, decimalCol.precision());
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 2afc86ddea..cb6175c627 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
@@ -170,10 +170,23 @@ public class ClientTupleTest extends AbstractMutableTupleTest {
assertEquals(STRING_VALUE, tuple.stringValue(7));
assertEquals(STRING_VALUE, tuple.stringValue("str"));
+ assertEquals(DATE_VALUE, tuple.dateValue(8));
assertEquals(DATE_VALUE, tuple.dateValue("date"));
+
+ assertEquals(TIME_VALUE, tuple.timeValue(9));
assertEquals(TIME_VALUE, tuple.timeValue("time"));
+
+ assertEquals(DATETIME_VALUE, tuple.datetimeValue(10));
assertEquals(DATETIME_VALUE, tuple.datetimeValue("datetime"));
+
+ assertEquals(TIMESTAMP_VALUE, tuple.timestampValue(11));
assertEquals(TIMESTAMP_VALUE, tuple.timestampValue("timestamp"));
+
+ assertTrue(tuple.booleanValue(12));
+ assertTrue(tuple.booleanValue("bool"));
+
+ assertEquals(BigDecimal.valueOf(1234, 3), tuple.decimalValue(13));
+ assertEquals(BigDecimal.valueOf(1234, 3), tuple.decimalValue("decimal"));
}
@SuppressWarnings("ThrowableNotThrown")
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 b1beccc870..aab0eca448 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
@@ -17,6 +17,7 @@
package org.apache.ignite.client;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -216,6 +217,18 @@ public class CustomTuple implements Tuple {
throw new UnsupportedOperationException();
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ throw new UnsupportedOperationException();
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {
diff --git a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgniteTables.java b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgniteTables.java
index 8e9201b522..47a53578ad 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgniteTables.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgniteTables.java
@@ -305,7 +305,7 @@ public class FakeIgniteTables implements IgniteTablesInternal {
new Column("zstring".toUpperCase(), NativeTypes.STRING, true),
new Column("zbytes".toUpperCase(), NativeTypes.BYTES, true),
new Column("zuuid".toUpperCase(), NativeTypes.UUID, true),
- new Column("zdecimal".toUpperCase(), NativeTypes.decimalOf(20, 10), true),
+ new Column("zdecimal".toUpperCase(), NativeTypes.decimalOf(20, 3), true),
});
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/table/criteria/SqlRowProjection.java b/modules/core/src/main/java/org/apache/ignite/internal/table/criteria/SqlRowProjection.java
index 33fa2b1b1e..36fe7df817 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/table/criteria/SqlRowProjection.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/table/criteria/SqlRowProjection.java
@@ -21,6 +21,7 @@ import static org.apache.ignite.lang.util.IgniteNameUtils.quoteIfNeeded;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -189,6 +190,18 @@ public class SqlRowProjection implements Tuple {
return row.doubleValue(rowIndexMapping[columnIndex]);
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ return row.decimalValue(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ return row.decimalValue(rowIndexMapping[columnIndex]);
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {
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 69ee0ec246..02b579d2ea 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
@@ -481,12 +481,12 @@ public class ItThinClientSqlTest extends ItAbstractThinClientTest {
assertEquals(4, row.longValue(4));
assertEquals(5.5f, row.floatValue(5));
assertEquals(6.6, row.doubleValue(6));
- assertEquals(new BigDecimal("7.77"), row.value(7));
+ assertEquals(new BigDecimal("7.77"), row.decimalValue(7));
assertEquals("foo", row.stringValue(8));
- assertEquals(LocalDate.of(2020, 1, 1), row.value(9));
- assertEquals(LocalTime.of(12, 0, 0), row.value(10));
- assertEquals(LocalDateTime.of(2020, 1, 1, 12, 0, 0), row.value(11));
- assertEquals(UUID.fromString("10000000-2000-3000-4000-500000000000"), row.value(12));
+ assertEquals(LocalDate.of(2020, 1, 1), row.dateValue(9));
+ assertEquals(LocalTime.of(12, 0, 0), row.timeValue(10));
+ assertEquals(LocalDateTime.of(2020, 1, 1, 12, 0, 0), row.datetimeValue(11));
+ assertEquals(UUID.fromString("10000000-2000-3000-4000-500000000000"), row.uuidValue(12));
assertArrayEquals(new byte[]{0x42}, row.value(13));
assertNull(row.value(14));
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/AsyncResultSetImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/AsyncResultSetImpl.java
index 533ac26151..0acd7b5ce7 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/AsyncResultSetImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/AsyncResultSetImpl.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.sql.api;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -302,6 +303,18 @@ public class AsyncResultSetImpl<T> implements AsyncResultSet<T> {
return (double) row.get(columnIndex);
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ return (BigDecimal) row.get(columnIndexChecked(columnName));
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ return (BigDecimal) row.get(columnIndex);
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/TestRow.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/TestRow.java
index 27302f5ec1..4c2addcdcc 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/TestRow.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/TestRow.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.sql.engine;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -169,6 +170,18 @@ class TestRow implements SqlRow {
return 0;
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ return null;
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/AbstractRowTupleAdapter.java b/modules/table/src/main/java/org/apache/ignite/internal/table/AbstractRowTupleAdapter.java
index ac01e65d68..740e995ed7 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/AbstractRowTupleAdapter.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/AbstractRowTupleAdapter.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.table;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -220,6 +221,22 @@ public abstract class AbstractRowTupleAdapter implements Tuple, SchemaAware {
return row.doubleValue(correctIndex(col));
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ Column col = rowColumnByName(columnName);
+
+ return row.decimalValue(correctIndex(col));
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ Column col = rowColumnByIndex(columnIndex);
+
+ return row.decimalValue(correctIndex(col));
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java b/modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java
index 90690e0d71..f15499bbde 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.table;
import java.io.ObjectStreamException;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -196,6 +197,18 @@ public class MutableRowTupleAdapter extends AbstractRowTupleAdapter implements S
return tuple != null ? tuple.doubleValue(columnIndex) : super.doubleValue(columnIndex);
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ return tuple != null ? tuple.decimalValue(columnName) : super.decimalValue(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ return tuple != null ? tuple.decimalValue(columnIndex) : super.decimalValue(columnIndex);
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
index 948207f227..f6d9695181 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
@@ -511,7 +511,7 @@ public class InteropOperationsTest extends BaseIgniteAbstractTest {
assertEquals(expected.timestampValue(colName), t.timestampValue(colName));
break;
case DECIMAL:
- assertEquals((BigDecimal) expected.value(colName), t.value(colName));
+ assertEquals(expected.decimalValue(colName), t.decimalValue(colName));
break;
default:
throw new IllegalArgumentException("Expected type: " + type);
diff --git a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java
index 54a62ba394..786a976f0b 100644
--- a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java
+++ b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/TestTupleBuilder.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.table.impl;
+import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -163,6 +164,18 @@ public class TestTupleBuilder implements Tuple {
return 0;
}
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BigDecimal decimalValue(int columnIndex) {
+ return null;
+ }
+
/** {@inheritDoc} */
@Override
public String stringValue(String columnName) {