Re: [sqlalchemy] Full table scan using Oracle String indexes

2012-08-02 Thread David Moore
Hi Michael, Indeed, you are correct - adding the message column to the cx_oracle query shows the same behaviour as the sqlalchemy query. Sorry I missed that. I will take these results to the cx_oracle list on this basis. On my second question, though, is there a way to enforce

Re: [sqlalchemy] Full table scan using Oracle String indexes

2012-08-02 Thread David Moore
And for anyone else experiencing this issue, there was a subtle difference in the execution plans that's now apparent. The statement which only selects colid runs a FAST FULL SCAN and successfully converts the unicode parameter using SYS_OP_C2C, and uses the index. When you select both colid

Re: [sqlalchemy] Full table scan using Oracle String indexes

2012-08-02 Thread David Moore
Hi, Further searching seems to indicate this is an Oracle issue, not a cx_Oracle issue. http://www.digipedia.pl/usenet/thread/15912/2814/ - same problem with cx_Oracle http://support.unify.com/supportforum/viewtopic.php?f=40t=3823 - happening with perl drivers.

Re: [sqlalchemy] Full table scan using Oracle String indexes

2012-08-02 Thread Michael Bayer
so the convert_unicode='force' flag is not ideal here as that will spend most of it's time checking for decodes necessary on the result set side, which is a lot of wasted effort. You can customize how strings are handled on the bind side, including per-dialect behavior, using a custom type: