Erick:

Thanks for the quick response.

I can't use the timestamp for doing DIH, so I need to use a custom
field that I need to update one for each delta-import, so that is why
I need to execute an UPDATE on the deltaQuery.

Cheers!
Juan M.

On Thu, Dec 30, 2010 at 10:07 AM, Erick Erickson
<erickerick...@gmail.com> wrote:
> WARNING: DIH isn't my strong suit, I generally prefer doing things
> in SolrJ. Mostly I asked for clarification so someone #else# who
> actually knows DIH details could chime in...
>
> That said, I'm a bit confused. As I understand it, you shouldn't
> be UPDATEing anything in DIH, it's a select where documents
> then get added to Solr "by magic". Your post leads me to believe
> that you're trying to change the database via DIH, is that at
> all true?
>
> This is based in part on
> "The ids are returned ok, but the UPDATE has no effect on the database"
> Or do you mean "effect on the index"? If the latter, then the select
> would only have a chance of updating the IDs of the Solr documents...
>
> At least I think that's close to reality...
>
> Best
> Erick
>
> On Thu, Dec 30, 2010 at 7:52 AM, Juan Manuel Alvarez 
> <naici...@gmail.com>wrote:
>
>> Hi Erick!
>>
>> Here is my DIH configuration:
>>
>> <dataConfig>
>>    <dataSource name="jdbc" driver="org.postgresql.Driver"
>>
>>  url="jdbc:postgresql://${dataimporter.request.dbHost}:${dataimporter.request.dbPort}/${dataimporter.request.dbName}"
>>        user="${dataimporter.request.dbUser}"
>> password="${dataimporter.request.dbPassword}" autoCommit="false"
>>        transactionIsolation="TRANSACTION_READ_UNCOMMITTED"
>> holdability="CLOSE_CURSORS_AT_COMMIT"/>
>>    <document>
>>        <entity name='myEntity' dataSource='jdbc' pk='id'
>>                query='  ..... '
>>          deltaImportQuery='  ..... '
>>                deltaQuery=' ..... '
>>        >
>>        </entity>
>>    </document>
>> </dataConfig>
>>
>> I have tried two options for the deltaQuery:
>> UPDATE "Global"."Projects" SET "prj_lastSync" = now() WHERE "prj_id" =
>> '2'; <---- Throws a null pointer exception as described in the
>> previous email
>>
>> The second option is a DB function that I am calling this way:
>> SELECT "get_deltaimport_items" AS "id" FROM
>> project.get_deltaimport_items(2, &#39;project&#39;);
>>
>> The function inside executes the UPDATE query shown above and a SELECT
>> query for the ids.
>> The ids are returned ok, but the UPDATE has no effect on the database.
>>
>> Cheers!
>> Juan M.
>>
>>
>> On Thu, Dec 30, 2010 at 1:32 AM, Erick Erickson <erickerick...@gmail.com>
>> wrote:
>> > Well, let's see the queries you're sending, and your DIH configuration.
>> >
>> > Otherwise, we're just guessing...
>> >
>> > Best
>> > Erick
>> >
>> > On Wed, Dec 29, 2010 at 9:58 PM, Juan Manuel Alvarez <naici...@gmail.com
>> >wrote:
>> >
>> >> Hi! I would like to ask you a question about using a deltaQuery in DIH.
>> >> I am syncing with a PostgreSQL database.
>> >>
>> >> At first I was calling a function that made two queries: an UPDATE and a
>> >> SELECT.
>> >> The select result was properly returned, but the UPDATE query did not
>> >> made any changes,
>> >> so I tried calling the same function from a PostgreSQL client and
>> >> everything went OK.
>> >>
>> >> So I tried calling a simple UPDATE query directly in the deltaQuery
>> >> and I receive a
>> >> NullPointerException that I traced to the line 251 of the
>> >> JdbcDataSource.java
>> >> colNames = readFieldNames(resultSet.getMetaData());
>> >>
>> >> The question is: is there a way I can make the update query work in
>> >> the deltaQuery
>> >> or am I doing something wrong?
>> >>
>> >> Happy new year!!!!
>> >> Cheers!
>> >> Juan M.
>> >>
>> >
>>
>

Reply via email to