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
>
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 |