Re: writing custom data type

Поиск
Список
Период
Сортировка
От Arthur Chan
Тема Re: writing custom data type
Дата
Msg-id CAAP2MxLMcQPjKsKxJY7QMJxRvKp-EFyLmfPeQYcKx0JQmNRzFQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: writing custom data type  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-novice
Hey Tom,

Thanks for the help. It was what you said. I had to start a new psql session. And yea, i'm pretty sure objdump does not demangle names. It would be a nice feature if they had the demangled name in parens or something, and that'd probably require support from glibc and gcc, no?

-Arthur


On Fri, Feb 1, 2013 at 12:58 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Arthur Chan <achan@comprehend.com> writes:
> I've been having trouble writing my own custom datatype for PG. when I do
> my `CREATE FUNCTION` call, it fails with:

> resultsets=# CREATE FUNCTION fuzzytime_in(cstring)
>        RETURNS fuzzytime
>        AS 'fuzzytimetype'
>        LANGUAGE C IMMUTABLE STRICT;
> NOTICE:  return type fuzzytime is only a shell
> ERROR:  could not find function "fuzzytime_in" in file
> "/usr/lib/postgresql/9.1/lib/fuzzytimetype.so"

> now I checked my shared lib, and surely enough, it's there

> $ objdump -t /usr/lib/postgresql/9.1/lib/fuzzytimetype.so
> ...
> 00000000000018b0 g     F .text 0000000000000070              fuzzytime_in
> ...

> So what gives? The code has PG_MODULE_MAGIC, and I'm
> calling PG_FUNCTION_INFO_V1(fuzzytime_in);

Huh, looks like it should work.  I can think of a couple of gotchas:

(1) If the library is already loaded, CREATE FUNCTION doesn't reload it.
Maybe you have an old image of the .so in memory, which doesn't contain
the function?  Try starting a fresh psql session.

(2) Maybe you compiled the function as C++, so it has a mangled name?
This theory requires that objdump automatically de-mangles names, which
I don't know for sure one way or the other.

                        regards, tom lane

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

Предыдущее
От: Michael Swierczek
Дата:
Сообщение: Re: writing custom data type
Следующее
От: anderson earley
Дата:
Сообщение: hello!!!