Embarrassingly, I'm gotten lost in calling SQL functions in SQLAlchemy
0.7.1.

I can boil the problem down to the following table structure:

CREATE TABLE words (
        id INTEGER NOT NULL,
        timestamp DATETIME NOT NULL,
        word TEXT NOT NULL,
        PRIMARY KEY (id),
        UNIQUE (word)
);

...where I would like to find the maximum & minimum stored string lengths.
eg.

SELECT MAX(LENGTH(word), MAX(LENGTH(word)) FROM words;

The code below constructs & populates the table correctly, but translating
the above SQL into something more Pythonic is eluding me.  Any suggestions
would be welcomed, as I'm in a rut.

Thanks.

#====8<------------

#!/usr/bin/env python

from datetime import datetime

from sqlalchemy import create_engine, Column, func
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy.dialects.sqlite import INTEGER, DATETIME, TEXT

Base = declarative_base()

def get_dbname():
    return 'test.db'

class Word(Base):
    __tablename__ = 'words'

    id = Column(INTEGER, primary_key=True)
    timestamp = Column(DATETIME, nullable=False, default=datetime.now())
    word = Column(TEXT, nullable=False, unique=True)

    def __init__(self, word):
        self.word = word

    def __repr__(self):
        return '<Word(%d, %s, "%s")>' % (self.id, self.timestamp, self.word)

if __name__ == '__main__':
    engine = create_engine('sqlite:///' + get_dbname(), echo=True)
    Base.metadata.create_all(engine)
    Session = sessionmaker(bind=engine)
    session = Session()

    words = """THE OF AND TO A IN THAT IS WAS HE FOR IT WITH AS HIS ON BE AT
                    SAME ANOTHER KNOW WHILE LAST""".split()

    for w in words:
        session.add(Word(w))
    session.commit()

    print 'total words = %d' % session.query(Word).count()

    # minimum length = ?
    # maximum length = ?

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to