Skip to content

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.

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

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

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.