ah right, the statement caching code has been updated recently when I 
transitioned from dogpile, it just needs this:

diff --git a/examples/dogpile_caching/caching_query.py 
b/examples/dogpile_caching/caching_query.py
index f4724fb..fb019cc 100644
--- a/examples/dogpile_caching/caching_query.py
+++ b/examples/dogpile_caching/caching_query.py
@@ -136,7 +136,7 @@ def _key_from_query(query, qualifier=None):
 
     """
 
-    stmt = query.statement
+    stmt = query.with_labels().statement
     compiled = stmt.compile()
     params = compiled.params
 

that's fixed in master right now.



On May 28, 2013, at 1:19 AM, John Anderson <son...@gmail.com> wrote:

> Sorry, re-sending, I accidentally replied directly to Mike:
> 
> Here is a small gist that shows how to reproduce it:
> 
> https://gist.github.com/sontek/5660624
> 
> If you use that along with the caching query stuff in the examples and run it 
> you should get the following error:
> 
> SAWarning: Column 'date_created' on table <sqlalchemy.sql.expression.Select 
> at 0x313f090; Select object> being replaced by another column with the same 
> key.  Consider use_labels for select() statements.
> SAWarning: Column 'pk' on table <sqlalchemy.sql.expression.Select at 
> 0x313f090; Select object> being replaced by another column with the same key. 
>  Consider use_labels for select() statements.
> 
> but if you add _with_labels to the CachingQuery class it will all work as 
> expected.
> 
> 
> 
> 
> On Monday, May 27, 2013 6:47:37 PM UTC-7, Michael Bayer wrote:
> I use this recipe extensively (and have for several years), can you provide a 
> test case that generates that warning?
> 
> 
> On May 27, 2013, at 9:01 PM, John Anderson <son...@gmail.com> wrote:
> 
>> I'm trying to adopt the examples from:
>> 
>> https://bitbucket.org/zzzeek/sqlalchemy/src/e2b8c893ca98/examples/dogpile_caching/
>> 
>> to work with my code base and so I've copy and pasted the caching_query.py 
>> into my project and started doing queries like this:
>> 
>> 
>> DBSession = scoped_session(
>>     sessionmaker(query_cls=query_callable(regions))
>> )
>> 
>> 
>> def get_user_by_username(session, username, with_profile=True):
>>     query = session.query(User).filter(
>>         User.username == username
>>     ).options(FromCache("default"))
>>     
>>     if with_profile:
>>         query = query.options(
>>             joinedload('profile')
>>             , RelationshipCache(User.profile)
>>         )
>> 
>>     user = query.one()
>> 
>>     return user
>> 
>> 
>> 
>> The first problem I see is now its complaining about conflicting column 
>> names:
>> 
>> /home/sontek/.virtualenvs/notaliens3/src/notaliens.com/eggs/SQLAlchemy-0.8.1-py3.3.egg/sqlalchemy/sql/expression.py:2471:
>>  SAWarning: Column 'pk' on table <sqlalchemy.sql.expression.Select at 
>> 0x7fdd7af2e2d0; Select object> being replaced by another column with the 
>> same key.  Consider use_labels for select() statements.
>>   self[column.key] = column
>> 
>> 
>> I was able to fix this by adding _with_labels = True to the CachingQuery 
>> code but not sure if that is the best place to do that.
>> 
>> Without the caching query it was generating the labels correctly.
>> 
>> 
>> The only other problem I had with the example was that it is using unicode() 
>> which isn't python3 compatible but that was also a pretty easy fix.
>> 
>> 
>> 
>> Thanks for the example!  Is there a reason it has to live in examples rather 
>> than being a part of SQLAlchemy or a 3rd glue package?  It seems to work 
>> well 
>> 
>> -- 
>> 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+...@googlegroups.com.
>> To post to this group, send email to sqlal...@googlegroups.com.
>> Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
>> 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?hl=en.
> 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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to