Sorry, I meant In our Binary marshaler we use *java.util.Date.*

Best Regards,
Igor

On Thu, Feb 11, 2016 at 6:12 PM, Igor Sapego <isap...@gridgain.com> wrote:

> Ok, It seems like I have found what was causing the issue.
>
> In our
> apache.ignite.internal.processors.queryh.h2.IgniteH2Indexing.DBTypeEnum:
>
> /**
>  * Initialize map of DB types.
>  */
> static {
> map.put(int.class, INT);
> map.put(Integer.class, INT);
> map.put(boolean.class, BOOL);
> map.put(Boolean.class, BOOL);
> map.put(byte.class, TINYINT);
> map.put(Byte.class, TINYINT);
> map.put(short.class, SMALLINT);
> map.put(Short.class, SMALLINT);
> map.put(long.class, BIGINT);
> map.put(Long.class, BIGINT);
> map.put(BigDecimal.class, DECIMAL);
> map.put(double.class, DOUBLE);
> map.put(Double.class, DOUBLE);
> map.put(float.class, REAL);
> map.put(Float.class, REAL);
> map.put(Time.class, TIME);
> map.put(Timestamp.class, TIMESTAMP);
> map.put(java.util.Date.class, TIMESTAMP);
> map.put(java.sql.Date.class, DATE);
> map.put(String.class, VARCHAR);
> map.put(UUID.class, UUID);
> map.put(byte[].class, BINARY);
> }
>
> As I was using java.util.Date and not the java.sql.Date it was translated
> as TIMESTAMP
> and not as DATE. Are there any particular reason for java.util.Date being
> treated as a
> TIMESTAMP?
>
> In our Binary marshaler we use java.sql.Date and when I try to change
> configuration and
> make the Date field to be of the type java.sql.Date I've got an error,
> because this field value
> deserialized as java.sql.Date:
>
> lass org.apache.ignite.IgniteCheckedException: Failed to execute SQL query.
>         at
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:831)
>         [...]
>         at
> org.apache.ignite.internal.processors.platform.cache.query.PlatformAbstractQueryCursor.iterator(PlatformAbstractQueryCursor.java:134)
> Caused by: org.h2.jdbc.JdbcSQLException: "java.lang.ClassCastException:
> java.util.Date cannot be cast to java.sql.Date"
>
>
> Best Regards,
> Igor
>
> On Thu, Feb 11, 2016 at 12:39 PM, Vladimir Ozerov <voze...@gridgain.com>
> wrote:
>
>> There was some changes in how .NET interoperate w/ Java on binary level.
>> No
>> changes were made to cache or query logic.
>> I performed a smoke test in Java and observed that Date field was
>> correctly
>> mapped to H2 date and then vice versa.
>>
>> Probably this is a kind of configuration problem.
>>
>> Vladimir.
>>
>> On Thu, Feb 11, 2016 at 12:41 AM, Dmitriy Setrakyan <
>> dsetrak...@apache.org>
>> wrote:
>>
>> > I remember seeing some work done for the .NET support to provide better
>> > precision for time data values. Could it be that SQL now converts
>> > everything to Timestamp because of that?
>> >
>> > D.
>> >
>> > On Wed, Feb 10, 2016 at 10:09 AM, Igor Sapego <isap...@gridgain.com>
>> > wrote:
>> >
>> > > Hello,
>> > >
>> > > Recently I've been working on implementation of the Date and Timestamp
>> > > types support for C++ client [1] and I today have faced an issue when
>> I
>> > was
>> > > running tests with Date and SqlFieldQuery.
>> > >
>> > > Here is the issue. I have class that have field of type 'Date'. I was
>> > able
>> > > to create
>> > > instances of that class and put them in a cache, but when I tried to
>> > > retrieve
>> > > these fields with SQL query I've got an exception. After the short
>> debug
>> > > session
>> > > I have found that the values that SQL queries return are of type
>> > > 'Timestamp'.
>> > >
>> > > So now I'm wonder, is it an expected behavior? Because to me it looks
>> > like
>> > > something that may be very confusing for a user. User knows that
>> object's
>> > > field
>> > > is of type 'Date' but when they try to call GetNext<Date> on query row
>> > they
>> > > get an
>> > > exception.
>> > >
>> > > I have also tested simple caches with Date where Date is a value and
>> > these
>> > > tests
>> > > work just fine with 'Date' returned as a result of Cache#Get()
>> requests.
>> > >
>> > > [1] - IGNITE-2222: CPP: Implement Date and Timestamp data types
>> support
>> > for
>> > > binary protocol. <https://issues.apache.org/jira/browse/IGNITE-2222>
>> > > Best Regards,
>> > > Igor
>> > >
>> >
>>
>
>

Reply via email to