ensure_field
This page explains how to use the ensure_field function in APL.
Use the ensure_field function to safely access a field that may or may not exist in your data. The function returns the field’s value if it exists, or a typed nil if it doesn’t. This helps you write queries that work even when fields are missing, making your queries more robust and future-proof.
You typically use ensure_field when working with schemaless or evolving data where fields might be absent, or when you want to write queries that handle missing fields gracefully without errors.
Usage
Syntax
Parameters
| Name | Type | Description |
|---|---|---|
| field_name | string | The name of the field to ensure exists. |
| field_type | type | The type of the field. See scalar data types for supported types. |
Returns
This function returns the value of the specified field if it exists, otherwise it returns a typed nil that matches the specified type.
Use case examples
Handle missing fields gracefully when analyzing HTTP logs where some fields might not be present in all records.
Query
Output
| _time | uri | user_agent | referer |
|---|---|---|---|
| Jun 24, 09:28:10 | /api/users | Mozilla/5.0 | https://example.com |
This example safely accesses optional fields that may not exist in all log records, allowing the query to run successfully even when some fields are missing.
Access optional trace attributes that might not be present in all spans.
Query
Output
| _time | trace_id | service.name | http_method | http_path |
|---|---|---|---|---|
| Jun 24, 09:28:10 | abc123 | frontend | GET | /api/users |
This example safely accesses optional HTTP attributes in trace data, ensuring the query works even when these attributes are not present in all spans.
List of related functions
- isnull: Checks if a value is null. Use
isnullto test the result ofensure_fieldto determine if a field exists. - isnotnull: Checks if a value isn't null. Use
isnotnullto verify thatensure_fieldsuccessfully retrieved a field value. - coalesce: Returns the first non-null value from a list. Use
coalescewithensure_fieldto provide default values when fields are missing.