SHOW FUNCTIONS

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

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

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

表 1. 列表函数输出
描述 类型

name

函数名称。默认输出

STRING

category

函数类别,例如scalarstring默认输出

STRING

description

函数描述。默认输出

STRING

signature

函数的签名。

STRING

isBuiltIn

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

BOOLEAN

argumentDescription

函数的参数列表,作为字符串和布尔值的映射,包含nametypedefaultisDeprecateddescription

LIST<MAP>

returnDescription

返回值类型。

STRING

aggregating

函数是否为聚合函数。

BOOLEAN

rolesExecution

允许执行此函数的角色列表。在没有SHOW ROLE权限的情况下为null

LIST<STRING>

rolesBoostedExecution

允许在执行此函数时使用加速模式的角色列表。在没有SHOW ROLE权限的情况下为null

LIST<STRING>

isDeprecated

函数是否已弃用。在 5.9 中引入

BOOLEAN

deprecatedBy

在弃用的情况下要使用的替换函数;否则为null在 5.21 中引入

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
表 2. 结果
name category description

"abs"

"数值"

"返回INTEGER的绝对值。"

"abs"

"数值"

"返回FLOAT的绝对值。"

"acos"

"三角函数"

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

"all"

"谓词"

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

"any"

"谓词"

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

"asin"

"三角函数"

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

"atan"

"三角函数"

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

"atan2"

"三角函数"

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

"avg"

"聚合"

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

"avg"

"聚合"

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

"avg"

"聚合"

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

"ceil"

"数值"

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

"coalesce"

"标量"

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

"collect"

"聚合"

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

"cos"

"三角函数"

"返回FLOAT的余弦值。"

"cot"

"三角函数"

"返回FLOAT的余切值。"

"count"

"聚合"

"返回值或行的数量。"

"date"

"时间"

"创建一个DATE瞬间。"

"date.realtime"

"时间"

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

"date.statement"

"时间"

"使用语句时钟返回当前的DATE瞬间。"

行:20

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

使用输出列过滤列出函数

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

查询
SHOW BUILT IN FUNCTIONS YIELD name, isBuiltIn
WHERE name STARTS WITH 'a'
表 3. 结果
name isBuiltIn

"abs"

true

"abs"

true

"acos"

true

"all"

true

"any"

true

"asin"

true

"atan"

true

"atan2"

true

"avg"

true

"avg"

true

"avg"

true

行:11

使用其他过滤列出函数

列出的函数还可以根据用户是否可以执行它们进行过滤。此过滤仅通过EXECUTABLE子句提供,而不是通过WHERE子句提供。这是因为使用了用户的权限而不是根据可用的输出列进行过滤。

使用EXECUTABLE子句有两种选择。第一种选择是筛选当前用户。

查询
SHOW FUNCTIONS EXECUTABLE BY CURRENT USER YIELD *
表 4. 结果
name category description rolesExecution rolesBoostedExecution …​

"abs"

"数值"

"返回INTEGER的绝对值。"

<null>

<null>

"abs"

"数值"

"返回FLOAT的绝对值。"

<null>

<null>

"acos"

"三角函数"

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

<null>

<null>

"all"

"谓词"

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

<null>

<null>

"any"

"谓词"

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

<null>

<null>

"asin"

"三角函数"

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

<null>

<null>

"atan"

"三角函数"

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

<null>

<null>

"atan2"

"三角函数"

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

<null>

<null>

"avg"

"聚合"

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

<null>

<null>

"avg"

"聚合"

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

<null>

<null>

行数:10

请注意,由于缺少SHOW ROLE权限,两个roles列为空。另请注意,表中不存在以下列。

  • signature

  • isBuiltIn

  • argumentDescription

  • returnDescription

  • aggregating

  • isDeprecated

  • deprecatedBy

第二种选择是筛选特定用户。

查询
SHOW FUNCTIONS EXECUTABLE BY jake
表 5. 结果
name category description

"abs"

"数值"

"返回INTEGER的绝对值。"

"abs"

"数值"

"返回FLOAT的绝对值。"

"acos"

"三角函数"

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

"all"

"谓词"

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

"any"

"谓词"

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

"asin"

"三角函数"

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

"atan"

"三角函数"

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

"atan2"

"三角函数"

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

"avg"

"聚合"

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

"avg"

"聚合"

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

行数:10