Jonathan Vanasco:

Thank you. That's a good idea but in this case, I'm really wondering if 
sqlalchemy should use that small change to improve performance quite a bit 
in this type of queries.
Otherwise, I think I would need to rely on raw SQL to perform a similarity 
operation and I'm not sure if `session.execute` provides the same checks to 
prevent SQL injections (which is my main reason to use sqlalchemy in the 
first place). 

Regards

On Thursday, March 31, 2016 at 1:43:50 PM UTC-6, Jonathan Vanasco wrote:
>
>
>
> On Thursday, March 31, 2016 at 9:43:11 AM UTC-4, Mike Bayer wrote:
>>
>> this is more of a Postgresql optimization question so I dont have any 
>> insight on that. 
>>
>
> FWIW, I generally handle these types of "optimize postgres" queries using 
> a function to apply the filter - like this: 
>
>     def filter_Table_field_a(query, value, optimize=False):
>         """Table.field_a has a partial index on a substring of field_a
>             it will only be consulted by the planner if used in a query."""
>         query = query.filter(model.core.Table.field_a = value, )
>         if optimize:
>             query = query.filter(func.substr(model.core.Table.field_a, 0, 
> 5)) == value[:4], )
>         return query
>
>
>     def filter_Table_field_b(query, value, optimize=False):
>         """Table.field_b has a uniqueindex on a lower(field_b);
>             it will only be consulted by the planner if used in a query."""
>         query = query.filter(model.core.Table.field_b = value, )
>         if optimize:
>             query = query.filter(func.lower(model.core.Table.field_b)) == 
> value.lower(), )
>         return query
>
> q = s.query(TableA)
> q = filter_Table_field_b(q, 'hello', optimize=True)
>
> I toggle the optimization, because some queries will perform better with 
> it off.  
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to