Yes we need to use getTimestamp instead of getDate. Please create an issue.

On Sat, Jun 29, 2013 at 11:48 PM, Bill Au <bill.w...@gmail.com> wrote:
> So disabling convertType does provide a workaround for my problem with
> datetime column.  But the problem still exists when convertType is enabled
> because DIH is not doing the conversion correctly for a solr date field.
>  Solr date field does have a time portion but java.sql.Date does not.  So
> DIH should not be calling ResultSet.getDate() for a solr date field.  It
> should really be calling ResultSet.getTimestamp() instead.  Is the fix this
> simple?  Am I missing anything?
>
> If the fix is this simple I can submit and commit a patch to DIH.
>
> Bill
>
>
> On Sat, Jun 29, 2013 at 12:13 PM, Bill Au <bill.w...@gmail.com> wrote:
>
>> Setting convertType=false does solve the datetime issue.  But there are
>> now other columns that were working before but not working now.  Since I
>> have already done some research into the datetime to date issue and not
>> been able to find a solution, I think I will have to keep convertType set
>> to false and deal with the other column type that are not working now.
>>
>> Thanks for your help.
>>
>> Bill
>>
>>
>> On Sat, Jun 29, 2013 at 10:24 AM, Bill Au <bill.w...@gmail.com> wrote:
>>
>>> I just double check my config.  We are using convertType=true.  Someone
>>> else came up with the config so I am not sure why we are using it.  I will
>>> try with it set to false to see if something else will break.  Thanks for
>>> pointing that out.
>>>
>>> This is my first time using DIH.  I really like what I have seen so far.
>>>
>>> Bill
>>>
>>>
>>> On Sat, Jun 29, 2013 at 1:45 AM, Shalin Shekhar Mangar <
>>> shalinman...@gmail.com> wrote:
>>>
>>>> The default in JdbcDataSource is to use ResultSet.getObject which
>>>> returns the underlying database's type. The type specific methods in
>>>> ResultSet are not invoked unless you are using convertType="true".
>>>>
>>>> Is MySQL actually returning java.sql.Timestamp objects?
>>>>
>>>> On Sat, Jun 29, 2013 at 5:22 AM, Bill Au <bill.w...@gmail.com> wrote:
>>>> > I am running Solr 4.3.0, using DIH to import data from MySQL.  I am
>>>> running
>>>> > into a very strange problem where data from a datetime column being
>>>> > imported with the right date but the time is 00:00:00.  I tried using
>>>> SQL
>>>> > DATE_FORMAT() and also DIH DateFormatTransformer but nothing works.
>>>>  The
>>>> > raw debug response of DIH, it looks like the time porting of the
>>>> datetime
>>>> > data is already 00:00:00 in Solr jdbc query result.
>>>> >
>>>> > So I looked at the source code of DIH JdbcDataSource class.  It is
>>>> using
>>>> > java.sql.ResultSet and its getDate() method to handle date column.  The
>>>> > getDate() method returns java.sql.Date.  The java api doc for
>>>> java.sql.Date
>>>> >
>>>> > http://docs.oracle.com/javase/6/docs/api/java/sql/Date.html
>>>> >
>>>> > states that:
>>>> >
>>>> > "To conform with the definition of SQL DATE, the millisecond values
>>>> wrapped
>>>> > by a java.sql.Date instance must be 'normalized' by setting the hours,
>>>> > minutes, seconds, and milliseconds to zero in the particular time zone
>>>> with
>>>> > which the instance is associated."
>>>> >
>>>> > This seems to be describing exactly my problem.  Has anyone else notice
>>>> > this problem?  Has anyone use DIH to index SQL datetime successfully?
>>>>  If
>>>> > so can you send me the relevant portion of the DIH config?
>>>> >
>>>> > Bill
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Shalin Shekhar Mangar.
>>>>
>>>
>>>
>>



-- 
Regards,
Shalin Shekhar Mangar.

Reply via email to