コード例 #1
0
def __get_expanded_tuples(inner_table):
    sql = """
with ids as ({0})
select a.id, a.name, a.affiliation,
  pa.authorid, pa.paperid, pa.name, pa.affiliation,
  p.id, p.title, p.year, p.keyword,
  c.id, c.shortname, c.fullname,
  j.id, j.shortname, j.fullname
from ids
  inner join paperauthor pa on ids.authorid = pa.authorid and ids.paperid = pa.paperid
  inner join author a on pa.authorid = a.id
  inner join paper p on pa.paperid = p.id
  left join conference c on p.conferenceid = c.id
  left join journal j on p.journalid = j.id
""".format(inner_table)
    build_from_row = lambda r: Expanded(author=Author._make(r[0:3])
                                        if r[0] else None,
                                        paperauthor=PaperAuthor._make(r[3:7])
                                        if r[3] and r[4] else None,
                                        paper=Paper._make(r[7:11])
                                        if r[7] else None,
                                        conference=Conference._make(r[11:14])
                                        if r[11] else None,
                                        journal=Journal._make(r[14:17])
                                        if r[14] else None)

    return [build_from_row(r) for r in __execute_sql(sql)]
コード例 #2
0
ファイル: data.py プロジェクト: dmacthedestroyer/paperauthor
def __get_expanded_tuples(inner_table):
    sql = """
with ids as ({0})
select a.id, a.name, a.affiliation,
  pa.authorid, pa.paperid, pa.name, pa.affiliation,
  p.id, p.title, p.year, p.keyword,
  c.id, c.shortname, c.fullname,
  j.id, j.shortname, j.fullname
from ids
  inner join paperauthor pa on ids.authorid = pa.authorid and ids.paperid = pa.paperid
  inner join author a on pa.authorid = a.id
  inner join paper p on pa.paperid = p.id
  left join conference c on p.conferenceid = c.id
  left join journal j on p.journalid = j.id
""".format(inner_table)
    build_from_row = lambda r: Expanded(author=Author._make(r[0:3]) if r[0] else None,
                                        paperauthor=PaperAuthor._make(r[3:7]) if r[3] and r[4] else None,
                                        paper=Paper._make(r[7:11]) if r[7] else None,
                                        conference=Conference._make(r[11:14]) if r[11] else None,
                                        journal=Journal._make(r[14:17]) if r[14] else None)

    return [build_from_row(r) for r in __execute_sql(sql)]