mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
@ -100,10 +100,6 @@ object ItemQueryGenerator {
|
||||
val noLikeOp = if (op == Operator.Like) Operator.Eq else op
|
||||
Condition.CompareFVal(col, makeOp(noLikeOp), dt)
|
||||
|
||||
case Expr.SimpleExpr(op, Property.IntProperty(attr, value)) =>
|
||||
val col = intColumn(tables)(attr)
|
||||
Condition.CompareVal(col, makeOp(op), value)
|
||||
|
||||
case Expr.InExpr(attr, values) =>
|
||||
val col = stringColumn(tables)(attr)
|
||||
if (values.tail.isEmpty) col === values.head
|
||||
@ -228,8 +224,6 @@ object ItemQueryGenerator {
|
||||
stringColumn(tables)(s).s
|
||||
case t: Attr.DateAttr =>
|
||||
timestampColumn(tables)(t)
|
||||
case n: Attr.IntAttr =>
|
||||
intColumn(tables)(n).s
|
||||
}
|
||||
|
||||
private def timestampColumn(tables: Tables)(attr: Attr.DateAttr): SelectExpr =
|
||||
@ -260,11 +254,6 @@ object ItemQueryGenerator {
|
||||
case Attr.Folder.FolderName => tables.folder.name
|
||||
}
|
||||
|
||||
private def intColumn(tables: Tables)(attr: Attr.IntAttr): Column[Int] =
|
||||
attr match {
|
||||
case Attr.AttachCount => tables.attachCount.num
|
||||
}
|
||||
|
||||
private def makeOp(operator: Operator): QOp =
|
||||
operator match {
|
||||
case Operator.Eq =>
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
package docspell.store.qb.generator
|
||||
|
||||
import docspell.store.queries.AttachCountTable
|
||||
import docspell.store.records._
|
||||
|
||||
final case class Tables(
|
||||
@ -17,6 +16,5 @@ final case class Tables(
|
||||
concEquip: REquipment.Table,
|
||||
folder: RFolder.Table,
|
||||
attach: RAttachment.Table,
|
||||
meta: RAttachmentMeta.Table,
|
||||
attachCount: AttachCountTable
|
||||
meta: RAttachmentMeta.Table
|
||||
)
|
||||
|
@ -1,22 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Eike K. & Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package docspell.store.queries
|
||||
|
||||
import docspell.common.Ident
|
||||
import docspell.store.qb.Column
|
||||
import docspell.store.qb.TableDef
|
||||
|
||||
final case class AttachCountTable(aliasName: String) extends TableDef {
|
||||
val tableName = "attachs"
|
||||
val alias: Option[String] = Some(aliasName)
|
||||
|
||||
val num = Column[Int]("num", this)
|
||||
val itemId = Column[Ident]("item_id", this)
|
||||
|
||||
def as(alias: String): AttachCountTable =
|
||||
copy(aliasName = alias)
|
||||
}
|
@ -299,7 +299,7 @@ object QItem extends FtsSupport {
|
||||
coll: CollectiveId,
|
||||
q: ItemQuery.Expr
|
||||
): Condition = {
|
||||
val tables = Tables(i, org, pers0, pers1, equip, f, a, m, AttachCountTable("cta"))
|
||||
val tables = Tables(i, org, pers0, pers1, equip, f, a, m)
|
||||
ItemQueryGenerator.fromExpr(today, tables, coll)(q)
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,6 @@ import docspell.query.ItemQueryParser
|
||||
import docspell.store.qb.DSL._
|
||||
import docspell.store.qb.Select
|
||||
import docspell.store.qb.generator.{ItemQueryGenerator, Tables}
|
||||
import docspell.store.queries.AttachCountTable
|
||||
import docspell.store.records._
|
||||
|
||||
import munit._
|
||||
@ -29,8 +28,7 @@ class ItemQueryGeneratorTest extends FunSuite {
|
||||
REquipment.as("ne"),
|
||||
RFolder.as("f"),
|
||||
RAttachment.as("a"),
|
||||
RAttachmentMeta.as("m"),
|
||||
AttachCountTable("cta")
|
||||
RAttachmentMeta.as("m")
|
||||
)
|
||||
val now: LocalDate = LocalDate.of(2021, 2, 25)
|
||||
|
||||
|
Reference in New Issue
Block a user