Skip to content

Commit 89b5861

Browse files
committed
exclusively cast sort_by columns as string type
1 parent a1f98bb commit 89b5861

File tree

1 file changed

+4
-9
lines changed
  • fastapi_query_tools/sqlalchemy_ext

1 file changed

+4
-9
lines changed

fastapi_query_tools/sqlalchemy_ext/utils.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from typing import Any
2-
from sqlalchemy import Select, inspect, func, FromClause, ColumnElement
2+
from sqlalchemy import Select, inspect, func, FromClause, ColumnElement, String, cast
33
from sqlalchemy.orm import (
44
RelationshipProperty,
55
aliased,
@@ -61,15 +61,10 @@ def filter(entity: Any, column: Any, stmt: Select, query_model: QueryModel) -> S
6161
stmt = stmt.join(related_entity)
6262

6363
# Filter using the combined column
64-
if isinstance(query_model.q, str):
65-
return stmt.filter(combined_column.ilike(f"%{query_model.q}%"))
66-
else:
67-
return stmt.filter(combined_column.contains(query_model.q))
64+
return stmt.filter(cast(combined_column, String).ilike(f"%{query_model.q}%"))
65+
6866
else:
69-
if isinstance(query_model.q, str):
70-
return stmt.filter(column.ilike(f"%{query_model.q}%"))
71-
else:
72-
return stmt.filter(column.contains(query_model.q))
67+
return stmt.filter(cast(column, String).ilike(f"%{query_model.q}%"))
7368

7469

7570
def sort(entity: Any, column: Any, stmt: Select, query_model: QueryModel) -> Select:

0 commit comments

Comments
 (0)