User-Defined Functions UI

      +
      The Couchbase Server admin console provides a UI for adding user defined functions.

      Couchbase Administration console provides an interface to create, update, or delete user-defined functions written in SQL++ or JavaScript.

      Start at the administration console and select Query  UDF from the menus to access the UDF screen.

      screen for adding user-defined functions

      If you have created any external libraries to store external function code, these are listed in the JavaScript Function Libraries section.

      If you have created any inline or external user-defined functions, these are listed in the User-Defined Functions section. This includes SQL++ managed user-defined functions — that is, JavaScript functions which are not stored in a library.

      JavaScript Function Libraries

      Click on the + add function library link to create a library of JavaScript functions.

      add javascript library screen

      When you create a new library, an example function (add) is supplied as an example. You can delete it when you add your own function, or leave it to serve as a basic example.

      You can set a Namespace for your library which will restrict its access to users that have permissions to access the bucket and scope specified by the namespace.

      Before you leave the screen, you must set a Library Name.

      Click Save to save the library and return to the main UDF screen, or Cancel to cancel without saving the library.

      udf screen with library added

      You can edit the library again to add and/or delete functions contained inside it.

      You can also delete the whole library by clicking on the drop link.

      User-Defined Functions

      You can add your own user-defined functions in the lower User-Defined Functions list. These functions can be one of two types:

      Inline

      This is a function written in SQL++ which can be used as part of another SQL++ statement, such as SELECT and EXECUTE FUNCTION.

      JavaScript

      You can create SQL++ functions that call the JavaScript functions defined in your library.

      To add a user-defined function, click on + add function below the User-Defined Functions list.

      Add function screen

      The Namespace can be set to define the scope that function resides in (travel-sample.inventory for example).

      Users will need permissions to access this namespace to run the function.

      The Function Name is the name that will be used in SQL++ statements (EXECUTE FUNCTION for example) to reference your function. The name must be unique and is case-insensitive.

      You can define a list of fixed parameters for your function, or you can use the …​ symbol which indicates a variable length function list defined as args[].

      The Function Type can be either inline or javascript.

      If you are defining an inline function then you can fill in any valid SQL++ expression which can then be used as part of another SQL++ statement. This is the default when creating a function.

      If you switch Function Type to javascript then the dialog will change to configure a JavaScript function call.

      add JavaScript function

      Then you select the JavaScript Library where you created your JavaScript function, and the name of your function. (There is no need to include the parameters.)

      Once the details have been filled, you can click the Save Function to save the function and exit the dialog, or click on Cancel to exit the dialog without saving the details.

      You cannot use the UDF console to create SQL++ managed user-defined functions — that is, JavaScript functions which are not stored in a library. To do this, see CREATE FUNCTION.