maestral.database.query

SQL query definitions that facilitate writing object-oriented code to generate SQL queries.

Module Contents

class maestral.database.query.Query[source]

Base type for query

abstract clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]

order_by(expr)[source]
Parameters:

expr (str)

Return type:

OrderedQuery

class maestral.database.query.OrderedQuery(query, order_expr)[source]

Bases: Query

Ordered query

Parameters:
clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]

class maestral.database.query.PathTreeQuery(column, path)[source]

Bases: Query

Query for an entire subtree at the given path.

Parameters:
clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]

class maestral.database.query.MatchQuery(column, value)[source]

Bases: Query

Query to match an exact value.

Parameters:
clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]

class maestral.database.query.AllQuery[source]

Bases: Query

Query to match everything.

clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]

class maestral.database.query.CollectionQuery(*subqueries)[source]

Bases: Query

An abstract query class that aggregates other queries. Can be indexed like a list to access the sub-queries.

Parameters:

subqueries (Query) – Subqueries to aggregate.

clause_with_joiner(joiner)[source]

Return a clause created by joining together the clauses of all subqueries with the string joiner (padded by spaces).

Parameters:

joiner (str)

Return type:

tuple[str, Sequence[Any]]

abstract clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]

class maestral.database.query.AndQuery(*subqueries)[source]

Bases: CollectionQuery

A conjunction of a list of other queries.

Parameters:

subqueries (Query)

clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]

class maestral.database.query.OrQuery(*subqueries)[source]

Bases: CollectionQuery

A conjunction of a list of other queries.

Parameters:

subqueries (Query)

clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]

class maestral.database.query.NotQuery(subquery)[source]

Bases: Query

A query that matches the negation of its subquery, as a shortcut for performing not(subquery) without using regular expressions.

Parameters:

subquery (Query) – Query to negate.

clause()[source]

Generate the corresponding SQL clause.

Returns:

SQL clause and arguments to substitute.

Return type:

tuple[str, Sequence[Any]]