ALTER FUNCTION

功能描述

修改自定义函数的属性。

注意事项

相比于原始的openGauss,dolphin对于ALTER PROCEDURE语法的修改为:

  1. 增加可修改 LANGUAGE 选项。

  2. 增加可修改项 { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 。

  3. 增加可修改项 SQL SECURITY { DEFINER | INVOKER }。

语法格式

  • 修改自定义函数的附加参数。

    1. ALTER FUNCTION function_name ( [ { [ argname ] [ argmode ] argtype} [, ...] ] )
    2. action [ ... ] [ RESTRICT ];

    其中附加参数action子句语法为。

    1. {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT}
    2. | {IMMUTABLE | STABLE | VOLATILE}
    3. | {SHIPPABLE | NOT SHIPPABLE}
    4. | {NOT FENCED | FENCED}
    5. | [ NOT ] LEAKPROOF
    6. | { [ EXTERNAL|SQL ] SECURITY INVOKER | [ EXTERNAL|SQL ] SECURITY DEFINER }
    7. | AUTHID { DEFINER | CURRENT_USER }
    8. | COST execution_cost
    9. | ROWS result_rows
    10. | SET configuration_parameter { { TO | = } { value | DEFAULT }| FROM CURRENT}
    11. | RESET {configuration_parameter | ALL}
    12. | COMMENT 'text'
    13. | LANGUAGE lang_name
    14. | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }

参数说明

  • LANGUAGE lang_name

    用以实现函数的语言的名称,仅语法兼容,实际修改不会生效。

  • SQL SECURITY INVOKER

    表明该函数将带着调用它的用户的权限执行。该参数可以省略。

    SQL SECURITY INVOKER和SECURITY INVOKER和AUTHID CURRENT_USER的功能相同。

  • SQL SECURITY DEFINER

    声明该函数将以创建它的用户的权限执行。

    SQL SECURITY DEFINER和AUTHID DEFINER和SECURITY DEFINER的功能相同。

  • CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA

    语法兼容项。

示例

  1. --指定 NO SQL
  2. openGauss=# ALTER FUNCTION f1 (s char(20)) NO SQL;
  3. --指定 CONTAINS SQL
  4. openGauss=# ALTER FUNCTION f1 (s char(20)) CONTAINS SQL;
  5. --指定 LANGUAGE SQL
  6. openGauss=# ALTER FUNCTION f1 (s char(20)) LANGUAGE SQL ;
  7. --指定 MODIFIES SQL DATA
  8. openGauss=# ALTER FUNCTION f1 (s char(20)) MODIFIES SQL DATA;
  9. --指定 READS SQL DATA
  10. openGauss=# ALTER FUNCTION f1 (s char(20)) READS SQL DATA;
  11. --指定 SECURITY INVOKER
  12. openGauss=# ALTER FUNCTION f1 (s char(20)) SQL SECURITY INVOKER;
  13. --指定 SECURITY DEFINER
  14. openGauss=# ALTER FUNCTION f1 (s char(20)) SQL SECURITY DEFINER;

相关链接

ALTER FUNCTION