Skip to content

Latest commit

 

History

History
61 lines (42 loc) · 1.36 KB

functions.rst

File metadata and controls

61 lines (42 loc) · 1.36 KB

Declaring functions

Define a function for counting reviews given a user name:

create function review_count(name: str) -> int64
using (
    with module default
    select count(
        (
            select Review
            filter .author.name = name
        )
    )
)

Drop a user-defined function:

drop function review_count(name: str);

Define and use polymorphic function:

db> create function make_name(name: str) -> str
... using ('my_name_' ++ name);
CREATE FUNCTION
db> create function make_name(name: int64) -> str
... using ('my_name_' ++ <str>name);
CREATE FUNCTION
q> select make_name('Alice');
{'my_name_Alice'}
q> select make_name(42);
{'my_name_42'}
See also
Schema > Functions <ref_datamodel_functions>
SDL > Functions <ref_eql_sdl_functions>
DDL > Functions <ref_eql_ddl_functions>
Reference > Function calls <ref_reference_function_call>
Introspection > Functions <ref_datamodel_introspection_functions>
Tutorial > Advanced EdgeQL > User-Defined Functions