summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Yves Chibon <pingou@pingoured.fr>2012-05-18 19:03:20 +0200
committerPierre-Yves Chibon <pingou@pingoured.fr>2012-05-18 19:03:20 +0200
commitfb61bf9db5f5f6d302d547595b54e02f06cdb319 (patch)
tree6c926ac059715e84e4626c7344f97033544e1d7d
parent4eaa857885831e2d4469591adfef026f1124bbb2 (diff)
downloadkittystore-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.py26
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