Procedure Dialog¶
Use the Procedure dialog to create a procedure; procedures are supported by
PostgreSQL v11+ and EDB Postgres Advanced Server. The Procedure dialog allows
you to implement options of the CREATE PROCEDURE command.
The Procedure dialog organizes the development of a procedure through the
following dialog tabs: General, Definition, Options, Arguments,
Parameters, and Security. The SQL tab displays the SQL code generated by
dialog selections.
Create Procedure dialog - General tab¶
Use the fields in the General tab to identify a procedure:
Use the
Namefield to add a descriptive name for the procedure. The name will be displayed in the ** tree control.Use the drop-down listbox next to
Ownerto select a role.Select the name of the schema in which the procedure will reside from the drop-down listbox in the
Schemafield.Store notes about the procedure in the
Commentfield.
Click the Definition tab to continue.
Create Procedure dialog - Definition tab¶
Use the fields in the Definition tab to define the procedure:
Use the drop-down listbox next to
Languageto select a language. The default isedbspl.Use the fields in the
Argumentssection to define an argument. ClickAddto set parameters and values for the argument:Use the drop-down listbox next to
Data typeto select a data type.Use the drop-down listbox next to
Modeto select a mode. SelectINfor an input parameter; selectOUTfor an output parameter; selectINOUTfor both an input and an output parameter; or, selectVARIADICto specify a VARIADIC parameter.Write a name for the argument in the
Argument Namefield.Specify a default value for the argument in the
Default Valuefield.
Click Add to define another argument; to discard an argument, click the trash
icon to the left of the row and confirm deletion in the Delete Row popup.
Click the Code tab to continue.
Create Procedure dialog - Code tab¶
Use the
Codefield to specify the code that will execute when the procedure is called.
Click the Options tab to continue.
Create Procedure dialog - Options tab¶
Use the fields in the Options tab to describe or modify the behavior of the procedure:
Use the drop-down listbox under
Volatilityto select one of the following.VOLATILEis the default value.VOLATILEindicates that the value can change even within a single table scan, so no optimizations can be made.STABLEindicates that the procedure cannot modify the database, and that within a single table scan it will consistently return the same result for the same argument values, but that its result could change across SQL statements.IMMUTABLEindicates that the procedure cannot modify the database and always returns the same result when given the same argument values.
Move the
Strict?switch to indicate if the procedure always returns NULL whenever any of its arguments are NULL. IfYes, the procedure is not executed when there are NULL arguments; instead a NULL result is assumed automatically. The default isNo.Move the
Security of definer?switch to specify that the procedure is to be executed with the privileges of the user that created it. The default isNo.Use the
Estimated costfield to specify a positive number representing the estimated execution cost for the procedure, in units of cpu_operator_cost. If the procedure returns a set, this is the cost per returned row.Move the
Leak proof?switch to indicate whether the procedure has side effects — it reveals no information about its arguments other than by its return value. The default isNo.
Click the Parameters tab to continue.
Create Procedure dialog - Parameters tab¶
Use the fields in the Parameters tab to specify settings that will be applied when the procedure is invoked:
Use the drop-down listbox next to
Parameter Namein theParameterspanel to select a parameter.Click the
Addbutton to add the variable toNamefield in the table.Use the
Valuefield to specify the value that will be associated with the selected variable. This field is context-sensitive.
Click the Security tab to continue.
Create Procedure dialog - Security tab¶
Use the Security tab to assign privileges and define security labels.
Use the Privileges panel to assign execute privileges for the procedure to a role:
Select the name of the role from the drop-down listbox in the
Granteefield.Click inside the
Privilegesfield. Check the boxes to the left of one or more privileges to grant the selected privilege to the specified user.The current user, who is the default grantor for granting the privilege, is displayed in the
Grantorfield.
Click Add to assign additional privileges; to discard a privilege, click the trash icon to the left of the row and confirm deletion in the Delete Row popup.
Use the Security Labels panel to define security labels applied to the procedure. Click Add to add each security label selection:
Specify a security label provider in the
Providerfield. The named provider must be loaded and must consent to the proposed labeling operation.Specify a a security label in the
Security Labelfield. The meaning of a given label is at the discretion of the label provider. PostgreSQL places no restrictions on whether or how a label provider must interpret security labels; it merely provides a mechanism for storing them.
Click Add to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the Delete Row popup.
Click the SQL tab to continue.
Your entries in the Procedure dialog generate a SQL command (see an example below). Use the SQL tab for review; revisit or switch tabs to make any changes to the SQL command.
Example
The following is an example of the sql command generated by selections made in the Procedure dialog:
Create Procedure dialog - SQL tab¶
The example demonstrates creating a procedure that returns a list of employees from a table named emp. The procedure is a SECURITY DEFINER, and will execute with the privileges of the role that defined the procedure.
Click the
Infobutton (i) to access online help. View context-sensitive help in theTabbed browser, where a new tab displays the PostgreSQL core documentation.Click the
Savebutton to save work.Click the
Cancelbutton to exit without saving work.Click the
Resetbutton to restore configuration parameters.