Skip to content

SqueakQL operators

Equality and ordering

Use =, <>, or != for equality and inequality. != is normalized to the same meaning as <>.

status = 'in_progress'
priority <> 'low'
story_points >= 5

Ordering comparisons are available for numeric and temporal fields, and for the enum fields using their documented domain ordering. Priority ordering uses Hamstik severity (urgent, high, medium, low); status and type retain their stored text ordering. Other string fields support equality, lists and patterns, not <, >, or BETWEEN.

Lists

priority IN ('high', 'urgent')
status NOT IN ('done', 'backlog')

An IN list must contain at least one value, cannot repeat a value, and is limited to 100 values. Values are still typed and validated against the field.

Ranges

created_at BETWEEN '2026-09-01' AND '2026-09-08'
priority NOT BETWEEN 'low' AND 'medium'

Text matching

title LIKE 'API%'
title ILIKE '%webhook%'
title NOT ILIKE '%draft%'

LIKE is case-sensitive and ILIKE is case-insensitive. % matches any number of characters and _ matches one character. The pattern is a bound value; it cannot become SQL syntax.

Text operators are not valid for timestamp, integer, or user fields.