diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 646cfca401aa77730d749503830fd42d054c9b00..16a8ee3212834d9eaf1d76259af1833e798d2151 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -414,7 +414,10 @@ SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber) SPI_result = 0; if (tuple->t_natts < fnumber || fnumber <= 0) + { + SPI_result = SPI_ERROR_NOATTRIBUTE; return (NULL); + } val = heap_getattr(tuple, InvalidBuffer, fnumber, tupdesc, &isnull); if (isnull) @@ -437,7 +440,10 @@ SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool * isnull) *isnull = true; SPI_result = 0; if (tuple->t_natts < fnumber || fnumber <= 0) + { + SPI_result = SPI_ERROR_NOATTRIBUTE; return ((Datum) NULL); + } val = heap_getattr(tuple, InvalidBuffer, fnumber, tupdesc, isnull);