Help with adding C-Language Functions

From: Seamus Thomas Carroll <carrolls(at)cpsc(dot)ucalgary(dot)ca>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: Help with adding C-Language Functions
Date: 2005-02-10 03:02:05
Message-ID: Pine.LNX.4.60.0502091954340.5503@frost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hi,

I am trying to add a C-Language Function. I have created a small example
in file BlackboardFunctions.c.

#include <postgres.h>
#include <fmgr.h>

PG_FUNCTION_INFO_V1(add_one);

Datum
add_one(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);

PG_RETURN_INT32(arg + 1);
}

The make file:
make:
cc -fpic -c BlackboardFunctions.c -I /home/grads/carrolls/source/postgresql-7.4.5/src/include/
cc -shared -o BlackboardFunctions.so BlackboardFunctions.o

Everything compiles nicely and when i try to add the function using:
Blackboard=# CREATE FUNCTION add_one(integer) RETURNS integer
Blackboard-# AS '/home/grads/carrolls/gradstudies/implementation/BlackboardFunctions/BlackboardFunctions', 'add_one'
Blackboard-# LANGUAGE C STRICT;

I get the following error:
ERROR: could not find function "add_one" in file
"/home/grads/carrolls/gradstudies/implementation/BlackboardFunctions/BlackboardFunctions.so"

A grep of BlackboardFunction.so finds add_one.
I figure i must be doing something obviously wrong but for the life of me
i cant figure out what that might bt. Can anyone recommend a course
of action?

Thank you,

Seamus

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Seamus Thomas Carroll 2005-02-10 08:17:14 Re: Help with adding C-Language Functions
Previous Message Goulet, Dick 2005-02-09 13:46:22 Re: Can you bind output variables?