Re: [HACKERS] Bug in user defined types in postgres?! (fwd) - Mailing list pgsql-hackers

From Tom Ivar Helbekkmo
Subject Re: [HACKERS] Bug in user defined types in postgres?! (fwd)
Date
Msg-id 86d83c87im.fsf@athene.nhh.no
Whole thread Raw
In response to Bug in user defined types in postgres?! (fwd)  (Petr Danecek <petr@ics.cas.cz>)
List pgsql-hackers
Petr Danecek <petr@ics.cas.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"


pgsql-hackers by date:

Previous
From: Vadim Mikheev
Date:
Subject: Re: [HACKERS] bushy plans
Next
From: Michael Meskes
Date:
Subject: Re: [HACKERS] Source code cleanup