@@ -180,17 +180,21 @@ func CountOrphanedLabels() (int64, error) {
180180 }
181181
182182 norepo , err := x .Table ("label" ).
183- Join ("LEFT" , "repository" , "label.repo_id=repository.id" ).
184- Where (builder.IsNull {"repository.id" }).And (builder.Gt {"label.repo_id" : 0 }).
185- Count ("id" )
183+ Where (builder .And (
184+ builder.Gt {"repo_id" : 0 },
185+ builder .NotIn ("repo_id" , builder .Select ("id" ).From ("repository" )),
186+ )).
187+ Count ()
186188 if err != nil {
187189 return 0 , err
188190 }
189191
190192 noorg , err := x .Table ("label" ).
191- Join ("LEFT" , "`user`" , "label.org_id=`user`.id" ).
192- Where (builder.IsNull {"`user`.id" }).And (builder.Gt {"label.org_id" : 0 }).
193- Count ("id" )
193+ Where (builder .And (
194+ builder.Gt {"org_id" : 0 },
195+ builder .NotIn ("org_id" , builder .Select ("id" ).From ("user" )),
196+ )).
197+ Count ()
194198 if err != nil {
195199 return 0 , err
196200 }
@@ -206,17 +210,21 @@ func DeleteOrphanedLabels() error {
206210 }
207211
208212 // delete labels with none existing repos
209- if _ , err := x .In ("id" , builder .Select ("label.id" ).From ("label" ).
210- Join ("LEFT" , "repository" , "label.repo_id=repository.id" ).
211- Where (builder.IsNull {"repository.id" }).And (builder.Gt {"label.repo_id" : 0 })).
213+ if _ , err := x .
214+ Where (builder .And (
215+ builder.Gt {"repo_id" : 0 },
216+ builder .NotIn ("repo_id" , builder .Select ("id" ).From ("repository" )),
217+ )).
212218 Delete (Label {}); err != nil {
213219 return err
214220 }
215221
216222 // delete labels with none existing orgs
217- if _ , err := x .In ("id" , builder .Select ("label.id" ).From ("label" ).
218- Join ("LEFT" , "`user`" , "label.org_id=`user`.id" ).
219- Where (builder.IsNull {"`user`.id" }).And (builder.Gt {"label.org_id" : 0 })).
223+ if _ , err := x .
224+ Where (builder .And (
225+ builder.Gt {"org_id" : 0 },
226+ builder .NotIn ("org_id" , builder .Select ("id" ).From ("user" )),
227+ )).
220228 Delete (Label {}); err != nil {
221229 return err
222230 }
@@ -227,15 +235,14 @@ func DeleteOrphanedLabels() error {
227235// CountOrphanedIssueLabels return count of IssueLabels witch have no label behind anymore
228236func CountOrphanedIssueLabels () (int64 , error ) {
229237 return x .Table ("issue_label" ).
230- Join ( "LEFT " , "label" , "issue_label.label_id = label.id" ).
231- Where (builder. IsNull { "label.id" }). Count ()
238+ NotIn ( "label_id " , builder . Select ( "id" ). From ( " label" ) ).
239+ Count ()
232240}
233241
234242// DeleteOrphanedIssueLabels delete IssueLabels witch have no label behind anymore
235243func DeleteOrphanedIssueLabels () error {
236- _ , err := x .In ("id" , builder .Select ("issue_label.id" ).From ("issue_label" ).
237- Join ("LEFT" , "label" , "issue_label.label_id = label.id" ).
238- Where (builder.IsNull {"label.id" })).
244+ _ , err := x .
245+ NotIn ("label_id" , builder .Select ("id" ).From ("label" )).
239246 Delete (IssueLabel {})
240247
241248 return err
0 commit comments