Re: Updates of SE-PostgreSQL 8.4devel patches (r1403) - Mailing list pgsql-hackers

From Gregory Stark
Subject Re: Updates of SE-PostgreSQL 8.4devel patches (r1403)
Date
Msg-id 87ab9thpo1.fsf@oxford.xeocode.com
Whole thread Raw
In response to Re: Updates of SE-PostgreSQL 8.4devel patches (r1403)  ("Robert Haas" <robertmhaas@gmail.com>)
Responses Re: Updates of SE-PostgreSQL 8.4devel patches (r1403)  ("Robert Haas" <robertmhaas@gmail.com>)
List pgsql-hackers
"Robert Haas" <robertmhaas@gmail.com> writes:

> Just out of curiosity, does C89, or whatever standard we follow, allow this?
>
> int
> somefunc(int x)
> {
>     int foo[x];
>     /* use foo[] for scratch space */
> }

It's not in C89 but look up "alloca". 

We don't use it anywhere in postgres currently so it's kind of unlikely we
would start now.

I think C99 does allow what you typed, and I think gcc has an extension to
allow it too.

> Obviously this is a bad plan if x can be a big number because you
> might crash your stack, but suppose we know that's not an issue?  It
> seems a shame to have to do palloc/pfree in a situation like this.

palloc really isn't that expensive, unless you're allocating tons of tiny
objects or you're in a tight loop it's not worth worrying about.

--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com Ask me about EnterpriseDB's Slony Replication
support!


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: reloptions with a "namespace"
Next
From: Peter Eisentraut
Date:
Subject: Re: A single escape required for log_filename