Build any, all, contains requests

Build all One commands.

build_all(command, sqle)

Build an all request.

Parameters:
  • command (Command) – Command to build.

  • sqle (SQLEnumerableData) – SQLEnumerable with connection, flags, list of commands and a table.

Returns:
  • str – Request to execute.

Exceptions:
  • psycopg.Error – Indirect raise by get_predicates_as_str.

  • TableError – Indirect raise by get_predicates_as_str.

  • TypeError – Indirect raise by get_predicates_as_str.

  • TypeOperatorError – Indirect raise by get_predicates_as_str.

Source code in py_linq_sql/build_request/one.py
def build_all(command: Command, sqle: SQLEnumerableData) -> str:
    """
    Build an all request.

    Args:
        command: Command to build.
        sqle: SQLEnumerable with connection, flags, list of commands and a table.

    Returns:
        Request to execute.

    Raises:
        psycopg.Error: Indirect raise by `get_predicates_as_str`.
        TableError: Indirect raise by `get_predicates_as_str`.
        TypeError: Indirect raise by `get_predicates_as_str`.
        TypeOperatorError: Indirect raise by `get_predicates_as_str`.
    """
    fquery = command.args.fquery

    result = [f"SELECT CASE WHEN ((SELECT COUNT(*) FROM {sqle.table} WHERE"]

    get_predicates_as_str(result, fquery, sqle)

    result.append(
        f") = (SELECT COUNT(*) FROM {sqle.table})) THEN 1 ELSE 0 END FROM {sqle.table}",
    )

    return " ".join(result)

build_any(command, sqle)

Build an any request.

Parameters:
  • command (Command) – Command to build.

  • sqle (SQLEnumerableData) – SQLEnumerable with connection, flags, list of commands and a table.

Returns:
  • str – Request to execute.

Exceptions:
  • psycopg.Error – Indirect raise by get_predicates_as_str.

  • TableError – Indirect raise by get_predicates_as_str.

  • TypeError – Indirect raise by get_predicates_as_str.

  • TypeOperatorError – Indirect raise by get_predicates_as_str.

Source code in py_linq_sql/build_request/one.py
def build_any(command: Command, sqle: SQLEnumerableData) -> str:
    """
    Build an any request.

    Args:
        command: Command to build.
        sqle: SQLEnumerable with connection, flags, list of commands and a table.

    Returns:
        Request to execute.

    Raises:
        psycopg.Error: Indirect raise by `get_predicates_as_str`.
        TableError: Indirect raise by `get_predicates_as_str`.
        TypeError: Indirect raise by `get_predicates_as_str`.
        TypeOperatorError: Indirect raise by `get_predicates_as_str`.
    """
    fquery = command.args.fquery

    result = [f"SELECT * FROM {sqle.table}"]

    if not fquery:
        return result[0]

    result.append("WHERE")

    get_predicates_as_str(result, fquery, sqle)

    return " ".join(result)

build_contains(command, sqle)

Build an contains request.

Parameters:
  • command (Command) – Command to build.

  • sqle (SQLEnumerableData) – SQLEnumerable with connection, flags, list of commands and a table.

Returns:
  • str – Request to execute.

Exceptions:
  • psycopg.Error – Indirect raise by build_any.

  • TableError – Indirect raise by build_any.

  • TypeError – Indirect raise by build_any.

  • TypeOperatorError – Indirect raise by build_any.

  • ValueError – Indirect raise by _contains_dict.

Source code in py_linq_sql/build_request/one.py
def build_contains(command: Command, sqle: SQLEnumerableData) -> str:
    """
    Build an contains request.

    Args:
        command: Command to build.
        sqle: SQLEnumerable with connection, flags, list of commands and a table.

    Returns:
        Request to execute.

    Raises:
        psycopg.Error: Indirect raise by `build_any`.
        TableError: Indirect raise by `build_any`.
        TypeError: Indirect raise by `build_any`.
        TypeOperatorError: Indirect raise by `build_any`.
        ValueError: Indirect raise by `_contains_dict`.
    """
    fquery = command.args.fquery

    match fquery:
        case dict():
            return _contains_dict(sqle, fquery)
        case _:
            return build_any(command, sqle)