Hello! It would be nice if you created a ticket against Apache Ignite JIRA regarding this behavior. It would be extra nice if you pdovide a reproducer.
Regards, -- Ilya Kasnacheev пн, 11 мар. 2019 г. в 09:04, xmw45688 <[email protected]>: > Hi All, > > Adding new primitive type columns to the existing tables (table has data) > in > Cassandra causes Ignite to raise an exception (see below) in Ignite 2.7.0 > or > 2.8.0 nightly build when loading the data from Cassandra into Ignite Cache > store. This works before Ignite 2.6, and even > apache-ignite-fabric-2.7.0.20180918 nightly build. The assumption seems > not > correct because both Ignite and Cassandra are (key, value) store. > > In fact, SQLLINE tool, we don't need to insert into primitive value, see > the > example blow > CREATE TABLE aa (col1 int PRIMARY KEY, col2 double ); > INSERT INTO aa(col1) VALUES (1); > SELECT * FROM aa; > > 0: jdbc:ignite:thin://localhost> select * from aa; > +--------------------------------+--------------------------------+ > | COL1 | COL2 | > +--------------------------------+--------------------------------+ > | 1 | null | > +--------------------------------+--------------------------------+ > 1 row selected (0.052 seconds) > 0: jdbc:ignite:thin://localhost> > > > [2019-03-11 > > 09:44:34,352][ERROR][cassandra-cache-loader-#61%ignite-procurant-purchase-order-cluster%][CassandraCacheStore] > Failed to build Ignite value object from provided Cassandra row > java.lang.IllegalArgumentException: Can't cast null value from Cassandra > table column 'suppliertotamt' to double value used in domain object model > at > > org.apache.ignite.cache.store.cassandra.common.PropertyMappingHelper.getCassandraColumnValue(PropertyMappingHelper.java:169) > at > > org.apache.ignite.cache.store.cassandra.persistence.PojoField.setValueFromRow(PojoField.java:205) > at > > org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.buildObject(PersistenceController.java:405) > at > > org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.buildValueObject(PersistenceController.java:227) > at > > org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker$1.process(LoadCacheCustomQueryWorker.java:107) > at > > org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:402) > at > > org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker.call(LoadCacheCustomQueryWorker.java:81) > at > > org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker.call(LoadCacheCustomQueryWorker.java:35) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > [2019-03-11 > > 09:44:34,360][ERROR][cassandra-cache-loader-#61%ignite-procurant-purchase-order-cluster%][CassandraCacheStore] > Failed to execute Cassandra loadCache operation > class org.apache.ignite.IgniteException: Failed to execute Cassandra > loadCache operation > at > > org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:415) > at > > org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker.call(LoadCacheCustomQueryWorker.java:81) > at > > org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker.call(LoadCacheCustomQueryWorker.java:35) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: class org.apache.ignite.IgniteException: Failed to build Ignite > value object from provided Cassandra row > at > > org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker$1.process(LoadCacheCustomQueryWorker.java:112) > at > > org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:402) > ... 6 more > Caused by: java.lang.IllegalArgumentException: Can't cast null value from > Cassandra table column 'suppliertotamt' to double value used in domain > object model > at > > org.apache.ignite.cache.store.cassandra.common.PropertyMappingHelper.getCassandraColumnValue(PropertyMappingHelper.java:169) > at > > org.apache.ignite.cache.store.cassandra.persistence.PojoField.setValueFromRow(PojoField.java:205) > at > > org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.buildObject(PersistenceController.java:405) > at > > org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.buildValueObject(PersistenceController.java:227) > > > CREATE TABLE aa (col1 int PRIMARY KEY, col2 double ); > INSERT INTO aa(col1) VALUES (1); > SELECT * FROM aa; > > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >
