Functions

This reference topic applies to FQL v4. Go to this page for the latest FQL v10 reference topics.

Functions( [database] )
Functions( )
ScopedFunctions( database )
Functions( [database] )
functions( [database] )
Functions( [database] )

Description

The Functions function when executed with Paginate returns an array of References for all user-defined functions in the database specified. If a child database is not specified, the returned function references all belong to the current database.

When a child database is specified, an admin key must be used to call Functions (server or client keys, or ABAC tokens, cannot be used to access a child database).

Also, Go does not support optional function parameters, nor function overloading. To specify a child database using the Go driver, call the ScopedFunctions function instead of Functions.

Parameters

Parameter Type Definition and Requirements

database

Reference

Optional - A Reference to a child database. If not specified, the current database is used.

A Reference to a child database.

Optional - A Reference to a child database. If not specified, the current database is used.

Optional - A Reference to a child database. If not specified, the current database is used.

Optional - A Reference to a child database. If not specified, the current database is used.

Optional - A Reference to a child database. If not specified, the current database is used.

Optional - A Reference to a child database. If not specified, the current database is used.

Returns

A Set Reference for the available user-defined functions in the specified child database (or the current database if database is not specified).

Examples

  1. The following query lists the References for any user-defined functions (up to the pagination limit) in the current database:

    try
    {
        Value result = await client.Query(
            Paginate(Functions())
        );
        Console.WriteLine(result);
    }
    catch (Exception e)
    {
        Console.WriteLine($"ERROR: {e.Message}");
    }
    ObjectV(data: Arr(RefV(id = "increment", collection = RefV(id = "functions")), RefV(id = "double", collection = RefV(id = "functions")), RefV(id = "submit_order", collection = RefV(id = "functions"))))
    result, err := client.Query(
    	f.Paginate(f.Functions()))
    
    if err != nil {
    	fmt.Fprintln(os.Stderr, err)
    } else {
    	fmt.Println(result)
    }
    map[data:[{increment 0xc0000b71d0 0xc0000b71d0 <nil>} {double 0xc0000b72c0 0xc0000b72c0 <nil>} {submit_order 0xc0000b73b0 0xc0000b73b0 <nil>}]]
    client.query(
      q.Paginate(q.Functions())
    )
    .then((ret) => console.log(ret))
    .catch((err) => console.error(
      'Error: [%s] %s: %s',
      err.name,
      err.message,
      err.errors()[0].description,
    ))
    {
      data: [
        Function("increment"),
        Function("double"),
        Function("submit_order")
      ]
    }
    result = client.query(
      q.paginate(q.functions())
    )
    print(result)
    {'data': [Ref(id=increment, collection=Ref(id=functions)), Ref(id=double, collection=Ref(id=functions)), Ref(id=submit_order, collection=Ref(id=functions))]}
    Paginate(Functions())
    {
      data: [
        Function("increment"),
        Function("double"),
        Function("submit_order")
      ]
    }
    Query metrics:
    •    bytesIn:   31

    •   bytesOut:  230

    • computeOps:    1

    •    readOps:    8

    •   writeOps:    0

    •  readBytes:  334

    • writeBytes:    0

    •  queryTime: 11ms

    •    retries:    0

  2. The following query lists the References for any user-defined functions (up to the pagination limit) in a child database named "child_db":

    try
    {
        Value result = await client.Query(
            Paginate(Functions(Database("child_db")))
        );
        Console.WriteLine(result);
    }
    catch (Exception e)
    {
        Console.WriteLine($"ERROR: {e.Message}");
    }
    ObjectV(data: Arr())
    result, err := client.Query(
    	f.Paginate(f.ScopedFunctions(f.Database("child_db"))))
    
    if err != nil {
    	fmt.Fprintln(os.Stderr, err)
    } else {
    	fmt.Println(result)
    }
    map[data:[]]
    client.query(
      q.Paginate(q.Functions(q.Database('child_db')))
    )
    .then((ret) => console.log(ret))
    .catch((err) => console.error(
      'Error: [%s] %s: %s',
      err.name,
      err.message,
      err.errors()[0].description,
    ))
    { data: [] }
    result = client.query(
      q.paginate(q.functions(q.database("child_db")))
    )
    print(result)
    {'data': []}
    Paginate(Functions(Database('child_db')))
    { data: [] }
    Query metrics:
    •    bytesIn:   50

    •   bytesOut:   24

    • computeOps:    1

    •    readOps:    8

    •   writeOps:    0

    •  readBytes:  363

    • writeBytes:    0

    •  queryTime: 17ms

    •    retries:    0

Is this article helpful? 

Tell Fauna how the article can be improved:
Visit Fauna's forums or email docs@fauna.com

Thank you for your feedback!