I got a test case working. It seems that the limit/offset operations have 
an effect. The script fails less than half the time and so far only fails 
when I run python with the -R flag


import sqlalchemy as sa
import sqlalchemy.orm as saorm
from sqlalchemy.ext.declarative import declarative_base

engine = 
sa.create_engine('mssql+pymssql://badams:password@192.168.56.101:1443/testdb', 
echo=True)
session = saorm.sessionmaker(bind=engine)()

Base = declarative_base()

class Person(Base):
    __tablename__ = 'people'
    id = sa.Column(sa.Integer, primary_key=True)
    name = sa.Column(sa.String)

Base.metadata.create_all(engine)

session.query(Person).delete()

session.add(Person(name='foo'))
session.add(Person(name='bar'))

session.commit()

results = session.query(
    Person.name.label('person'),
).add_entity(
    Person
).order_by(
    Person.name
)

print results.count()
print results.limit(1).offset(1).all()




Thanks,
Bill


On Friday, February 19, 2016 at 11:20:44 PM UTC-5, Bill Adams wrote:
>
> Yes, that is what I was trying to describe. I've been trying to create a 
> simple test case but have as of yet been unable to reproduce the problem in 
> a simpler environment. I was hoping someone had encountered something 
> similar before. I'll keep trying to get that MCVE "working"..
>
> Thanks,
> Bill
>
> On Fri, Feb 19, 2016 at 11:13 PM, Mike Bayer <clas...@zzzcomputing.com> 
> wrote:
>
>>
>>
>> On Fri, Feb 19, 2016 at 9:30 PM, <bill.ad...@level12.io> wrote:
>>
>>>
>>> The issue seems to be occurring for queries where we use the 
>>> add_entity() method to select a declarative model entity when a column 
>>> from the same table is already in the query constructor and labeled. 
>>>
>>
>> just to make sure, here is that:
>>
>> from sqlalchemy import *
>> from sqlalchemy.orm import *
>> from sqlalchemy.ext.declarative import declarative_base
>>
>> Base = declarative_base()
>>
>>
>> class A(Base):
>>     __tablename__ = 'a'
>>     id = Column(Integer, primary_key=True)
>>     x = Column(Integer)
>>
>> e = create_engine("postgresql://scott:tiger@localhost/test", echo=True)
>> Base.metadata.drop_all(e)
>> Base.metadata.create_all(e)
>>
>>
>> s = Session(e)
>>
>> s.add(A(x=5))
>> s.commit()
>>
>> print s.query(A.x.label("foo")).add_entity(A).all()
>>
>>
>> query output at the end:
>>
>> BEGIN (implicit)
>> 2016-02-19 23:12:33,455 INFO sqlalchemy.engine.base.Engine SELECT a.x AS 
>> foo, a.id AS a_id, a.x AS a_x 
>> FROM a
>> 2016-02-19 23:12:33,455 INFO sqlalchemy.engine.base.Engine {}
>> [(5, <__main__.A object at 0x7f0c2fd94990>)]
>>
>>
>> -- 
>> 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.
>>
>
>
>
> -- 
>
> *Bill Adams*
> Developer
> Direct: 502.276.1006
> Office: 812.285.8766
>
>

-- 
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