BUG #16268: SPI_getvalue requires IsTransactionState but TextDatumGetCString of SPI_getbinval - not!

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #16268: SPI_getvalue requires IsTransactionState but TextDatumGetCString of SPI_getbinval - not!
Дата
Msg-id 16268-3d91474b3e57a5bf@postgresql.org
обсуждение исходный текст
Ответы Re: BUG #16268: SPI_getvalue requires IsTransactionState butTextDatumGetCString of SPI_getbinval - not!  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      16268
Logged by:          RekGRpth
Email address:      rekgrpth@gmail.com
PostgreSQL version: 12.2
Operating system:   Docker alpine edge
Description:

const char *data = SPI_getvalue(SPI_tuptable->vals[row],
SPI_tuptable->tupdesc, SPI_fnumber(SPI_tuptable->tupdesc, "data"));

raise TRAP: FailedAssertion("!(IsTransactionState())", File: "catcache.c",
Line: 1213)

but

const char *data = SPI_getvalue_my(SPI_tuptable->vals[row],
SPI_tuptable->tupdesc, SPI_fnumber(SPI_tuptable->tupdesc, "data"));

where

char *SPI_getvalue_my(HeapTuple tuple, TupleDesc tupdesc, int fnumber) {
    bool isnull;
    Datum datum = SPI_getbinval(tuple, tupdesc, fnumber, &isnull);
    if (isnull) return NULL;
    return TextDatumGetCString(datum);
}

works ok


В списке pgsql-bugs по дате отправления:

Предыдущее
От: Artur Zakirov
Дата:
Сообщение: Re: Full text search bug ('russian' regconfig)
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: BUG #16268: SPI_getvalue requires IsTransactionState butTextDatumGetCString of SPI_getbinval - not!