Re: why can't see the updated value after SPI_execute("update ....", false, 1);

From: sunpeng <bluevaley(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: why can't see the updated value after SPI_execute("update ....", false, 1);
Date: 2010-09-12 20:48:59
Message-ID: AANLkTinmjCnwMHSn82ibYiASdqD9FUG+-DaF1qxNKWkn@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I then added , yet it still doesn't work.

2010/9/12 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>

> sunpeng <bluevaley(at)gmail(dot)com> writes:
> > First I use SPI_execute("update ....
> > bool succ;
> > SPI_connect();
> > int ret = SPI_execute("update ....where uid = 1", false, 1);//later
> will
> > add error processing
> > if (ret == SPI_OK_UPDATE && SPI_processed == 1) {
> > succ = true;
> > }
> > SPI_finish();
>
> > Then I use SPI_execute("select .....where uid = 1", ....
>
> > SPI_connect();
> > int ret = SPI_execute("select .....where uid = 1", true, 1);//later
> will
> > add error processing
> > if (ret == SPI_OK_SELECT && SPI_processed == 1) {
> > HeapTuple tuple;
> > tuple = SPI_tuptable->vals[0];
> > ...
> > datum =
> heap_getattr(tuple,attrno,SPI_tuptable->tupdesc,&isnull);
> > ....
> > }
> > the datum doesn't change, why ?
>
> You're missing a CommandCounterIncrement() call between the two actions.
> If you hadn't passed read_only = true to the second SPI_execute, it
> would have done one for you.
>
> regards, tom lane
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2010-09-12 22:44:26 Re: Huge amount of memory errors with libpq
Previous Message Eric Lukather 2010-09-12 19:57:54 pgcrypto pgp_pub_decrypt() fails with secret key password