Built-in query language functions

Like constants and variables, there are many built-in functions that can be called from the query language with no additional imports or setup. These built-in functions should be used over Python or other user-defined functions in query strings for two reasons:

  • They are almost always more performant.
  • They handle null values gracefully.

For more on why, see The Python-Java boundary.

Built-in functions

Built-in functions range from simple mathematical functions to date-time arithmetic, string manipulation, and more.

The following query calculates the absolute value of a column using the built-in abs function:

The following query parses a column of strings containing integers into Java primitive int values using parseInt:

The following query uses the built-in and function to evaluate whether or not three different columns are all true:

Built-in functions gracefully handle null values as input. For example, the following example calls the built-in sin function on a column that contains null values:

This page does not provide a comprehensive list of all built-ins. For the complete list of functions built into the query language, see Auto-imported functions.

Add Java classes to the query library

To use a non-default Java class in a Deephaven Query Language (DQL) query string, you must first import the class into DQL using Python. For this, Deephaven offers the query_library module.

The following example adds the java.net.URL class to the query library then uses it in table operations.

You can also import static methods from a class into the query language to use them in table operations. The following example imports static methods from the java.lang.StrictMath class and uses them in table operations.

Note

import_static allows you to call methods without the class name. The class name is included in the examples below because methods of the same name also exist in the built-in io.deephaven.function.Numeric class.