You shouldn't need to write special code for this, have you tried changing the escape character?
e.execute(t.select(t.c.a.like('\\', escape="~")) where ~ could be any substitute escape character. I don't have Postgres currently available, but their docs also state that and empty string will disable escaping; don't know if the Python modules support that feature. http://docs.sqlalchemy.org/en/rel_0_8/core/expression_api.html?highlight=.like#sqlalchemy.sql.operators.ColumnOperators.like -- Mike Conley On Fri, Jun 28, 2013 at 6:19 AM, Simon King <si...@simonking.org.uk> wrote: > On Fri, Jun 28, 2013 at 11:05 AM, Burak Arslan > <burak.ars...@arskom.com.tr> wrote: > > On 06/28/13 11:55, Simon King wrote: > >> When you write this: > >>>>> e.execute(t.select(t.c.a.like('\\'))) > >> ...the pattern that you are sending to SA is a single backslash, and > >> SA is forwarding that directly to PG. What do you think the behaviour > >> should be in this case? > >> > > > > Well, I'd prefer sqlalchemy did not leak such quirks and escape strings > > sent to .like() accordingly. > > > > In other words, I want the two to be equivalent: > > > >>>> e.execute(t.select(t.c.a.like('\\'))) > >>>> e.execute(t.select(t.c.a == '\\')) > > > > Otherwise, I'll have to implement a psql_escape_for_like function and > > make it run like so: > > > >>>> e.execute(t.select(t.c.a.like(psql_escape_for_like(whatever)))) > > > > I wouldn't really prefer to go down this route -- it's ugly!.. > > Ah, OK, I see what you mean now. I'm not sure this could be changed > without breaking backwards compatibility. I wonder if you could do > something with the compiler module > (http://docs.sqlalchemy.org/en/rel_0_8/core/compiler.html). > > Simon > > -- > 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 http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- 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 http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/groups/opt_out.