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 ?