Re: Insert into master table ->" 0 rows affected" -> Hibernate problems - Mailing list pgsql-general

From
Subject Re: Insert into master table ->" 0 rows affected" -> Hibernate problems
Date
Msg-id AEEF32D2527D6E4AB32DFD5125F1B2F808686C5B@maserati.eu.tieto.com
Whole thread Raw
In response to Re: Insert into master table ->" 0 rows affected" -> Hibernate problems  (Magnus Hagander <magnus@hagander.net>)
Responses Re: Insert into master table ->" 0 rows affected" -> Hibernate problems
List pgsql-general
Hm,
Thanks again for helping out.
I think it would be hard to live without the WHERE statemement in my
case, since I will have a steady flow of inserts and need to have a
partition ready when time passes a partition boundary. I would have to
update the rule at the exact millisecond, wouldn't I?

I still think it is a bit sad that I cannot find a partitioning solution
that is completely transparent to my application, i.e. an application
(in my case Hibernate) should not have to know/care if a table is
partitioned or not.

/Mattias

> -----Original Message-----
> From: Magnus Hagander [mailto:magnus@hagander.net]
> Sent: den 11 juni 2008 10:43
> To: Arbin Mattias
> Cc: pgsql-general@postgresql.org
> Subject: Re: [GENERAL] Insert into master table ->" 0 rows
> affected" -> Hibernate problems
>
> Ah, in my testing I had a single RULE without a WHERE
> statement. In that case it works. If I add a WHERE statement
> to it, it no longer works. So it works for the case when you
> always want to redirect all new inserts into the same partition.
>
> //Magnus
>
> Mattias.Arbin@tietoenator.com wrote:
> > I tried using rules instead. I did something very similar to this:
> > CREATE RULE measurement_insert_y2006m02 AS ON INSERT TO measurement
> > WHERE
> >     ( logdate >= DATE '2006-02-01' AND logdate < DATE
> '2006-03-01' )
> > DO INSTEAD
> >     INSERT INTO measurement_y2006m02 VALUES (NEW.*); ...
> > CREATE RULE measurement_insert_y2008m01 AS ON INSERT TO measurement
> > WHERE
> >     ( logdate >= DATE '2008-01-01' AND logdate < DATE
> '2008-02-01' )
> > DO INSTEAD
> >     INSERT INTO measurement_y2008m01 VALUES (NEW.*);
> >
> > ... as descibed in the docs:
> > http://www.postgresql.org/docs/8.3/interactive/ddl-partitioning.html
> >
> > Unfortunately, I still get
> > "Query returned successfully: 0 rows affected, 16 ms
> execution time."
> >
> > /Mattias
> >
> >
> >
> >> -----Original Message-----
> >> From: pgsql-general-owner@postgresql.org
> >> [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Magnus
> >> Hagander
> >> Sent: den 10 juni 2008 10:43
> >> To: Arbin Mattias
> >> Cc: scott.marlowe@gmail.com; pgsql-general@postgresql.org
> >> Subject: Re: [GENERAL] Insert into master table ->" 0 rows
> affected"
> >> -> Hibernate problems
> >>
> >> I think that if you use a RULE instead of a TRIGGER to
> redirect the
> >> write, it should return the proper number of rows inserted in the
> >> child table.
> >>
> >> //Magnus
> >>
> >>
> >> Mattias.Arbin@tietoenator.com wrote:
> >>> Scott,
> >>> You're right, of course. I meant, is there a way to make Postgres
> >>> return the number of rows inserted to any child table _via_
> >> the master
> >>> table + trigger function?
> >>> I have not been able to find a way to tell Hibernate to
> ignore the
> >>> returned number of rows, unless I insert via a custom
> >> insert statement.
> >>> /Mattias
> >>>
> >>> -----Original Message-----
> >>> From: Scott Marlowe [mailto:scott.marlowe@gmail.com]
> >>> Sent: den 5 juni 2008 02:01
> >>> To: Arbin Mattias
> >>> Cc: pgsql-general@postgresql.org
> >>> Subject: Re: [GENERAL] Insert into master table ->" 0 rows
> >> affected"
> >>> -> Hibernate problems
> >>>
> >>> On Tue, Jun 3, 2008 at 7:38 AM,
> >> <Mattias.Arbin@tietoenator.com> wrote:
> >>>> I have implemented partitioning using inheritance following the
> >>>> proposed solution here (using trigger):
> >>>>
> >>
> http://www.postgresql.org/docs/8.3/interactive/ddl-partitioning.html
> >>>> My problem is that when my Hibernate application inserts to the
> >>>> master table, postgres returns "0 rows affected", which causes
> >> Hibernate to
> >>>> throw an exception since it expects the returned row count to be
> >>>> equal to the number of rows inserted.
> >>>>
> >>>> Is there a solution to this, i.e. to get Postgres to return the
> >>>> correct number of rows inserted to the master table?
> >>> PostgreSQL IS reporting the correct number of rows inserted
> >> into the
> >>> master table.  0.
> >>>
> >>> There's some setting in hibernate that will tell it to
> ignore that
> >>> returned number of rows, but I can't remember it right now.
> >>>
> >>
> >> --
> >> Sent via pgsql-general mailing list
> >> (pgsql-general@postgresql.org) To make changes to your
> subscription:
> >> http://www.postgresql.org/mailpref/pgsql-general
> >>
>
>

pgsql-general by date:

Previous
From: "Leif B. Kristensen"
Date:
Subject: Re: REGEXP_REPLACE woes
Next
From: "Richard Broersma"
Date:
Subject: Re: what gives: SELECT INVALID SELECT STATEMENT TO FORCE ODBC DRIVER TO UNPREPARED STATE