SHOW PROCEDURES

This section explains the SHOW PROCEDURES command.

Listing the available procedures can be done with SHOW PROCEDURES.

The command SHOW PROCEDURES returns only the default output. For a full output use the optional YIELD command. Full output: SHOW PROCEDURES YIELD *.

This command will produce a table with the following columns:

Table 1. List procedures output
Column Description

name

The name of the procedure. Default Output

description

The procedure description. Default Output

mode

The procedure mode, for example READ or WRITE. Default Output

worksOnSystem

Whether the procedure can be run on the system database or not. Default Output

signature

The signature of the procedure.

argumentDescription

List of the arguments for the procedure, as map of strings with name, type, default, and description.

returnDescription

List of the returned values for the procedure, as map of strings with name, type, and description.

admin

true if this procedure is an admin procedure.

rolesExecution

List of roles permitted to execute this procedure. Is null without the SHOW ROLE privilege.

rolesBoostedExecution

List of roles permitted to use boosted mode when executing this procedure. Is null without the SHOW ROLE privilege.

option

Map of extra output, e.g. if the procedure is deprecated.

Syntax

The syntax descriptions use the style from access control.

List all procedures
SHOW PROCEDURE[S]
[YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

When using the RETURN clause, the YIELD clause is mandatory and must not be omitted.

List procedures that the current user can execute
SHOW PROCEDURE[S] EXECUTABLE [BY CURRENT USER]
[YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

When using the RETURN clause, the YIELD clause is mandatory and must not be omitted.

List procedures that the specified user can execute
SHOW PROCEDURE[S] EXECUTABLE BY username
[YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

Requires the privilege SHOW USER. This command cannot be used for LDAP users.

When using the RETURN clause, the YIELD clause is mandatory and must not be omitted.

Listing all procedures

To list all available procedures with the default output columns, the SHOW PROCEDURES command can be used. If all columns are required, use SHOW PROCEDURES YIELD *.

Query
SHOW PROCEDURES
Table 2. Result
name description mode worksOnSystem

"db.awaitIndex"

"Wait for an index to come online (for example: CALL db.awaitIndex("MyIndex", 300))."

"READ"

true

"db.awaitIndexes"

"Wait for all indexes to come online (for example: CALL db.awaitIndexes(300))."

"READ"

true

"db.checkpoint"

"Initiate and wait for a new check point, or wait any already on-going check point to complete. Note that this temporarily disables the `dbms.checkpoint.iops.limit` setting in order to make the check point complete faster. This might cause transaction throughput to degrade slightly, due to increased IO load."

"DBMS"

true

"db.clearQueryCaches"

"Clears all query caches."

"DBMS"

true

"db.createLabel"

"Create a label"

"WRITE"

false

"db.createProperty"

"Create a Property"

"WRITE"

false

"db.createRelationshipType"

"Create a RelationshipType"

"WRITE"

false

"db.index.fulltext.awaitEventuallyConsistentIndexRefresh"

"Wait for the updates from recently committed transactions to be applied to any eventually-consistent full-text indexes."

"READ"

true

"db.index.fulltext.listAvailableAnalyzers"

"List the available analyzers that the full-text indexes can be configured with."

"READ"

true

"db.index.fulltext.queryNodes"

"Query the given full-text index. Returns the matching nodes, and their Lucene query score, ordered by score. Valid keys for the options map are: 'skip' to skip the top N results; 'limit' to limit the number of results returned; 'analyzer' to use the specified analyzer as search analyzer for this query."

"READ"

true

"db.index.fulltext.queryRelationships"

"Query the given full-text index. Returns the matching relationships, and their Lucene query score, ordered by score. Valid keys for the options map are: 'skip' to skip the top N results; 'limit' to limit the number of results returned; 'analyzer' to use the specified analyzer as search analyzer for this query."

"READ"

true

"db.info"

"Provides information regarding the database."

"READ"

true

"db.labels"

"List all available labels in the database."

"READ"

true

"db.listLocks"

"List all locks in the database."

"DBMS"

true

"db.ping"

"This procedure can be used by client side tooling to test whether they are correctly connected to a database. The procedure is available in all databases and always returns true. A faulty connection can be detected by not being able to call this procedure."

"READ"

true

Rows: 15

The above table only displays the first 15 results of the query. For a full list of all built-in procedures in Neo4j, visit the Operations Manual → List of procedures.

Listing procedures with filtering on output columns

The listed procedures can be filtered in multiple ways, one way is to use the WHERE clause. For example, returning the names of all admin procedures:

Query
SHOW PROCEDURES YIELD name, admin
WHERE admin
Table 3. Result
name admin

"db.clearQueryCaches"

true

"db.listLocks"

true

"db.prepareForReplanning"

true

"db.stats.clear"

true

"db.stats.collect"

true

"db.stats.retrieve"

true

"db.stats.retrieveAllAnonymized"

true

"db.stats.status"

true

"db.stats.stop"

true

+"dbms.checkConfigValue"

true

"dbms.cluster.checkConnectivity"

true

"dbms.cluster.cordonServer"

true

"dbms.cluster.readReplicaToggle"

true

"dbms.cluster.uncordonServer"

true

"dbms.listConfig"

true

Rows: 15

The above table only displays the first 15 results of the query. For a full list of all procedures which require admin privileges in Neo4j, visit the /docs/operations-manual/5/reference/procedures#/#_list_of_procedures[Operations Manual → List of procedures].

Listing procedures with other filtering

The listed procedures can also be filtered by whether a user can execute them. This filtering is only available through the EXECUTABLE clause and not through the WHERE clause. This is due to using the user’s privileges instead of filtering on the available output columns.

There are two options for using the EXECUTABLE clause. The first option is to filter for the current user:

Query
SHOW PROCEDURES EXECUTABLE BY CURRENT USER YIELD *
Table 4. Result
name description rolesExecution rolesBoostedExecution

"db.awaitIndex"

"Wait for an index to come online (for example: CALL db.awaitIndex("MyIndex", 300))."

<null>

<null>

"db.awaitIndexes"

"Wait for all indexes to come online (for example: CALL db.awaitIndexes(300))."

<null>

<null>

"db.checkpoint"

"Initiate and wait for a new check point, or wait any already on-going check point to complete. Note that this temporarily disables the `dbms.checkpoint.iops.limit` setting in order to make the check point complete faster. This might cause transaction throughput to degrade slightly, due to increased IO load."

<null>

<null>

"db.clearQueryCaches"

"Clears all query caches."

<null>

<null>

"db.createLabel"

"Create a label"

<null>

<null>

"db.createProperty"

"Create a Property"

<null>

<null>

"db.createRelationshipType"

"Create a RelationshipType"

<null>

<null>

"db.index.fulltext.awaitEventuallyConsistentIndexRefresh"

"Wait for the updates from recently committed transactions to be applied to any eventually-consistent full-text indexes."

<null>

<null>

"db.index.fulltext.listAvailableAnalyzers"

"List the available analyzers that the full-text indexes can be configured with."

<null>

<null>

"db.index.fulltext.queryNodes"

"Query the given full-text index. Returns the matching nodes, and their Lucene query score, ordered by score. Valid keys for the options map are: 'skip' to skip the top N results; 'limit' to limit the number of results returned; 'analyzer' to use the specified analyzer as search analyzer for this query."

<null>

<null>

"db.index.fulltext.queryRelationships"

"Query the given full-text index. Returns the matching relationships, and their Lucene query score, ordered by score. Valid keys for the options map are: 'skip' to skip the top N results; 'limit' to limit the number of results returned; 'analyzer' to use the specified analyzer as search analyzer for this query."

<null>

<null>

"db.info"

"Provides information regarding the database."

<null>

<null>

"db.labels"

"List all available labels in the database."

<null>

<null>

"db.listLocks"

"List all locks in the database."

<null>

<null>

"db.ping"

"This procedure can be used by client side tooling to test whether they are correctly connected to a database. The procedure is available in all databases and always returns true. A faulty connection can be detected by not being able to call this procedure."

<null>

<null>

Rows: 15

The above table only displays the first 15 results of the query. Note that the two roles columns are empty due to missing the SHOW ROLE privilege. Also note that the following columns are not present in the table: mode, worksOnSystem, signature, argumentDescription, returnDescription, admin, and options.

The second option for using the EXECUTABLE clause is to filter the list to only contain procedures executable by a specific user. The below example shows the procedures available to the user jake, who has been granted the EXECUTE PROCEDURE dbms.* privilege by the admin of the database. (More information about DBMS EXECUTE privilege administration can be found here).

Query
SHOW PROCEDURES EXECUTABLE BY jake
Table 5. Result
name description mode worksOnSystem

"dbms.cluster.protocols"

"Overview of installed protocols."

"DBMS"

true

"dbms.cluster.routing.getRoutingTable"

"Returns the advertised bolt capable endpoints for a given database, divided by each endpoint's capabilities. For example an endpoint may serve read queries, write queries and/or future getRoutingTable requests."

"DBMS"

true

"dbms.components"

"List DBMS components and their versions."

"DBMS"

true

"dbms.info"

"Provides information regarding the DBMS."

"DBMS"

true

"dbms.killConnection

"Kill network connection with the given connection id."

"DBMS"

false

"dbms.killConnections"

"Kill all network connections with the given connection ids."

"DBMS"

true

"dbms.listActiveLocks"

"List the active lock requests granted for the transaction executing the query with the given query id."

"DBMS"

true

"dbms.listCapabilities"

"List capabilities"

"DBMS"

true

"dbms.listConnections"

"List all accepted network connections at this instance that are visible to the user."

"DBMS"

true

"dbms.listPools"

"List all memory pools, including sub pools, currently registered at this instance that are visible to the user."

"DBMS"

true

"dbms.queryJmx"

"Query JMX management data by domain and name. For instance, "*:*""

"DBMS"

true

"dbms.routing.getRoutingTable"

"Returns the advertised bolt capable endpoints for a given database, divided by each endpoint's capabilities. For example an endpoint may serve read queries, write queries and/or future getRoutingTable requests."

"DBMS"

true

"dbms.showCurrentUser"

"Shows the current user."

"DBMS"

true

Rows: 13