Antonio-RiveroMartnez commented on code in PR #33357:
URL: https://github.com/apache/superset/pull/33357#discussion_r2075606198
##########
superset/models/helpers.py:
##########
@@ -1888,12 +1888,26 @@ def get_sqla_query( # pylint:
disable=too-many-arguments,too-many-locals,too-ma
elif op in {
utils.FilterOperator.ILIKE.value,
utils.FilterOperator.LIKE.value,
+ utils.FilterOperator.TEXT_SEARCH.value,
}:
if target_generic_type != GenericDataType.STRING:
sqla_col = sa.cast(sqla_col, sa.String)
if op == utils.FilterOperator.LIKE.value:
where_clause_and.append(sqla_col.like(eq))
+ elif op == utils.FilterOperator.TEXT_SEARCH.value:
+ # Convert to string and handle None case
+ search_value = str(eq) if eq is not None else ""
+ if (
+ search_value
+ ): # Only add clause if search value is not empty
+ pattern = search_value.lower()
+ where_clause_and.append(
+ sa.or_(
+ sqla_col.ilike(f"{pattern}%"),
+ sqla_col.ilike(f"% {pattern}%"),
Review Comment:
I see, in that case, extensions like
https://www.postgresql.org/docs/current/pgtrgm.html should be preferred which
would have to leverage some new indexes for those fields you want to search.
That's probably out of the scope of this PR itself, but using hardcoded leading
spaces IMO is not something we should do, not sure what others think tho, so
I'll leave that open
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]