SHOW FUNCTIONS

使用 SHOW FUNCTIONS 可以列出可用函数。

命令 SHOW FUNCTIONS 仅返回默认输出。若要获取完整输出,请使用可选的 YIELD 命令。完整输出:SHOW FUNCTIONS YIELD *

SHOW FUNCTIONS 命令将生成一个包含以下列的表格

列出函数输出
描述 类型

名称 (name)

函数名称。默认输出

STRING

category

函数类别,例如 scalar(标量)或 string(字符串)。默认输出

STRING

description(描述)

函数描述。默认输出

STRING

签名

函数的签名。

STRING

isBuiltIn

函数是内置函数还是用户定义函数。

布尔值 (BOOLEAN)

argumentDescription

函数参数列表,表现为包含 nametypedefaultisDeprecateddescription 的字符串与布尔值映射。

LIST<MAP>

returnDescription

返回值的类型。

STRING

aggregating

函数是否为聚合函数。

布尔值 (BOOLEAN)

rolesExecution

允许执行此函数的角色列表。如果没有 SHOW ROLE 权限,则为 null

LIST<STRING>

rolesBoostedExecution

允许在执行此函数时使用提升模式(boosted mode)的角色列表。如果没有 SHOW ROLE 权限,则为 null

LIST<STRING>

isDeprecated

函数是否已弃用。

布尔值 (BOOLEAN)

deprecatedBy

弃用时应使用的替代函数;否则为 null

STRING

语法

有关语法说明的更多详情,可查看 此处

列出所有函数,或仅列出内置函数或用户定义函数
SHOW [ALL|BUILT IN|USER DEFINED] FUNCTION[S]
[YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

使用 RETURN 子句时,YIELD 子句是强制性的,不能省略。

列出当前用户可以执行的函数
SHOW [ALL|BUILT IN|USER DEFINED] FUNCTION[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]]

使用 RETURN 子句时,YIELD 子句是强制性的,不能省略。

列出指定用户可以执行的函数
SHOW [ALL|BUILT IN|USER DEFINED] FUNCTION[S] EXECUTABLE BY username
[YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

所需权限 SHOW USER。此命令不能用于 LDAP 用户。

使用 RETURN 子句时,YIELD 子句是强制性的,不能省略。

列出所有函数

要列出所有带有默认输出列的可用函数,可以使用 SHOW FUNCTIONS 命令。如果需要所有列,请使用 SHOW FUNCTIONS YIELD *

查询
SHOW FUNCTIONS
结果
名称 (name) category description(描述)

"abs"

"Numeric"

"返回 INTEGER 的绝对值。"

"abs"

"Numeric"

"返回 FLOAT 的绝对值。"

"acos"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反余弦值。"

"all"

"Predicate"

"如果谓词对给定的 LIST<ANY> 中的所有元素成立,则返回 true。"

"any"

"Predicate"

"如果谓词对给定的 LIST<ANY> 中的至少一个元素成立,则返回 true。"

"asin"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反正弦值。"

"atan"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反正切值。"

"atan2"

"Trigonometric"

"返回以弧度表示的一组坐标的反正切值 2。"

"avg"

"Aggregating"

"返回一组 INTEGER 值的平均值。"

"avg"

"Aggregating"

"返回一组 FLOAT 值的平均值。"

"avg"

"Aggregating"

"返回一组 DURATION 值的平均值。"

"ceil"

"Numeric"

"返回大于或等于该数字且等于 INTEGER 的最小 FLOAT。"

"coalesce"

"Scalar"

"返回表达式列表中第一个非空值。"

"collect"

"Aggregating"

"返回包含表达式返回值的列表。"

"cos"

"Trigonometric"

"返回 FLOAT 的余弦值。"

"cot"

"Trigonometric"

"返回 FLOAT 的余切值。"

"count"

"Aggregating"

"返回数值或行数。"

"date"

"Temporal"

"创建一个 DATE 实例。"

"date.realtime"

"Temporal"

"使用实时时钟返回当前的 DATE 实例。"

"date.statement"

"Temporal"

"使用语句时钟返回当前的 DATE 实例。"

行数:20

上表仅显示了查询的前 20 个结果。有关 Cypher® 中所有可用函数的完整列表,请参阅函数章节。

列出带有输出列过滤的函数

所列出的函数可以通过多种方式进行过滤。一种方式是通过类型关键字 BUILT INUSER DEFINED。更灵活的方式是使用 WHERE 子句。例如,获取所有以字母 'a' 开头的内置函数的名称

查询
SHOW BUILT IN FUNCTIONS YIELD name, isBuiltIn
WHERE name STARTS WITH 'a'
结果
名称 (name) isBuiltIn

"abs"

true

"acos"

true

"all"

true

"allReduce"

true

"any"

true

"asin"

true

"atan"

true

"atan2"

true

"avg"

true

行:9

列出带有其他过滤条件的函数

所列出的函数还可以根据用户是否可以执行它们来进行过滤。这种过滤只能通过 EXECUTABLE 子句实现,而不能通过 WHERE 子句实现。这是因为该过程使用的是用户的权限,而不是对可用输出列进行过滤。

使用 EXECUTABLE 子句有两种选项。第一个选项是过滤当前用户

查询
SHOW FUNCTIONS EXECUTABLE BY CURRENT USER YIELD *
结果
名称 (name) category description(描述) rolesExecution rolesBoostedExecution …​

"abs"

"Numeric"

"返回 INTEGER 的绝对值。"

<null>

<null>

"abs"

"Numeric"

"返回 FLOAT 的绝对值。"

<null>

<null>

"acos"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反余弦值。"

<null>

<null>

"all"

"Predicate"

"如果谓词对给定的 LIST<ANY> 中的所有元素成立,则返回 true。"

<null>

<null>

"any"

"Predicate"

"如果谓词对给定的 LIST<ANY> 中的至少一个元素成立,则返回 true。"

<null>

<null>

"asin"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反正弦值。"

<null>

<null>

"atan"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反正切值。"

<null>

<null>

"atan2"

"Trigonometric"

"返回以弧度表示的一组坐标的反正切值 2。"

<null>

<null>

"avg"

"Aggregating"

"返回一组 INTEGER 值的平均值。"

<null>

<null>

"avg"

"Aggregating"

"返回一组 FLOAT 值的平均值。"

<null>

<null>

行数: 10

请注意,由于缺少 SHOW ROLE 权限,两个 roles 列为空。还要注意,以下列不会出现在表中

  • 签名

  • isBuiltIn

  • argumentDescription

  • returnDescription

  • aggregating

  • isDeprecated

  • deprecatedBy

第二个选项是过滤特定用户

查询
SHOW FUNCTIONS EXECUTABLE BY jake
结果
名称 (name) category description(描述)

"abs"

"Numeric"

"返回 INTEGER 的绝对值。"

"abs"

"Numeric"

"返回 FLOAT 的绝对值。"

"acos"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反余弦值。"

"all"

"Predicate"

"如果谓词对给定的 LIST<ANY> 中的所有元素成立,则返回 true。"

"any"

"Predicate"

"如果谓词对给定的 LIST<ANY> 中的至少一个元素成立,则返回 true。"

"asin"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反正弦值。"

"atan"

"Trigonometric"

"返回以弧度表示的 FLOAT 的反正切值。"

"atan2"

"Trigonometric"

"返回以弧度表示的一组坐标的反正切值 2。"

"avg"

"Aggregating"

"返回一组 INTEGER 值的平均值。"

"avg"

"Aggregating"

"返回一组 FLOAT 值的平均值。"

行数: 10