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



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sqlalchemy
-~----------~----~----~----~------~----~------~--~---

Reply via email to