Add sqlite filter builder. Add AND, OR, NOT filters to scene filter (#1115)

* Add resolution enum extension
* Add filter builder
* Use filterBuilder for scene query
* Optimise joins
* Add binary operators to scene query
* Use Query for auto-tag
This commit is contained in:
WithoutPants
2021-03-02 11:27:36 +11:00
committed by GitHub
parent 117e6326db
commit 1850a2b533
11 changed files with 1512 additions and 186 deletions

View File

@@ -273,6 +273,18 @@ func (r *repository) newQuery() queryBuilder {
}
}
func (r *repository) join(j joiner, as string, parentIDCol string) {
t := r.tableName
if as != "" {
t = as
}
j.addJoin(r.tableName, as, fmt.Sprintf("%s.%s = %s", t, r.idColumn, parentIDCol))
}
type joiner interface {
addJoin(table, as, onClause string)
}
type joinRepository struct {
repository
fkColumn string