Skip to content

Commit 6c3258a

Browse files
authored
added support for interpolating liftQuery (#3239)
1 parent 1cee8bf commit 6c3258a

2 files changed

Lines changed: 16 additions & 4 deletions

File tree

quill-engine/src/main/scala/io/getquill/idiom/ReifyStatement.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ object ReifyStatement {
6565
val separators = List.fill(liftings.size - 1)(`, `)
6666
tokens ++= (stmt"$a $op (" +: Interleave(liftings, separators) :+ `)`)
6767
}
68+
case (tokens, ScalarLiftToken(lift: ScalarQueryLift)) =>
69+
val liftings = lift.value.asInstanceOf[Iterable[Any]]
70+
.toList
71+
.map(v => ScalarLiftToken(ScalarValueLift(lift.name, External.Source.Parser, v, lift.encoder, lift.quat)))
72+
val separators = List.fill(liftings.size - 1)(`, `)
73+
tokens ++= Interleave(liftings, separators)
6874
case (tokens, token) =>
6975
tokens += token
7076
}

quill-sql-test/src/test/scala/io/getquill/context/sql/InfixSpec.scala

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package io.getquill.context
22

3-
import io.getquill.SqlMirrorContext
4-
import io.getquill.MirrorSqlDialect
5-
import io.getquill.TestEntities
6-
import io.getquill.Literal
3+
import io.getquill.{Literal, MirrorSqlDialect, Query, SqlMirrorContext, TestEntities}
74
import io.getquill.base.Spec
85
import io.getquill.norm.EnableTrace
96
import io.getquill.util.Messages.TraceType
@@ -165,5 +162,14 @@ class InfixSpec extends Spec { // //
165162
ctx.run(q).string mustEqual "SELECT p._2 AS _1, p._3 AS _2 FROM (SELECT DISTINCT ON (p.other) AS _1, p.name AS _2, p.id AS _3 FROM Person p) AS p"
166163
}
167164
}
165+
166+
"use set notation when interpolating liftQuery" in {
167+
val q = quote {
168+
val ids = liftQuery(List(1, 2))
169+
sql"select id from Data where id in ($ids)".as[Query[Data]]
170+
}
171+
ctx.translate(q) mustEqual "select id from Data where id in (lift(1), lift(2))"
172+
}
173+
168174
}
169175
}

0 commit comments

Comments
 (0)