fix(server): Use inner join
This commit is contained in:
		
							parent
							
								
									c52b504140
								
							
						
					
					
						commit
						70b129cc42
					
				
					 18 changed files with 18 additions and 18 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,7 +73,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,7 +87,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,7 +71,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,7 +76,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ export default define(meta, async (ps, user) => {
 | 
			
		|||
				}));
 | 
			
		||||
			}));
 | 
			
		||||
		}))
 | 
			
		||||
		.leftJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,7 +49,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,7 +79,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -127,7 +127,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,7 +96,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,7 +63,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,7 +68,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -95,7 +95,7 @@ export const meta = {
 | 
			
		|||
 | 
			
		||||
export default define(meta, async (ps, me) => {
 | 
			
		||||
	const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
 | 
			
		||||
		.leftJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,7 +79,7 @@ export default define(meta, async (ps, me) => {
 | 
			
		|||
 | 
			
		||||
		query
 | 
			
		||||
			.andWhere('note.text ILIKE :q', { q: `%${ps.query}%` })
 | 
			
		||||
			.leftJoinAndSelect('note.user', 'user')
 | 
			
		||||
			.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
			.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
			.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
			.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -120,7 +120,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -130,7 +130,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -131,7 +131,7 @@ 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')
 | 
			
		||||
		.innerJoinAndSelect('note.user', 'user')
 | 
			
		||||
		.leftJoinAndSelect('note.reply', 'reply')
 | 
			
		||||
		.leftJoinAndSelect('note.renote', 'renote')
 | 
			
		||||
		.leftJoinAndSelect('reply.user', 'replyUser')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue