Source code for sqlspec.builder._column

"""Column expressions for query building.

Provides Column objects that support Python operators for building
SQL conditions with parameter binding.
"""

from collections.abc import Iterable
from datetime import date, datetime
from typing import Any, cast

from sqlglot import exp

from sqlspec.builder._vector_distance import VectorDistance

__all__ = ("Column", "ColumnExpression", "FunctionColumn")


class ColumnExpression:
    """Base class for column expressions that can be combined with operators."""

    __slots__ = ("_expression",)

    def __init__(self, expression: exp.Expr) -> None:
        self._expression = expression
def __and__(self, other: "ColumnExpression") -> "ColumnExpression": """Combine with AND operator (&).""" if not isinstance(other, ColumnExpression): return NotImplemented return ColumnExpression(exp.And(this=self._expression, expression=other._expression))