Re: bug in Prepared statement with DELETE RETURNING and rule on view - Mailing list pgsql-bugs

From Amit Kapila
Subject Re: bug in Prepared statement with DELETE RETURNING and rule on view
Date
Msg-id 005501ce5b7c$a9d56550$fd802ff0$@kapila@huawei.com
Whole thread Raw
In response to bug in Prepared statement with DELETE RETURNING and rule on view  (Brice André <brice@famille-andre.be>)
Responses Re: bug in Prepared statement with DELETE RETURNING and rule on view  (Amit Kapila <amit.kapila@huawei.com>)
List pgsql-bugs
On Tuesday, May 28, 2013 1:28 PM Brice Andr=E9 wrote:

I shall look into it today in later half of the day.
> Dear Amit,
>=20
> Thanks for your answer.
>=20
> I performed the same test as you and I get the same result (on my
> linux server, debian, postgresql 8.4).
>=20
> Maybe the problem is related to libpq ?
>=20
> Did you tried the C code provided to see if you can reproduce the
> problem ?
>=20
> Regards,
> Brice
>=20
>=20
> 2013/5/28 Amit Kapila <amit.kapila@huawei.com>:
> > On Tuesday, May 28, 2013 12:39 AM Brice Andr=E9 wrote:
> >> Dear all,
> >>
> >> I found what I really think is a bug in the postgresql 8.4.
> >>
> >> I have an sql database structure in which a real table has a column
> >> that is used to mark the entries as deleted without really deleting
> >> them. Then, I have a view that is hiding this to the users, with
> proper
> >> rules that perform real actions on the table. So, a ON DELETE rule
> on
> >> this view is performing an UPDATE which marks the rows as delete
> >> without deleting them. The view is hiding the rows tagged as
> deleted.
> >>
> >> This code is working from several years and I have a web-service
> that
> >> performs several actions on top of this database. Those actions
> include
> >> a "DELETE ... RETURNING ..." command on the view. This web-service
> was
> >> implemented by a php script that did not use any prepared =
statement,
> >> and everything was working properly.
> >>
> >> I had performance issue with this solution and I decided to rewrite
> the
> >> service in C++, and to use prepared statements. The SQL commands =
are
> >> exactly the same, but they are now executed from a C++ application
> >> using libpq, and they use prepared statements.
> >
> > I had tried in latest 9.3 code with psql using prepared statements
> and it
> > worked fine, please see result below.
> > I shall check your libpq application code as well, but in the mean
> time can
> > you please verify whether the below works for you on 8.4 (I don't
> have 8.4
> > setup).
> >
> >
> > postgres=3D> prepare t1plan (int,int) AS Delete from v1 where c1
> between $1
> > and $2
> >  returning c1,deleted;
> > PREPARE
> > postgres=3D> Execute t1plan(10,90);
> >  c1 | deleted
> > ----+---------
> >  10 | t
> >  11 | t
> >  12 | t
> >  13 | t
> >  14 | t
> >  15 | t
> >  16 | t
> >  17 | t
> >  18 | t
> >  19 | t
> >  20 | t
> >  21 | t
> >  22 | t
> >  23 | t
> >  24 | t
> >  25 | t
> >  26 | t
> >  27 | t
> >  28 | t
> >  29 | t
> >  30 | t
> >  31 | t
> >  32 | t
> >  33 | t
> >  34 | t
> >  35 | t
> >  36 | t
> >  37 | t
> >  38 | t
> >  39 | t
> >  40 | t
> >  41 | t
> >  42 | t
> >  43 | t
> >  44 | t
> >  45 | t
> >  46 | t
> >  47 | t
> >  48 | t
> >  49 | t
> >  50 | t
> >  51 | t
> >  52 | t
> >  53 | t
> >  54 | t
> >  55 | t
> >  56 | t
> >  57 | t
> >  58 | t
> >  59 | t
> >  60 | t
> >  61 | t
> >  62 | t
> >  63 | t
> >  64 | t
> >  65 | t
> >  66 | t
> >  67 | t
> >  68 | t
> >  69 | t
> >  70 | t
> >  71 | t
> >  72 | t
> >  73 | t
> >  74 | t
> >  75 | t
> >  76 | t
> >  77 | t
> >  78 | t
> >  79 | t
> >  80 | t
> >  81 | t
> >  82 | t
> >  83 | t
> >  84 | t
> >  85 | t
> >  86 | t
> >  87 | t
> >  88 | t
> >  89 | t
> >  90 | t
> > (81 rows)
> >
> >
> > DELETE 0
> >
> > With Regards,
> > Amit Kapila.
> >

pgsql-bugs by date:

Previous
From: Guillaume Lelarge
Date:
Subject: Re: bug in Prepared statement with DELETE RETURNING and rule on view
Next
From: Peter Eisentraut
Date:
Subject: Re: BUG #7659: LDAP auth does not search the subtree