From: | Tom Ivar Helbekkmo <tih(at)nhh(dot)no> |
---|---|
To: | Petr Danecek <petr(at)ics(dot)cas(dot)cz> |
Cc: | hackers(at)postgreSQL(dot)org |
Subject: | Re: [HACKERS] Bug in user defined types in postgres?! (fwd) |
Date: | 1999-02-15 07:12:49 |
Message-ID: | 86d83c87im.fsf@athene.nhh.no |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Petr Danecek <petr(at)ics(dot)cas(dot)cz> writes:
> #include <stdio.h>
> #include <string.h>
> #include <malloc.h>
You can't use malloc() -- you have to use PostgreSQL's own palloc().
So you want to replace that "#include <malloc.h>" with:
#include <postgres.h>
#include <utils/palloc.h>
So, the actual allocation in mytype_in() must be changed:
> mytype *
> mytype_in (char *str)
> {
> mytype *ret;
>
> ret = malloc (sizeof(mytype));
Here, the call should be to palloc() instead of malloc(), thus:
ret = palloc (sizeof(mytype));
The reason for this is that PostgreSQL does its own memory management,
for efficiency reasons, and if you suddenly start calling malloc(),
you screw up its logic.
-tih
--
Popularity is the hallmark of mediocrity. --Niles Crane, "Frasier"
From | Date | Subject | |
---|---|---|---|
Next Message | Jan Wieck | 1999-02-15 11:27:40 | Re: [HACKERS] Failures in 'rules' regression test |
Previous Message | Vadim Mikheev | 1999-02-15 07:06:40 | Re: [HACKERS] bushy plans |