Hi Travis!

I am executing a function in de DB that has two queries: an UPDATE and
a SELECT, and I am getting the select results ok, but the update has
no effects, so it seems that that approach is not working.

Cheers!
Juan M.

On Thu, Dec 30, 2010 at 11:26 AM, Travis Low <t...@4centurion.com> wrote:
> If you are getting a null pointer exception here:
>
>  colNames = readFieldNames(resultSet.getMetaData());
>
> Then that implies the DIH code is written to expect a select statement.  You
> might be able to fool it with some SQL injection:
>
>  update blah set foo=bar where id=1234; select id from blah
>
> But if that doesn't work then you may be out of luck.
>
> cheers,
>
> Travis
>
> On Thu, Dec 30, 2010 at 8:26 AM, Juan Manuel Alvarez 
> <naici...@gmail.com>wrote:
>
>> 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.
>> >> >>
>> >> >
>> >>
>> >
>>
>
>
>
> --
>
> **
>
> *Travis Low, Director of Development*
>
>
> ** <t...@4centurion.com>* *
>
> *Centurion Research Solutions, LLC*
>
> *14048 ParkEast Circle *•* Suite 100 *•* Chantilly, VA 20151*
>
> *703-956-6276 *•* 703-378-4474 (fax)*
>
> *http://www.centurionresearch.com* <http://www.centurionresearch.com>
>
> **The information contained in this email message is confidential and
> protected from disclosure.  If you are not the intended recipient, any use
> or dissemination of this communication, including attachments, is strictly
> prohibited.  If you received this email message in error, please delete it
> and immediately notify the sender.
>
> This email message and any attachments have been scanned and are believed to
> be free of malicious software and defects that might affect any computer
> system in which they are received and opened. No responsibility is accepted
> by Centurion Research Solutions, LLC for any loss or damage arising from the
> content of this email.
>

Reply via email to