Predicate operators
FuseQL predicate operators evaluate conditions on field values, returning a boolean result. Use them to filter, validate, and classify log data within a query pipeline.
in
Checks whether a field value is a member of a specified set of strings or numbers. Use in a where clause to keep only matching rows, or inside if to branch on membership. The check is case-sensitive for string values.
Syntax
-
where
-
if
| where in(<field>, <value1>[, <value2>, ...])
| if(in(<field>, <value1>[, <value2>, ...]), <value_if_true>, <value_if_false>) as <alias>
Parameters
| Parameter | Required | Description |
|---|---|---|
|
Yes |
The field whose value is tested for membership. |
|
Yes |
One or more literal string or numeric values forming the allowed set. |
|
Yes (if form) |
Name for the output column when used with |
Example
Filter nginx access logs to keep only lines where the level label is one of the listed values.
source="nginx"
| where level in ("info", "warning")
| count by level
| _count | level |
|---|---|
316858 |
info |
|
|
isblank
Checks whether a string value is null, empty, or contains only whitespace characters (spaces, tabs, newlines). Returns true for all three cases; returns false for any string that contains at least one non-whitespace character. Use this to detect missing or placeholder field values.
Parameters
| Parameter | Required | Description |
|---|---|---|
|
Yes |
A string field or literal to test. |
|
Yes |
Name for the boolean output column. |
Example
Check whether the level label on nginx logs is blank (null, empty, or whitespace-only).
source="nginx"
| isblank(level) as is_blank
| count by is_blank
| is_blank | _count |
|---|---|
False |
145071 |
|
|
isempty
Checks whether a string value is exactly an empty string — zero characters, no content, no whitespace. Returns true only for the empty string ""; returns false for null, whitespace-only strings, or any string with at least one character. Use isblank instead if you also want to catch whitespace-only values.
Parameters
| Parameter | Required | Description |
|---|---|---|
|
Yes |
A string field or literal to test. |
|
Yes |
Name for the boolean output column. |
Example
Check whether the level label on nginx logs is an empty string.
source="nginx"
| isempty(level) as is_empty
| count by is_empty
| is_empty | _count |
|---|---|
False |
141834 |
|
|
isnumeric
Checks whether a string value can be successfully parsed as a number (integer or floating-point). Returns true if the value is a valid numeric string, false otherwise. Use this before performing arithmetic operations on fields that may contain non-numeric values.
Parameters
| Parameter | Required | Description |
|---|---|---|
|
Yes |
A string field or literal to test. |
|
Yes |
Name for the boolean output column. |
Example
Check whether a literal string value can be parsed as a number.
source="nginx"
| isNumeric("200") as is_num
| count by is_num
| is_num | _count |
|---|---|
True |
133504 |
|
Use |
isnull
Checks whether a field value is null or missing (absent). Returns true when the field has no value; returns false when the field is present with any value, including an empty string. Use this to detect rows where a field was not populated.
Parameters
| Parameter | Required | Description |
|---|---|---|
|
Yes |
The field name to test for null or absence. |
|
Yes |
Name for the boolean output column. |
Example
Check whether the level label on nginx logs is null or missing.
source="nginx"
| isnull(level) as is_null
| count by is_null
| is_null | _count |
|---|---|
False |
155493 |
|
|
luhn
Validates whether a string contains a valid credit card number using the Luhn checksum algorithm. Non-numeric characters (hyphens, spaces) are stripped before validation, so both formatted and unformatted card numbers can be checked. Returns true for valid card numbers, false otherwise.
Parameters
| Parameter | Required | Description |
|---|---|---|
|
Yes |
A string field or literal containing a potential credit card number. |
|
Yes |
Name for the boolean output column. |
Example
Filter log lines to keep only those where a literal test card number passes the Luhn check.
source="nginx"
| where luhn("4111111111111111")
| count
| _count |
|---|
324933 |
|
|
matches
Tests whether a field value matches a RE2-compliant regular expression. Use in a where clause to filter log lines, or inside if to branch on pattern matches. The match is applied to the entire field value unless anchoring is explicitly omitted.
Parameters
| Parameter | Required | Description |
|---|---|---|
|
Yes |
The field whose value is tested against the regular expression. |
|
Yes |
A RE2-compliant regular expression string. |
Example
Filter nginx logs to count only lines where the level label matches the pattern inf.*.
source="nginx"
| where level matches "inf.*"
| count
| _count |
|---|
317700 |
|
FuseQL uses RE2 syntax — look-ahead and look-behind assertions are not supported. The |