Re: [HACKERS] Bug in user defined types in postgres?! (fwd)

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"

In response to

Browse pgsql-hackers by date

  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