luminadb.query_builder module

Query Builder

luminadb.query_builder.build_delete(table_name: str, condition: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, limit: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None) tuple[str, dict[str, Any]][source]

Build delete query

Parameters:
  • table_name (str) – Table name

  • condition (Condition, optional) – Condition to limit deletion. Defaults to None.

  • limit (int, optional) – Limit to limit deletion. Defaults to 0.

  • order (Optional[Orders], optional) – Order. Defaults to None.

Returns:

query, query data

Return type:

tuple[str, dict[str, Any]]

luminadb.query_builder.build_insert(table_name: str, data: dict[str, Any]) tuple[str, dict[str, Any]][source]

Build insert query

Parameters:
  • table_name (str) – table name

  • data (Data) – Data to insert

Returns:

query, query data

Return type:

tuple[str, dict[str, Any]]

luminadb.query_builder.build_select(table_name: str, condition: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, only: tuple[str, ...] | ParsedFn | str | Literal['*'] = '*', limit: int = 0, offset: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None) tuple[str, dict[str, Any]][source]

Build select query (this function (backendly) cache!)

Parameters:
  • table_name (str) – Table name

  • condition (Condition, optional) – Condition to use. Defaults to None.

  • only – (OnlyColumn, optional): Select what you want. Default to None.

  • limit (int, optional) – Limit query (this also limits DB-API 2 .fetchall). Defaults to 0.

  • offset (int, optional) – Offset. Defaults to 0.

  • order (Optional[Orders], optional) – Order. Defaults to None.

Returns:

query and query data

Return type:

tuple[str, dict[str, Any]]

luminadb.query_builder.build_update(table_name: str, new_data: dict[str, Any], condition: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, limit: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None) tuple[str, dict[str, Any]][source]

Build update query (once again, this function backendly cache)

Parameters:
  • table_name (str) – Table name

  • new_data (Data) – New data to update

  • condition (Condition, optional) – Condition to limit what to update. Defaults to None.

  • limit (int, optional) – limit chanes. Defaults to 0.

  • order (Optional[Orders], optional) – What order of change?. Defaults to None.

Returns:

query, query data

Return type:

tuple[str, dict[str, Any]]

luminadb.query_builder.build_update_data(data: dict[str, Any] | tuple[str, ...], suffix: str = '_set')[source]

Build update data, used to parameterized update data. Suffix is used to make sure there’s no collisions with others. Use this with caution.