How to determine if a function exists

From: "lmanorders" <lmanorders(at)gmail(dot)com>
To: <pgsql-novice(at)postgresql(dot)org>
Subject: How to determine if a function exists
Date: 2012-09-05 21:59:55
Message-ID: 8310E014117E4AF990DC0A1745A7CB4B@LynnPC
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

I'm attempting to determine if a stored procedure exists. If it doesn't, then I want to create it. I'm developing in C++ using the libpq interface. I found the following suggestion in the docs to determine if a function exists or not. I tried creating what I think is an identical query in pgAdmin and it seems to work ok. Can anyone tell me why the following always returns PGRES_TUPLE_OK, whether the function exists or not?

strcpy(command, "SELECT * FROM pg_proc WHERE proname = 'getdetailamtsacct'");
pqRes = PQexec(conn, command);
if (PQresultStatus(pqRes) != PGRES_TUPLES_OK)
{
// translate the status code into a string
pqExSt = PQresultStatus(pqRes);
strcpy(result, PQresStatus(pqExSt));
// display the status message
...
exist = false; // table doesn't exist
}

if (!exist)
{
// create the function (stored procedure)
}

Is there a better way to determine if a function already exists?

Thanks, Lynn

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Tom Lane 2012-09-05 22:10:49 Re: How to determine if a function exists
Previous Message Steve Crawford 2012-09-05 18:56:14 Re: TimeZone parameter in postgresql.conf