How can I display the contents of a function?

Started by Thom Brownabout 17 years ago9 messagesgeneral
Jump to latest
#1Thom Brown
thombrown@gmail.com

I would like to see what's in a function. I can do this if I use pgAdmin
III just by clicking on the function, and it appears in the SQL pane
opposite. But how is this done? Is there a command like DESCRIBE FUNCTION
logging.do_stuff; ? And if possible, doing this without psql.

Thanks

Thom

#2Guillaume Lelarge
guillaume@lelarge.info
In reply to: Thom Brown (#1)
Re: How can I display the contents of a function?

Thom Brown a �crit :

I would like to see what's in a function. I can do this if I use pgAdmin
III just by clicking on the function, and it appears in the SQL pane
opposite. But how is this done? Is there a command like DESCRIBE FUNCTION
logging.do_stuff; ? And if possible, doing this without psql.

pgAdmin looks at the prosrc column of the pg_proc catalog. You can do
the same with this query:

SELECT prosrc FROM pg_proc WHERE proname='your function name here';

Regards.

--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com

#3A. Kretschmer
andreas.kretschmer@schollglas.com
In reply to: Thom Brown (#1)
Re: How can I display the contents of a function?

In response to Thom Brown :

I would like to see what's in a function. I can do this if I use pgAdmin III
just by clicking on the function, and it appears in the SQL pane opposite. But
how is this done? Is there a command like DESCRIBE FUNCTION logging.do_stuff;
? And if possible, doing this without psql.

All details about a function are stored in pg_proc. So you can do a
select on this table to retrieve the source-code.

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

#4Igor Katson
descentspb@gmail.com
In reply to: Thom Brown (#1)
Re: How can I display the contents of a function?

Thom Brown wrote:

I would like to see what's in a function. I can do this if I use
pgAdmin III just by clicking on the function, and it appears in the
SQL pane opposite. But how is this done? Is there a command like
DESCRIBE FUNCTION logging.do_stuff; ? And if possible, doing this
without psql.

Thanks

Thom

You can also do
\df+ function_name(args)
in psql

#5Igor Katson
descentspb@gmail.com
In reply to: Thom Brown (#1)
Re: How can I display the contents of a function?

Thom Brown wrote:

I would like to see what's in a function. I can do this if I use
pgAdmin III just by clicking on the function, and it appears in the
SQL pane opposite. But how is this done? Is there a command like
DESCRIBE FUNCTION logging.do_stuff; ? And if possible, doing this
without psql.

Thanks

Thom

You can do
\df+ function_name(arg type, arg type...)
in psql

#6Thom Brown
thombrown@gmail.com
In reply to: A. Kretschmer (#3)
Re: How can I display the contents of a function?

Thanks everyone! I looked around the user-defined functions section of the
documentation, but there wasn't any mention of this. I'm sure others would
find it useful if it were included, or at least referenced to.

Thom

2009/1/19 A. Kretschmer <andreas.kretschmer@schollglas.com>

Show quoted text

In response to Thom Brown :

I would like to see what's in a function. I can do this if I use pgAdmin

III

just by clicking on the function, and it appears in the SQL pane

opposite. But

how is this done? Is there a command like DESCRIBE FUNCTION

logging.do_stuff;

? And if possible, doing this without psql.

All details about a function are stored in pg_proc. So you can do a
select on this table to retrieve the source-code.

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#7A. Kretschmer
andreas.kretschmer@schollglas.com
In reply to: Thom Brown (#6)
Re: How can I display the contents of a function?

In response to Thom Brown :

Thanks everyone! I looked around the user-defined functions section of the
documentation, but there wasn't any mention of this. I'm sure others would
find it useful if it were included, or at least referenced to.

Just for info:

wait for the upcoming new release 8.4, it contains a function called
pg_get_functiondef(). Example:

test=# create or replace function foo(in a int) returns int as $$begin return a*10; end; $$language plpgsql;
CREATE FUNCTION
test=# select pg_get_functiondef('foo'::regproc);
pg_get_functiondef
--------------------------------------------------
CREATE OR REPLACE FUNCTION public.foo(a integer)
RETURNS integer
LANGUAGE plpgsql
AS $function$begin return a*10; end; $function$

(1 row)

http://developer.postgresql.org/pgdocs/postgres/functions-info.html

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

#8Thom Brown
thombrown@gmail.com
In reply to: A. Kretschmer (#7)
Re: How can I display the contents of a function?

Another reason to look forward to 8.4. :)

Does that function return information in an identical way to selecting from
pg_proc?

2009/1/19 A. Kretschmer <andreas.kretschmer@schollglas.com>

Show quoted text

In response to Thom Brown :

Thanks everyone! I looked around the user-defined functions section of

the

documentation, but there wasn't any mention of this. I'm sure others

would

find it useful if it were included, or at least referenced to.

Just for info:

wait for the upcoming new release 8.4, it contains a function called
pg_get_functiondef(). Example:

test=# create or replace function foo(in a int) returns int as $$begin
return a*10; end; $$language plpgsql;
CREATE FUNCTION
test=# select pg_get_functiondef('foo'::regproc);
pg_get_functiondef
--------------------------------------------------
CREATE OR REPLACE FUNCTION public.foo(a integer)
RETURNS integer
LANGUAGE plpgsql
AS $function$begin return a*10; end; $function$

(1 row)

http://developer.postgresql.org/pgdocs/postgres/functions-info.html

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#9A. Kretschmer
andreas.kretschmer@schollglas.com
In reply to: Thom Brown (#8)
Re: How can I display the contents of a function?

In response to Thom Brown :

Another reason to look forward to 8.4. :)

Does that function return information in an identical way to selecting from
pg_proc?

Apparently.

2009/1/19 A. Kretschmer <andreas.kretschmer@schollglas.com>

Please no fullquote below your text, thx.

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net