This document describes the classes of backends, how they work, and any details about each backend that are relevant to end users.
Classes of Backends¶
There are currently three classes of backends that live in ibis.
- String generating backends
- Expression generating backends
- Direct execution backends
String Generating Backends¶
The first category of backend translates ibis expressions into strings. Generally speaking these backends also need to handle their own execution. They work by translating each node into a string, and passing the generated string to the database through a driver API.
Expression Generating Backends¶
The second category of backends translates ibis expressions into other expressions. Currently, all expression generating backends generate SQLAlchemy expressions.
Instead of generating strings at each translation step, these backends build up an expression. These backends tend to execute their expressions directly through the driver APIs provided by SQLAlchemy (or one of its transitive dependencies).