Fix an MSSQL incompatibility.

This commit is contained in:
Yaro Kasear 2025-08-27 09:48:14 -05:00
parent 026f7aff64
commit 35068618c4

View file

@ -1,7 +1,6 @@
from dataclasses import dataclass, field from dataclasses import dataclass, field
from typing import List, Dict, Any, Optional from typing import List, Dict, Any, Optional
from sqlalchemy import asc, desc, select, func from sqlalchemy import asc, desc, select, false()
from sqlalchemy.orm import selectinload, joinedload, Load
@dataclass @dataclass
class QuerySpec: class QuerySpec:
@ -25,7 +24,17 @@ FILTER_OPS = {
} }
def build_query(Model, spec: QuerySpec, eager_policy=None): def build_query(Model, spec: QuerySpec, eager_policy=None):
stmt = select(Model).where(Model.deleted.is_(False)) stmt = select(Model)
# filter out soft-deleted rows
deleted_attr = getattr(Model, "deleted", None)
if deleted_attr is not None:
stmt = stmt.where(deleted_attr == false())
else:
is_deleted_attr = getattr(Model, "is_deleted", None)
if is_deleted_attr is not None:
stmt = stmt.where(is_deleted_attr == false())
# filters # filters
for raw_key, val in spec.filters.items(): for raw_key, val in spec.filters.items():
for op in FILTER_OPS: for op in FILTER_OPS: