Обсуждение: AW: Coping with 'C' vs 'newC' function language namesh

Поиск
Список
Период
Сортировка

AW: Coping with 'C' vs 'newC' function language namesh

От
Zeugswetter Andreas SB
Дата:
> > To answer another misconception that I saw in this thread:
> > 
> > : The old language names "internal" and "C" will continue to refer to
> > : functions with the old calling convention.  We should deprecate
> > : old-style functions because of their portability problems, but the
> > : support for them will only be one small function handler routine,
> > : so we can leave them in place for as long as necessary.
> 
> My question is can we drop newC and use just plain C in 7.2 or 7.3?

Has anybody had time to look at how this is done in DB/2, Oracle ? Philip ?

In Informix there is an additional keyword "parameter style".

Thus you have:
create function foo (a int, b int) return{s|ing} int
external name '/path/libmod.so(symbol)' language C
[parameter style informix] [not variant];

We could have "parameter style postgresql" and map that to 
some arbitrary string that would not be something the user sees.

As you see this is really very close to what we have or want
and I am really unhappy that there has been no effort at all 
to look at what others do. Not that we want to copy some stupidity,
but if it is sane .... These are also the companies that 
have the most influence on future ANSI specs, and thus if we keep 
close we will have a better position to stay conformant.

Actually my proposal would be to not advertise "newC" in 7.1 and do
some more research in that area until we have a solid and maybe compatible
interface that also makes the missing features possible 
(multiple columns and rows for return, enter the function more than once
to retrieve only part of the result if it consists of many rows).

Andreas


Re: AW: Coping with 'C' vs 'newC' function language namesh

От
Bruce Momjian
Дата:
> Actually my proposal would be to not advertise "newC" in 7.1 and do
> some more research in that area until we have a solid and maybe compatible
> interface that also makes the missing features possible 
> (multiple columns and rows for return, enter the function more than once
> to retrieve only part of the result if it consists of many rows).

My problem with newC is that I think it is going to cause confusing by
people who create new-style functions and call the language "C".  I
recommend making our current code "C" style, and calling pre-7.1
functions "C70", that way, we can still enable old functions to work,
they just have to use "C70" to make them work, and all our new code is
the clean "C" type.

Comments?

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026