Обсуждение: An strftime function, and function name question

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

An strftime function, and function name question

От
Christopher Masto
Дата:
First of all, I have attached a simple-minded library I created to wrap
the C strftime() function, since we needed some better date formatting
and it seemed less cumbersome to do it on the server end.  I gave up C
for Perl a couple of years ago, so I may be a bit rusty, but I tried to
be careful with the buffers and strings.

In any case, it works for my purposes.  I did also create a new typecast:

CREATE FUNCTION int4 (timestamp) RETURNS int4 AS
  'SELECT date_part(''epoch'', $1)::int4;' LANGUAGE 'sql';

because I wanted to be able to pass the Unix epoch time in, but I
didn't know what timestamps are internally.

My question is about naming.  I would like to be able to call this
function 'strftime'.  I've never created libraries before so it may
just be a lack of linker knowledge, but I couldn't see how to do that.
If I call it strftime, it obviously conflicts with the real strftime().
It would be nice if there were something like:

CREATE FUNCTION strftime(int4, varchar) RETURNS varchar AS
  '/usr/local/pgsql/lib/strftime.so' LANGUAGE 'c'
    USING C FUNCTION 'c_strftime';

I.e. some way to say "here's the name of the function in the library".

If there is, I didn't find it.
--
Christopher Masto         Senior Network Monkey      NetMonger Communications
chris@netmonger.net        info@netmonger.net        http://www.netmonger.net

Free yourself, free your machine, free the daemon -- http://www.freebsd.org/

Вложения

Re: An strftime function, and function name question

От
Tom Lane
Дата:
Christopher Masto <chris@netmonger.net> writes:
> It would be nice if there were something like:

> CREATE FUNCTION strftime(int4, varchar) RETURNS varchar AS
>   '/usr/local/pgsql/lib/strftime.so' LANGUAGE 'c'
>     USING C FUNCTION 'c_strftime';

> I.e. some way to say "here's the name of the function in the library".

See the CREATE FUNCTION reference page,
http://www.postgresql.org/users-lounge/docs/7.0/postgres/sql-createfunction.htm
concerning link symbols that are different from the SQL name of the
function.

If you're using something older than 7.0, time to upgrade ...
        regards, tom lane


Re: An strftime function, and function name question

От
Christopher Masto
Дата:
On Mon, Feb 12, 2001 at 10:38:26AM -0500, Tom Lane wrote:
> Christopher Masto <chris@netmonger.net> writes:
> > It would be nice if there were something like:
> 
> > CREATE FUNCTION strftime(int4, varchar) RETURNS varchar AS
> >   '/usr/local/pgsql/lib/strftime.so' LANGUAGE 'c'
> >     USING C FUNCTION 'c_strftime';
> 
> > I.e. some way to say "here's the name of the function in the library".
> 
> See the CREATE FUNCTION reference page,
> http://www.postgresql.org/users-lounge/docs/7.0/postgres/sql-createfunction.htm
> concerning link symbols that are different from the SQL name of the
> function.

Thank you.  That was exactly what I was looking for.. I don't know
how I missed it.  I must have been reading the wrong manual.
-- 
Christopher Masto         Senior Network Monkey      NetMonger Communications
chris@netmonger.net        info@netmonger.net        http://www.netmonger.net

Free yourself, free your machine, free the daemon -- http://www.freebsd.org/