diff options
author | Pierre-Yves Chibon <pingou@pingoured.fr> | 2012-05-18 19:03:20 +0200 |
---|---|---|
committer | Pierre-Yves Chibon <pingou@pingoured.fr> | 2012-05-18 19:03:20 +0200 |
commit | fb61bf9db5f5f6d302d547595b54e02f06cdb319 (patch) | |
tree | 6c926ac059715e84e4626c7344f97033544e1d7d | |
parent | 4eaa857885831e2d4469591adfef026f1124bbb2 (diff) | |
download | kittystore-fb61bf9db5f5f6d302d547595b54e02f06cdb319.tar.gz kittystore-fb61bf9db5f5f6d302d547595b54e02f06cdb319.tar.xz kittystore-fb61bf9db5f5f6d302d547595b54e02f06cdb319.zip |
Replace query union by the use of or, which makes much more sense
-rw-r--r-- | kittystore/kittysastore.py | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/kittystore/kittysastore.py b/kittystore/kittysastore.py index f40817c..1b51770 100644 --- a/kittystore/kittysastore.py +++ b/kittystore/kittysastore.py @@ -21,7 +21,7 @@ from kittystore import KittyStore from kittystore.kittysamodel import get_class_object -from sqlalchemy import create_engine, distinct, MetaData, and_, desc +from sqlalchemy import create_engine, distinct, MetaData, and_, desc, or_ from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from sqlalchemy.orm.exc import NoResultFound @@ -195,7 +195,7 @@ class KittySAStore(KittyStore): email = get_class_object(list_to_table_name(list_name), 'email', self.metadata) mails = self.session.query(email).filter( - email.content.like('%{0}%'.format(keyword)) + email.content.ilike('%{0}%'.format(keyword)) ).order_by(email.date).all() mails.reverse() return mails @@ -211,12 +211,10 @@ class KittySAStore(KittyStore): """ email = get_class_object(list_to_table_name(list_name), 'email', self.metadata) - mails = self.session.query(email).filter( - email.content.like('%{0}%'.format(keyword)) - ).order_by(email.date).all() - mails.extend(self.session.query(email).filter( - email.subject.like('%{0}%'.format(keyword)) - ).order_by(email.date).all()) + mails = self.session.query(email).filter(or_( + email.content.ilike('%{0}%'.format(keyword)), + email.subject.ilike('%{0}%'.format(keyword)) + )).order_by(email.date).all() mails.reverse() return mails @@ -230,12 +228,10 @@ class KittySAStore(KittyStore): """ email = get_class_object(list_to_table_name(list_name), 'email', self.metadata) - mails = self.session.query(email).filter( - email.sender.like('%{0}%'.format(keyword)) - ).order_by(email.date).all() - mails.extend(self.session.query(email).filter( - email.email.like('%{0}%'.format(keyword)) - ).order_by(email.date).all()) + mails = self.session.query(email).filter(or_( + email.sender.ilike('%{0}%'.format(keyword)), + email.email.ilike('%{0}%'.format(keyword)) + )).order_by(email.date).all() mails.reverse() return mails @@ -250,7 +246,7 @@ class KittySAStore(KittyStore): email = get_class_object(list_to_table_name(list_name), 'email', self.metadata) mails = self.session.query(email).filter( - email.subject.like('%{0}%'.format(keyword)) + email.subject.ilike('%{0}%'.format(keyword)) ).order_by(email.date).all() mails.reverse() return mails |