Syntax Reference

Complete reference for all genaql utilities, modifiers, and operators.

Basic Clauses

These utilities map directly to SQL clauses. Use colons to separate the utility from its value.

SyntaxSQL EquivalentExample
main:FROMmain:users
slay:SELECTslay:name,email
sus:WHEREsus:age>18
vibe:ORDER BYvibe:name/desc
bet:LIMITbet:10
skip:OFFSETskip:20
squad:GROUP BYsquad:user_id
tea:HAVINGtea:cnt:*>5

Write Operations

SyntaxSQL EquivalentExample
nocap:INSERT INTOnocap:users
drip:(columns)drip:name,email
fire:VALUESfire:john,john@test.com
glow:UPDATEglow:users
rizz:SETrizz:name=john
yeet:DELETE FROMyeet:sessions
flex:RETURNINGflex:id

Operators

Use these operators in WHERE conditions:

OperatorMeaningExample
>Greater thansus:age>18
<Less thansus:price<100
>=Greater or equalsus:age>=21
<=Less or equalsus:qty<=0
=Equalssus:status=active
!=Not equalssus:role!=admin
~LIKEsus:name~john%
.in()INsus:id.in(1,2,3)
.nullIS NULLsus:deleted_at.null
.!nullIS NOT NULLsus:email.!null

Logical Operators

Combine conditions with AND and OR:

logical.ts
// AND - multiple sus clauses or comma-separated
main:users sus:age>18 sus:status=active
main:users sus:age>18,status=active

// OR - pipe within sus
main:users sus:role=admin|role=moderator

Aggregate Functions

Use these prefixes for aggregate functions:

PrefixFunctionExample
sum:SUM()sel:sum:total
cnt:COUNT()sel:cnt:*
avg:AVG()sel:avg:price
min:MIN()sel:min:created_at
max:MAX()sel:max:price

Modifiers

Add modifiers using slashes:

Order Direction

vibe:name/descvibe:created_at/asc

Join Types

link:orders/leftlink:products/rightlink:categories/full