Reserved Words
FlyQL uses several keywords as operators: and, or, not, in, has, like, ilike. The values true, false, and null are also reserved.
If your schema has columns with these names, you can still query them. The parser disambiguates by context — a keyword is only treated as an operator when it appears in operator position.
Keywords as Column Names
Section titled “Keywords as Column Names”Most keywords work as column names without any special syntax:
has = 1
in = 'yes'
like = true
null = 1
true = 1
false = 1
and = 1
or = 1
These also work in compound expressions:
status = 200 and has = 1
status = 200 and null = 0
The not Exception
Section titled “The not Exception”not is the one keyword that conflicts with column names when followed by a space:
not = 1
This fails because the parser reads not as the negation prefix and then expects a key or ( — not =.
Without a space, it works fine:
not=1
But relying on whitespace for correctness is fragile. Use quoted identifiers instead:
"not" = 1
'not' = 1
This works in compound expressions too:
status = 200 and "not" = 1
Recommendation
Section titled “Recommendation”If your columns are named after FlyQL keywords, quote them for clarity and safety — even when the parser can disambiguate without quotes:
"has" = 1 and "in" = 'yes' and "not" = 0
This makes the intent obvious to anyone reading the query and avoids surprises if whitespace changes.