Source code for dae.utils.sql_utils

from typing import Any

import sqlglot
from sqlglot import expressions


[docs] def to_duckdb_transpile(query: Any) -> str: return sqlglot.transpile(query.sql(), read="duckdb")[0]
[docs] def glot_and(left_expr: Any, right_expr: Any) -> Any: return left_expr.and_(right_expr)
[docs] def fill_query_parameters(query: Any, params: list[Any]) -> None: """Filll query parameters.""" placeholders = list(query.find_all(expressions.Placeholder)) if len(placeholders) != len(params): raise ValueError( f"Query has {len(params)} parameters," f" received: {len(placeholders)}", ) for placeholder, param in zip(placeholders, params, strict=True): placeholder.replace(param)