4623
2015-10-08 13:51:12
0
Q. 이 코드에는 리스트가 누락되는 버그가 있다. 이 버그가 발생하는 지점과 원인이 무엇인가?
select_chat = Chat.query.filter(and_(Chat.deleted == False, Chat.member.contains([member_uid]))).subquery()
count_unread_message = db_session.query(
func.count(
case([(select_chat.c.member.contains([member_uid]) == read, 1)], else_=None)
).label('unread'),
func.max(Message._created).label('last_date'),
select_chat.c.uid)
.select_from(Message)
.join(select_chat, Message.chat_uid == select_chat.c.uid)
.filter(Message.deleted == False)
.group_by(select_chat.c.uid)
.subquery()
join_chat = db_session.query(Chat, count_unread_message.c.unread, count_unread_message.c.last_date)
.join(count_unread_message, Chat.uid == count_unread_message.c.uid)
.subquery()
distinct_message = db_session.query(Message, Chat, join_chat.c.unread)
.join(join_chat, and_(join_chat.c.uid == Message.chat_uid, join_chat.c.last_date == Message._created))
.distinct(Chat.uid, Message.uid, join_chat.c.last_date)
Q. 다음 코드의 역할은?
lambda data: data and uuid.UUID(data) or None)