IGNITE-3175 BigDecimal fields are not supported if query is executed from IgniteRDD: fix java.sql.Date mapping
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2485d86f Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2485d86f Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2485d86f Branch: refs/heads/ignite-3212 Commit: 2485d86f63bb2149e8881d3f48c13fb7784c29b0 Parents: 7fc1a7f Author: tledkov-gridgain <tled...@gridgain.com> Authored: Thu Jun 2 16:56:20 2016 +0300 Committer: Valentin Kulichenko <valentin.luliche...@gmail.com> Committed: Fri Jun 3 20:12:44 2016 +0300 ---------------------------------------------------------------------- .../src/main/scala/org/apache/ignite/spark/IgniteRDD.scala | 3 ++- .../ignite/spark/JavaStandaloneIgniteRDDSelfTest.java | 9 ++++++++- .../org/apache/ignite/spark/EntityTestAllTypeFields.scala | 7 +++++-- 3 files changed, 15 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2485d86f/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteRDD.scala ---------------------------------------------------------------------- diff --git a/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteRDD.scala b/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteRDD.scala index 9ef9846..fa96212 100644 --- a/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteRDD.scala +++ b/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteRDD.scala @@ -315,9 +315,10 @@ class IgniteRDD[K, V] ( case "java.lang.Long" â LongType case "java.lang.Float" â FloatType case "java.lang.Double" â DoubleType - case "java.math.BigDecimal" â DecimalType.SYSTEM_DEFAULT + case "java.math.BigDecimal" â DataTypes.createDecimalType() case "java.lang.String" â StringType case "java.util.Date" â DateType + case "java.sql.Date" â DateType case "java.sql.Timestamp" â TimestampType case "[B" â BinaryType http://git-wip-us.apache.org/repos/asf/ignite/blob/2485d86f/modules/spark/src/test/java/org/apache/ignite/spark/JavaStandaloneIgniteRDDSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/spark/src/test/java/org/apache/ignite/spark/JavaStandaloneIgniteRDDSelfTest.java b/modules/spark/src/test/java/org/apache/ignite/spark/JavaStandaloneIgniteRDDSelfTest.java index e600c6c..343158b 100644 --- a/modules/spark/src/test/java/org/apache/ignite/spark/JavaStandaloneIgniteRDDSelfTest.java +++ b/modules/spark/src/test/java/org/apache/ignite/spark/JavaStandaloneIgniteRDDSelfTest.java @@ -39,6 +39,7 @@ import org.apache.spark.sql.DataFrame; import org.apache.spark.sql.Row; import scala.Tuple2; +import java.io.Serializable; import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.List; @@ -279,10 +280,16 @@ public class JavaStandaloneIgniteRDDSelfTest extends GridCommonAbstractTest { assertTrue(String.format("+++ Fail on %s field", fieldName), ((Comparable<BigDecimal>)val).compareTo((BigDecimal)res) == 0); } + else if (val instanceof java.sql.Date) + assertEquals(String.format("+++ Fail on %s field", fieldName), + val.toString(), df.collect()[0].get(0).toString()); else if (val.getClass().isArray()) assertTrue(String.format("+++ Fail on %s field", fieldName), 1 <= df.count()); - else + else { + assertTrue(String.format("+++ Fail on %s field", fieldName), df.collect().length > 0); + assertTrue(String.format("+++ Fail on %s field", fieldName), df.collect()[0].size() > 0); assertEquals(String.format("+++ Fail on %s field", fieldName), val, df.collect()[0].get(0)); + } info(String.format("+++ Query on the filed: %s : %s passed", fieldName, f.getType().getSimpleName())); } http://git-wip-us.apache.org/repos/asf/ignite/blob/2485d86f/modules/spark/src/test/scala/org/apache/ignite/spark/EntityTestAllTypeFields.scala ---------------------------------------------------------------------- diff --git a/modules/spark/src/test/scala/org/apache/ignite/spark/EntityTestAllTypeFields.scala b/modules/spark/src/test/scala/org/apache/ignite/spark/EntityTestAllTypeFields.scala index a936091..36d8274 100644 --- a/modules/spark/src/test/scala/org/apache/ignite/spark/EntityTestAllTypeFields.scala +++ b/modules/spark/src/test/scala/org/apache/ignite/spark/EntityTestAllTypeFields.scala @@ -35,7 +35,9 @@ class EntityTestAllTypeFields( @ScalarCacheQuerySqlField(index = true) val dateVal: Date, @ScalarCacheQuerySqlField(index = true) val timestampVal: Timestamp, @ScalarCacheQuerySqlField(index = true) val byteArrVal: Array[Byte], - @ScalarCacheQuerySqlField(index = true) val bigDecVal: java.math.BigDecimal + @ScalarCacheQuerySqlField(index = true) val bigDecVal: java.math.BigDecimal, + @ScalarCacheQuerySqlField(index = true) val javaSqlDate: java.sql.Date + ) extends Serializable { def this( i: Int @@ -52,6 +54,7 @@ class EntityTestAllTypeFields( new Date(i), new Timestamp(i), Array(i.toByte, i.toByte), - new java.math.BigDecimal(i.toString)) + new java.math.BigDecimal(i.toString), + new java.sql.Date(i)) } }