Merge lp:~stefanor/ibid/factoid-384640 into lp:~ibid-core/ibid/old-trunk-pack-0.92

Proposed by Stefano Rivera
Status: Merged
Approved by: Stefano Rivera
Approved revision: 669
Merged at revision: 682
Proposed branch: lp:~stefanor/ibid/factoid-384640
Merge into: lp:~ibid-core/ibid/old-trunk-pack-0.92
Diff against target: None lines
To merge this branch: bzr merge lp:~stefanor/ibid/factoid-384640
Reviewer Review Type Date Requested Status
Michael Gorven Approve
Jonathan Hitchcock Approve
Review via email: mp+7720@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Michael Gorven (mgorven) wrote :

Will the index be created for new databases as well?

Revision history for this message
Stefano Rivera (stefanor) wrote :

> Will the index be created for new databases as well?

Yes, that's what unique=True does

Revision history for this message
Jonathan Hitchcock (vhata) :
review: Approve
Revision history for this message
Michael Gorven (mgorven) wrote :

 review approve

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ibid/plugins/factoid.py'
--- ibid/plugins/factoid.py 2009-06-17 11:58:36 +0000
+++ ibid/plugins/factoid.py 2009-06-20 17:47:50 +0000
@@ -2,7 +2,7 @@
2import re2import re
3import logging3import logging
44
5from sqlalchemy import Column, Integer, Unicode, DateTime, ForeignKey, UnicodeText, Table, or_5from sqlalchemy import Column, Integer, Unicode, DateTime, ForeignKey, UnicodeText, Table, Index, or_
6from sqlalchemy.orm import relation, eagerload6from sqlalchemy.orm import relation, eagerload
7from sqlalchemy.sql import func7from sqlalchemy.sql import func
88
@@ -20,7 +20,7 @@
20class FactoidName(Base):20class FactoidName(Base):
21 __table__ = Table('factoid_names', Base.metadata,21 __table__ = Table('factoid_names', Base.metadata,
22 Column('id', Integer, primary_key=True),22 Column('id', Integer, primary_key=True),
23 Column('name', Unicode(128), nullable=False),23 Column('name', Unicode(128), nullable=False, unique=True),
24 Column('factoid_id', Integer, ForeignKey('factoids.id'), nullable=False),24 Column('factoid_id', Integer, ForeignKey('factoids.id'), nullable=False),
25 Column('identity_id', Integer, ForeignKey('identities.id')),25 Column('identity_id', Integer, ForeignKey('identities.id')),
26 Column('time', DateTime, nullable=False, default=func.current_timestamp()),26 Column('time', DateTime, nullable=False, default=func.current_timestamp()),
@@ -30,8 +30,10 @@
30 class FactoidNameSchema(VersionedSchema):30 class FactoidNameSchema(VersionedSchema):
31 def upgrade_1_to_2(self):31 def upgrade_1_to_2(self):
32 self.add_column(Column('factpack', Integer, ForeignKey('factpacks.id')))32 self.add_column(Column('factpack', Integer, ForeignKey('factpacks.id')))
33 def upgrade_2_to_3(self):
34 Index('name', self.table.c.name, unique=True).create(bind=self.upgrade_session.bind)
3335
34 __table__.versioned_schema = FactoidNameSchema(__table__, 2)36 __table__.versioned_schema = FactoidNameSchema(__table__, 3)
3537
36 def __init__(self, name, identity_id, factoid_id=None, factpack=None):38 def __init__(self, name, identity_id, factoid_id=None, factpack=None):
37 self.name = name39 self.name = name
@@ -240,9 +242,15 @@
240 event.addresponse(u"That makes no sense, they *are* the same")242 event.addresponse(u"That makes no sense, they *are* the same")
241 return243 return
242244
243 factoid = event.session.query(Factoid).join(Factoid.names)\245 factoid = event.session.query(Factoid).join(Factoid.names) \
244 .filter(func.lower(FactoidName.name)==escape_name(source).lower()).first()246 .filter(func.lower(FactoidName.name)==escape_name(source).lower()).first()
245 if factoid:247 if factoid:
248 target_factoid = event.session.query(FactoidName) \
249 .filter(func.lower(FactoidName.name)==escape_name(target).lower()).first()
250 if target_factoid:
251 event.addresponse(u"I already know stuff about %s", target)
252 return
253
246 name = FactoidName(escape_name(unicode(target)), event.identity)254 name = FactoidName(escape_name(unicode(target)), event.identity)
247 factoid.names.append(name)255 factoid.names.append(name)
248 event.session.save_or_update(factoid)256 event.session.save_or_update(factoid)

Subscribers

People subscribed via source and target branches