Crashing on insert to GIN index

Поиск
Список
Период
Сортировка
От Jack Orenstein
Тема Crashing on insert to GIN index
Дата
Msg-id CAGNxcav9xn41iTRgesYVyyOmhHF3a8ffaMRf7K7v4GWRPdvYdA@mail.gmail.com
обсуждение исходный текст
Ответы Re: Crashing on insert to GIN index  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
I am defining a new type, FooBar, and trying to create a GIN index for it. Everything is working well without the index. FooBar values are getting into a table, and being retrieved and selected correctly. But I'm getting a crash when I add a GIN index on a column of type FooBar.

Here is the operator class:

create operator class foobar_ops
default for type foobar using gin
as
        operator 1 @@,
        function 1 foobar_cmp(bigint, bigint),
        function 2 foobar_item_to_keys(foobar, internal),
        function 3 foobar_query_to_keys(foobar, internal, int2, internal, internal),
        function 4 foobar_match(internal, int2, anyelement, int4, internal, internal),
        function 5 foobar_partial_match(foobar, foobar, int2, internal);


Here is the postgres function for extracting keys from FooBar values:

create function foobar_item_to_keys(foobar, internal) returns internal
as '$libdir/foobar'
language C immutable strict parallel safe;


And the implementation:

Datum foobar_item_to_keys(PG_FUNCTION_ARGS)
{
    FooBar* foobar = (FooBar*) DatumGetPointer(PG_GETARG_DATUM(0));
    int32* n_keys = (int32*) PG_GETARG_POINTER(1);
    int64_t* keys = (int64_t*) palloc(sizeof(int64_t));
    *n_keys = 1;
    keys[0] = foobar->key0;
    PG_RETURN_POINTER(keys);
}

(Eventually there will be multiple keys, so it really does need to be a GIN index.)

I have used ereport debugging to prove that the FooBar delivered into foobar_item_to_keys is correct, and that the PG_RETURN_POINTER statement is being reached.

I have been reading the Postgres docs, and comparing my code to the examples in contrib, and cannot see what I'm doing wrong. Can anyone see a problem in what I've described? Or point me in the right direction to debug this problem?

Thanks.

Jack Orenstein

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

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: Possible trigger bug? function call argument literalised
Следующее
От: Thiemo Kellner
Дата:
Сообщение: Re: Possible trigger bug? function call argument literalised