/execute/proc

URL: http://<db.host>:<db.port>/execute/proc

Executes a proc. This endpoint is asynchronous and does not wait for the proc to complete before returning.

If the proc being executed is distributed, input parameter input_table_names & input parameter input_column_names may be passed to the proc to use for reading data, and input parameter output_table_names may be passed to the proc to use for writing data.

If the proc being executed is non-distributed, these table parameters will be ignored.

Input Parameter Description

NameTypeDescription
proc_namestringName of the proc to execute. Must be the name of a currently existing proc.
paramsmap of string to stringsA map containing named parameters to pass to the proc. Each key/value pair specifies the name of a parameter and its value. The default value is an empty map ( {} ).
bin_paramsmap of string to bytesA map containing named binary parameters to pass to the proc. Each key/value pair specifies the name of a parameter and its value. The default value is an empty map ( {} ).
input_table_namesarray of stringsNames of the tables containing data to be passed to the proc. Each name specified must be the name of a currently existing table, in [schema_name.]table_name format, using standard name resolution rules. If no table names are specified, no data will be passed to the proc. This parameter is ignored if the proc has a non-distributed execution mode. The default value is an empty array ( [] ).
input_column_namesmap of string to arrays of stringsMap of table names from input parameter input_table_names to lists of names of columns from those tables that will be passed to the proc. Each column name specified must be the name of an existing column in the corresponding table. If a table name from input parameter input_table_names is not included, all columns from that table will be passed to the proc. This parameter is ignored if the proc has a non-distributed execution mode. The default value is an empty map ( {} ).
output_table_namesarray of stringsNames of the tables to which output data from the proc will be written, each in [schema_name.]table_name format, using standard name resolution rules and meeting table naming criteria. If a specified table does not exist, it will automatically be created with the same schema as the corresponding table (by order) from input parameter input_table_names, excluding any primary and shard keys. If a specified table is a non-persistent result table, it must not have primary or shard keys. If no table names are specified, no output data can be returned from the proc. This parameter is ignored if the proc has a non-distributed execution mode. The default value is an empty array ( [] ).
optionsmap of string to strings

Optional parameters. The default value is an empty map ( {} ).

Supported Parameters (keys)Parameter Description
cache_inputA comma-delimited list of table names from input parameter input_table_names from which input data will be cached for use in subsequent calls to /execute/proc with the use_cached_input option. Cached input data will be retained until the proc status is cleared with the clear_complete option of /show/proc/status and all proc instances using the cached data have completed. The default value is ''.
use_cached_inputA comma-delimited list of run IDs (as returned from prior calls to /execute/proc) of running or completed proc instances from which input data cached using the cache_input option will be used. Cached input data will not be used for any tables specified in input parameter input_table_names, but data from all other tables cached for the specified run IDs will be passed to the proc. If the same table was cached for multiple specified run IDs, the cached data from the first run ID specified in the list that includes that table will be used. The default value is ''.
run_tagA string that, if not empty, can be used in subsequent calls to /show/proc/status or /kill/proc to identify the proc instance. The default value is ''.
max_output_linesThe maximum number of lines of output from stdout and stderr to return via /show/proc/status. If the number of lines output exceeds the maximum, earlier lines are discarded. The default value is '100'.
execute_at_startup

If true, an instance of the proc will run when the database is started instead of running immediately. The output parameter run_id can be retrieved using /show/proc and used in /show/proc/status. The default value is false. The supported values are:

  • true
  • false
execute_at_startup_asSets the alternate user name to execute this proc instance as when execute_at_startup is true. The default value is ''.

Output Parameter Description

The GPUdb server embeds the endpoint response inside a standard response structure which contains status information and the actual response to the query. Here is a description of the various fields of the wrapper:

NameTypeDescription
statusString'OK' or 'ERROR'
messageStringEmpty if success or an error message
data_typeString'execute_proc_response' or 'none' in case of an error
dataStringEmpty string
data_strJSON or String

This embedded JSON represents the result of the /execute/proc endpoint:

NameTypeDescription
run_idstringThe run ID of the running proc instance. This may be passed to /show/proc/status to obtain status information, or /kill/proc to kill the proc instance.
infomap of string to stringsAdditional information.

Empty string in case of an error.