Fix an MSSQL incompatibility.
This commit is contained in:
parent
026f7aff64
commit
35068618c4
1 changed files with 12 additions and 3 deletions
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue