Skip to content

SQL Backend Base Classes

BaseSQLBackend

Bases: BaseBackend

Base backend class for backends that compile to SQL.

Functions

compile(expr, limit=None, params=None, timecontext=None)

Compile an Ibis expression.

Parameters:

Name Type Description Default
expr ir.Expr

Ibis expression

required
limit str | None

For expressions yielding result sets; retrieve at most this number of values/rows. Overrides any limit already set on the expression.

None
params Mapping[ir.Expr, Any] | None

Named unbound parameters

None
timecontext tuple[pd.Timestamp, pd.Timestamp] | None

Additional information about data source time boundaries

None

Returns:

Type Description
Any

The output of compilation. The type of this value depends on the backend.

execute(expr, params=None, limit='default', **kwargs)

Compile and execute an Ibis expression.

Compile and execute Ibis expression using this backend client interface, returning results in-memory in the appropriate object type

Parameters:

Name Type Description Default
expr ir.Expr

Ibis expression

required
limit str

For expressions yielding result sets; retrieve at most this number of values/rows. Overrides any limit already set on the expression.

'default'
params Mapping[ir.Scalar, Any] | None

Named unbound parameters

None
kwargs Any

Backend specific arguments. For example, the clickhouse backend uses this to receive external_tables as a dictionary of pandas DataFrames.

{}

Returns:

Type Description
DataFrame | Series | Scalar
  • Table: pandas.DataFrame
  • Column: pandas.Series
  • Scalar: Python scalar value

explain(expr, params=None)

Explain an expression.

Return the query plan associated with the indicated expression or SQL query.

Returns:

Type Description
str

Query plan

raw_sql(query)

Execute a query string.

The returned cursor object must be manually released if results are returned.

Parameters:

Name Type Description Default
query str

DDL or DML statement

required

sql(query, schema=None)

Convert a SQL query to an Ibis table expression.

Parameters:

Name Type Description Default
query str

SQL string

required
schema sch.Schema | None

The expected schema for this query. If not provided, will be inferred automatically if possible.

None

Returns:

Type Description
Table

Table expression

table(name, database=None)

Construct a table expression.

Parameters:

Name Type Description Default
name str

Table name

required
database str | None

Database name

None

Returns:

Type Description
Table

Table expression

to_pyarrow_batches(expr, *, params=None, limit=None, chunk_size=1000000, **_)

Execute expression and return an iterator of pyarrow record batches.

This method is eager and will execute the associated expression immediately.

Parameters:

Name Type Description Default
expr ir.Expr

Ibis expression to export to pyarrow

required
limit int | str | None

An integer to effect a specific row limit. A value of None means "no limit". The default is in ibis/config.py.

None
params Mapping[ir.Scalar, Any] | None

Mapping of scalar parameter expressions to value.

None
chunk_size int

Maximum number of rows in each returned record batch.

1000000

Returns:

Type Description
RecordBatchReader

Collection of pyarrow RecordBatchs.


Last update: January 4, 2023