diff options
Diffstat (limited to 'sql/serenitas.c')
| -rw-r--r-- | sql/serenitas.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sql/serenitas.c b/sql/serenitas.c index 1a68f957..0cb2d417 100644 --- a/sql/serenitas.c +++ b/sql/serenitas.c @@ -304,7 +304,7 @@ update_attach(PG_FUNCTION_ARGS) return PointerGetDatum(rettuple); else orig_detach = DatumGetInt16(SPI_getbinval(rettuple, tupdesc, SPI_fnumber(tupdesc, "orig_detach"), &isnull)); - char* sql_query = "SELECT indexfactor/100, cumulativeloss " + char* sql_query = "SELECT indexfactor, cumulativeloss " "FROM index_factors " "WHERE redindexcode=$1"; int nargs = 1; @@ -312,14 +312,14 @@ update_attach(PG_FUNCTION_ARGS) char nulls[1] = " "; Datum values[1]; int ret; - values[0] = SPI_getbinval(rettuple, tupdesc, SPI_fnumber(tupdesc, "security_desc"), &isnull); + values[0] = SPI_getbinval(rettuple, tupdesc, SPI_fnumber(tupdesc, "security_id"), &isnull); if (SPI_connect() == SPI_ERROR_CONNECT) { elog(ERROR, "something wrong happened"); } ret = SPI_execute_with_args(sql_query, nargs, argtypes, values, nulls, true, 1); double factor, cumloss; - if (ret == SPI_OK_SELECT && SPI_tuptable != NULL) { + if (ret == SPI_OK_SELECT && SPI_tuptable != NULL && SPI_processed == 1) { SPITupleTable *tuptable = SPI_tuptable; TupleDesc tupdesc = tuptable->tupdesc; bool isnull; @@ -328,7 +328,7 @@ update_attach(PG_FUNCTION_ARGS) cumloss = DatumGetFloat8(SPI_getbinval(tuple, tupdesc, 2, &isnull)); elog(INFO, "%f %f", factor, cumloss); } else { - elog(ERROR, "something wrong happened"); + return PointerGetDatum(rettuple); } SPI_finish(); double detach, attach; |
