Search This Blog

Friday, July 21, 2017

Postgres SQL: Functions


You can find basic information regarding a function with the command \df
zabbixdb=> \df function_name                                 List of functions
 Schema |      Name     | Result data type | Argument data types |  Type
--------+------------------------+------------------+-----------------------
 public | function_name | trigger          |                     | trigger


You can see the source code with this query:
testdb=> select prosrc from pg_proc where proname='function_or_procedure_name';<br />

Execute a VOID function:
testdb=> select functionName();

Execute a VOID function with named parameters:
testdb=> select functionName(param1:='valueText', param2:=valueInt);


If you need more information, here is the pg_proc table:
testdb=> \d+ pg_proc
                             Table "pg_catalog.pg_proc"
     Column      |     Type     | Modifiers | Storage  | Stats target | Description
-----------------+--------------+-----------+----------+--------------+-------------
 proname         | name         | not null  | plain    |              |
 pronamespace    | oid          | not null  | plain    |              |
 proowner        | oid          | not null  | plain    |              |
 prolang         | oid          | not null  | plain    |              |
 procost         | real         | not null  | plain    |              |
 prorows         | real         | not null  | plain    |              |
 provariadic     | oid          | not null  | plain    |              |
 protransform    | regproc      | not null  | plain    |              |
 proisagg        | boolean      | not null  | plain    |              |
 proiswindow     | boolean      | not null  | plain    |              |
 prosecdef       | boolean      | not null  | plain    |              |
 proleakproof    | boolean      | not null  | plain    |              |
 proisstrict     | boolean      | not null  | plain    |              |
 proretset       | boolean      | not null  | plain    |              |
 provolatile     | "char"       | not null  | plain    |              |
 pronargs        | smallint     | not null  | plain    |              |
 pronargdefaults | smallint     | not null  | plain    |              |
 prorettype      | oid          | not null  | plain    |              |
 proargtypes     | oidvector    | not null  | plain    |              |
 proallargtypes  | oid[]        |           | extended |              |
 proargmodes     | "char"[]     |           | extended |              |
 proargnames     | text[]       |           | extended |              |
 proargdefaults  | pg_node_tree |           | extended |              |
 prosrc          | text         |           | extended |              |
 probin          | text         |           | extended |              |
 proconfig       | text[]       |           | extended |              |
 proacl          | aclitem[]    |           | extended |              |
Indexes:
    "pg_proc_oid_index" UNIQUE, btree (oid)
    "pg_proc_proname_args_nsp_index" UNIQUE, btree (proname, proargtypes, pronamespace)
Has OIDs: yes

No comments:

Post a Comment