Bug in user defined types in postgres?! (fwd)

Поиск
Список
Период
Сортировка
От Petr Danecek
Тема Bug in user defined types in postgres?! (fwd)
Дата
Msg-id Pine.LNX.3.96.990214210144.25498A-100000@linus.ics.cas.cz
обсуждение исходный текст
Список pgsql-hackers
Hallo,

I am having enormous troubles with user defined types in langugae c in
postgres. Do you know what am I doing wrong? I am afraid there is a
bug in postgres.

Look at this:

File testdb.c:
---------------------
#include <stdio.h>
#include <string.h>
#include <malloc.h>

typedef struct _mytype {int a;int b;
} mytype;

mytype *
mytype_in (char *str)
{mytype *ret;
ret = malloc (sizeof(mytype));ret->a = 1;ret->b = 2;return (ret);
}

char *
mytype_out (mytype *mt)
{return (strdup("9,9"));
}

-----------------------------

You can see that this type is good for nothing.
(Except for demonstrational purpose.)

This C-code I compile:gcc -fPIC -c testdb.cld -G -Bdynamic -o testdb.so testdb.o


And then run these queries:CREATE FUNCTION mytype_in (opaque)RETURNS mytypeAS '/localpath/testdb.so'LANGUAGE 'c';
CREATE FUNCTION mytype_out (opaque)RETURNS opaqueAS '/localpath/testdb.so'LANGUAGE 'c';
CREATE TYPE mytype (internallength = 8,input = mytype_in,output = mytype_out);
CREATE TABLE pok (x mytype, txt varchar);
insert into pok (x,txt) values ('Anything','Anything');

------------

You will see that so far goes everything fine.
After typing "Select * from pok" we get core dump (in earlier versions of
psql) or an infinite loop in brand new versions.

You will also find that when the user defined type goes in the 'pok' table
as the last one, everything will work.


I am running postgres 6.4.2 on SunOS 5.5.1.

Any ideas?
Your help will be much appreciated.

Petr Danecek













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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: bushy plans
Следующее
От: Petr Danecek
Дата:
Сообщение: Bug in user defined types in postgres?!