Re: Updates of SE-PostgreSQL 8.4devel patches (r1403)

Поиск
Список
Период
Сортировка
От Gregory Stark
Тема Re: Updates of SE-PostgreSQL 8.4devel patches (r1403)
Дата
Msg-id 87ab9thpo1.fsf@oxford.xeocode.com
обсуждение исходный текст
Ответ на Re: Updates of SE-PostgreSQL 8.4devel patches (r1403)  ("Robert Haas" <robertmhaas@gmail.com>)
Ответы Re: Updates of SE-PostgreSQL 8.4devel patches (r1403)  ("Robert Haas" <robertmhaas@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: reloptions with a "namespace"
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: A single escape required for log_filename