because the available columns of the selectable is always treated
based on the columns declared. the FROM/WHERE is like the "backend"
to the query and the column clauses are the "public interface". heh.
On Oct 30, 2006, at 7:02 PM, Jonathan Ellis wrote:
>
> Heh, that was easy.
>
> I'm curious now, though, why it can't find the primary key with the
> revised select you gave. (Works fine when I manually tell the mapper
> what to use.)
>
> On 10/30/06, Michael Bayer <[EMAIL PROTECTED]> wrote:
>> interesting ! that answers that question (i.e., the question
>> above the
>> assertion statement....) changed it to a "continue" in rev 2072.
>>
>> however, your mapping isnt going to work with those textual
>> columns anyway
>> since it cant intelligently construct an aliased select from it,
>> you have to
>> say:
>>
>> s = select([b.c.published_year, func.count('*').label('n')],
>> from_obj=[b],
>> group_by=[b.c.published_year])
>>
>> i guess you already knew that.
>>
>>
>> On Oct 30, 2006, at 6:19 PM, Jonathan Ellis wrote:
>>
>>
>> from sqlalchemy import *
>>
>>
>>
>>
>> e = create_engine('sqlite:///:memory:', echo=True)
>>
>>
>>
>>
>> md = BoundMetaData(e)
>>
>> sql = """
>>
>> CREATE TABLE books (
>>
>> id integer PRIMARY KEY, -- auto-SERIAL in
>> sqlite
>>
>> title text NOT NULL,
>>
>> published_year char(4) NOT NULL,
>>
>> authors text NOT NULL
>>
>> )
>>
>> """
>>
>> e.execute(sql)
>>
>>
>>
>>
>> b = Table('books', md, autoload=True)
>>
>> s = select(["published_year", "count(*) as n"], from_obj=[b],
>>
>> group_by=[b.c.published_year])
>>
>> s = s.alias('years_with_count')
>>
>>
>>
>>
>> class YearWithCount(object):
>>
>> pass
>>
>>
>>
>>
>> mapper = mapper(YearWithCount, s)
>>
>> session = create_session()
>>
>> q = session.query(YearWithCount)
>>
>> q.select_by(published_year='2006')
>>
>>>
>>
>
>
> --
> Jonathan Ellis
> http://spyced.blogspot.com
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sqlalchemy
-~----------~----~----~----~------~----~------~--~---