fix(server): Use inner join
https://github.com/syuilo/misskey/issues/6813#issuecomment-803400023
This commit is contained in:
parent
9bb6dc52b8
commit
d7e7848c92
19 changed files with 91 additions and 91 deletions
|
@ -23,7 +23,7 @@ export async function injectFeatured(timeline: Note[], user?: User | null) {
|
|||
.andWhere(`note.score > 0`)
|
||||
.andWhere(`note.createdAt > :date`, { date: new Date(Date.now() - day) })
|
||||
.andWhere(`note.visibility = 'public'`)
|
||||
.leftJoinAndSelect('note.user', 'user');
|
||||
.innerJoinAndSelect('note.user', 'user');
|
||||
|
||||
if (user) {
|
||||
query.andWhere('note.userId != :userId', { userId: user.id });
|
||||
|
|
|
@ -73,11 +73,11 @@ export default define(meta, async (ps, user) => {
|
|||
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
|
||||
.andWhere(`note.id IN (${ antennaQuery.getQuery() })`)
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser')
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser')
|
||||
.setParameters(antennaQuery.getParameters());
|
||||
|
||||
generateVisibilityQuery(query, user);
|
||||
|
|
|
@ -87,11 +87,11 @@ export default define(meta, async (ps, user) => {
|
|||
//#region Construct query
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate)
|
||||
.andWhere('note.channelId = :channelId', { channelId: channel.id })
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser')
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser')
|
||||
.leftJoinAndSelect('note.channel', 'channel');
|
||||
//#endregion
|
||||
|
||||
|
|
|
@ -71,11 +71,11 @@ export default define(meta, async (ps, user) => {
|
|||
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
|
||||
.andWhere(`note.id IN (${ clipQuery.getQuery() })`)
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser')
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser')
|
||||
.setParameters(clipQuery.getParameters());
|
||||
|
||||
if (user) {
|
||||
|
|
|
@ -87,11 +87,11 @@ export default define(meta, async (ps, user) => {
|
|||
.andWhere(`notification.notifieeId = :meId`, { meId: user.id })
|
||||
.leftJoinAndSelect('notification.notifier', 'notifier')
|
||||
.leftJoinAndSelect('notification.note', 'note')
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
query.andWhere(`notification.notifierId NOT IN (${ mutingQuery.getQuery() })`);
|
||||
query.setParameters(mutingQuery.getParameters());
|
||||
|
|
|
@ -76,11 +76,11 @@ export default define(meta, async (ps) => {
|
|||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
|
||||
.andWhere(`note.visibility = 'public'`)
|
||||
.andWhere(`note.localOnly = FALSE`)
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
if (ps.local) {
|
||||
query.andWhere('note.userHost IS NULL');
|
||||
|
|
|
@ -64,11 +64,11 @@ export default define(meta, async (ps, user) => {
|
|||
}));
|
||||
}));
|
||||
}))
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateVisibilityQuery(query, user);
|
||||
if (user) generateMutedUserQuery(query, user);
|
||||
|
|
|
@ -49,11 +49,11 @@ export default define(meta, async (ps, user) => {
|
|||
.andWhere(`note.score > 0`)
|
||||
.andWhere(`note.createdAt > :date`, { date: new Date(Date.now() - day) })
|
||||
.andWhere(`note.visibility = 'public'`)
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
if (user) generateMutedUserQuery(query, user);
|
||||
|
||||
|
|
|
@ -79,11 +79,11 @@ export default define(meta, async (ps, user) => {
|
|||
ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate)
|
||||
.andWhere('note.visibility = \'public\'')
|
||||
.andWhere('note.channelId IS NULL')
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateRepliesQuery(query, user);
|
||||
if (user) generateMutedUserQuery(query, user);
|
||||
|
|
|
@ -127,11 +127,11 @@ export default define(meta, async (ps, user) => {
|
|||
qb.where(`((note.userId IN (${ followingQuery.getQuery() })) OR (note.userId = :meId))`, { meId: user.id })
|
||||
.orWhere('(note.visibility = \'public\') AND (note.userHost IS NULL)');
|
||||
}))
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser')
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser')
|
||||
.setParameters(followingQuery.getParameters());
|
||||
|
||||
generateChannelQuery(query, user);
|
||||
|
|
|
@ -96,11 +96,11 @@ export default define(meta, async (ps, user) => {
|
|||
const query = makePaginationQuery(Notes.createQueryBuilder('note'),
|
||||
ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate)
|
||||
.andWhere('(note.visibility = \'public\') AND (note.userHost IS NULL)')
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateChannelQuery(query, user);
|
||||
generateRepliesQuery(query, user);
|
||||
|
|
|
@ -63,11 +63,11 @@ export default define(meta, async (ps, user) => {
|
|||
.where(`:meId = ANY(note.mentions)`, { meId: user.id })
|
||||
.orWhere(`:meId = ANY(note.visibleUserIds)`, { meId: user.id });
|
||||
}))
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateVisibilityQuery(query, user);
|
||||
generateMutedUserQuery(query, user);
|
||||
|
|
|
@ -68,11 +68,11 @@ export default define(meta, async (ps, user) => {
|
|||
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
|
||||
.andWhere(`note.renoteId = :renoteId`, { renoteId: note.id })
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateVisibilityQuery(query, user);
|
||||
if (user) generateMutedUserQuery(query, user);
|
||||
|
|
|
@ -59,11 +59,11 @@ export const meta = {
|
|||
export default define(meta, async (ps, user) => {
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
|
||||
.andWhere('note.replyId = :replyId', { replyId: ps.noteId })
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateVisibilityQuery(query, user);
|
||||
if (user) generateMutedUserQuery(query, user);
|
||||
|
|
|
@ -95,11 +95,11 @@ export const meta = {
|
|||
|
||||
export default define(meta, async (ps, me) => {
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateVisibilityQuery(query, me);
|
||||
if (me) generateMutedUserQuery(query, me);
|
||||
|
|
|
@ -79,11 +79,11 @@ export default define(meta, async (ps, me) => {
|
|||
|
||||
query
|
||||
.andWhere('note.text ILIKE :q', { q: `%${ps.query}%` })
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateVisibilityQuery(query, me);
|
||||
if (me) generateMutedUserQuery(query, me);
|
||||
|
|
|
@ -120,11 +120,11 @@ export default define(meta, async (ps, user) => {
|
|||
.where('note.userId = :meId', { meId: user.id });
|
||||
if (hasFollowing) qb.orWhere(`note.userId IN (${ followingQuery.getQuery() })`);
|
||||
}))
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser')
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser')
|
||||
.setParameters(followingQuery.getParameters());
|
||||
|
||||
generateChannelQuery(query, user);
|
||||
|
|
|
@ -130,11 +130,11 @@ export default define(meta, async (ps, user) => {
|
|||
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
|
||||
.andWhere(`note.userId IN (${ listQuery.getQuery() })`)
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser')
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser')
|
||||
.setParameters(listQuery.getParameters());
|
||||
|
||||
generateVisibilityQuery(query, user);
|
||||
|
|
|
@ -131,11 +131,11 @@ export default define(meta, async (ps, me) => {
|
|||
//#region Construct query
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate)
|
||||
.andWhere('note.userId = :userId', { userId: user.id })
|
||||
.leftJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.innerJoinAndSelect('note.reply', 'reply')
|
||||
.innerJoinAndSelect('note.renote', 'renote')
|
||||
.innerJoinAndSelect('reply.user', 'replyUser')
|
||||
.innerJoinAndSelect('renote.user', 'renoteUser');
|
||||
|
||||
generateVisibilityQuery(query, me);
|
||||
if (me) generateMutedUserQuery(query, me, user);
|
||||
|
|
Loading…
Reference in a new issue