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:
  • query (Query) –

  • order_expr (str) –

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]]