Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions modules/ROOT/pages/clauses/listing-functions.adoc
Copy link
Copy Markdown
Collaborator Author

@Hunterness Hunterness May 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This page has been moved to another part of the Cypher manual, #1531 (also adding a unified SHOW page). It currently doesn't include these changes.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It has now been updated to include these changes.

Original file line number Diff line number Diff line change
Expand Up @@ -427,3 +427,54 @@ SHOW FUNCTIONS EXECUTABLE BY jake

3+d|Rows: 10
|===

[role=label--cypher-25-only label--new-Neo4j-2026.05]
[[listing-functions-with-general-cypher]]
== Listing functions combined with general Cypher

The `SHOW FUNCTIONS` command can be combined with general Cypher clauses in a single query.

For example, finding all functions with more than one signature variation.

.Return all functions with more than one signature
[source, cypher]
----
SHOW FUNCTIONS
YIELD name, signature
WITH name, collect(signature) AS signatures
FILTER size(signatures) > 1
RETURN name, signatures
----

.Result
[queryresult]
----
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| name | signatures |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "btrim" | ["btrim(input :: STRING) :: STRING","btrim(input :: STRING, trimCharacterString :: STRING) :: STRING"] |
| "coll.flatten" | ["coll.flatten(list :: LIST<ANY>, depth :: INTEGER) :: LIST<ANY>","coll.flatten(list :: LIST<ANY>) :: LIST<ANY>"] |
| "format" | ["format(value :: DATE | LOCAL TIME | ZONED TIME | LOCAL DATETIME | ZONED DATETIME | DURATION) :: STRING","format(value :: DATE | LOCAL TIME | ZONED TIME | LOCAL DATETIME | ZONED DATETIME | DURATION, pattern :: STRING) :: STRING"] |
| "local_datetime" | ["local_datetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL DATETIME","local_datetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, pattern = DEFAULT_TEMPORAL_ARGUMENT :: STRING) :: LOCAL DATETIME"] |
| "local_time" | ["local_time(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL TIME","local_time(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, pattern = DEFAULT_TEMPORAL_ARGUMENT :: STRING) :: LOCAL TIME"] |
| "ltrim" | ["ltrim(input :: STRING) :: STRING","ltrim(input :: STRING, trimCharacterString :: STRING) :: STRING"] |
| "normalize" | ["normalize(input :: STRING) :: STRING","normalize(input :: STRING, normalForm = NFC :: [NFC, NFD, NFKC, NFKD]) :: STRING"] |
| "range" | ["range(start :: INTEGER, end :: INTEGER) :: LIST<INTEGER>","range(start :: INTEGER, end :: INTEGER, step :: INTEGER) :: LIST<INTEGER>"] |
| "replace" | ["replace(original :: STRING, search :: STRING, replace :: STRING) :: STRING","replace(original :: STRING, search :: STRING, replace :: STRING, limit :: INTEGER) :: STRING"] |
| "round" | ["round(value :: FLOAT) :: FLOAT","round(value :: FLOAT, precision :: INTEGER | FLOAT) :: FLOAT","round(value :: FLOAT, precision :: INTEGER | FLOAT, mode :: STRING) :: FLOAT"] |
| "rtrim" | ["rtrim(input :: STRING) :: STRING","rtrim(input :: STRING, trimCharacterString :: STRING) :: STRING"] |
| "substring" | ["substring(original :: STRING, start :: INTEGER) :: STRING","substring(original :: STRING, start :: INTEGER, length :: INTEGER) :: STRING"] |
| "trim" | ["trim(input :: STRING) :: STRING","trim([[LEADING | TRAILING | BOTH] [trimCharacterString :: STRING] FROM] input :: STRING) :: STRING"] |
| "zoned_datetime" | ["zoned_datetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED DATETIME","zoned_datetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, pattern = DEFAULT_TEMPORAL_ARGUMENT :: STRING) :: ZONED DATETIME"] |
| "zoned_time" | ["zoned_time(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED TIME","zoned_time(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, pattern = DEFAULT_TEMPORAL_ARGUMENT :: STRING) :: ZONED TIME"] |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
15 rows
----

[NOTE]
====
When combining `SHOW FUNCTIONS` with other clauses, the `YIELD` clause is mandatory and must not be omitted.
`YIELD` must explicitly list the yielded columns.
`YIELD *` is not permitted.
The query must also end with a valid last clause (like a `RETURN` or an updating clause).
Comment thread
Hunterness marked this conversation as resolved.
====
Loading