Skip to content

Commit

Permalink
[#18] Properly pass ON CONFLICT column names through 'columnNameMappe…
Browse files Browse the repository at this point in the history
…r' (#19)
  • Loading branch information
aboisvert authored Jul 27, 2024
1 parent aabf64d commit 2a7561a
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions scalasql/query/src/OnConflict.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@ object OnConflict {
protected def expr = WithSqlExpr.get(query)
private[scalasql] def renderSql(ctx: Context) = {
val str = Renderable.renderSql(query)(ctx)
str + sql" ON CONFLICT (${SqlStr.join(columns.map(c => SqlStr.raw(c.name)), SqlStr.commaSep)}) DO NOTHING"
val columnsStr = SqlStr.join(
columns.map(c => SqlStr.raw(ctx.config.columnNameMapper(c.name))),
SqlStr.commaSep
)
str + sql" ON CONFLICT ($columnsStr) DO NOTHING"
}

protected override def queryIsExecuteUpdate = true
Expand All @@ -43,9 +47,14 @@ object OnConflict {
private[scalasql] def renderSql(ctx: Context) = {
implicit val implicitCtx = Context.compute(ctx, Nil, Some(table))
val str = Renderable.renderSql(query)
val columnsStr = SqlStr.join(columns.map(c => SqlStr.raw(c.name)), SqlStr.commaSep)
val columnsStr = SqlStr.join(
columns.map(c => SqlStr.raw(ctx.config.columnNameMapper(c.name))),
SqlStr.commaSep
)
val updatesStr = SqlStr.join(
updates.map { case assign => SqlStr.raw(assign.column.name) + sql" = ${assign.value}" },
updates.map { case assign =>
SqlStr.raw(ctx.config.columnNameMapper(assign.column.name)) + sql" = ${assign.value}"
},
SqlStr.commaSep
)
str + sql" ON CONFLICT (${columnsStr}) DO UPDATE SET $updatesStr"
Expand Down

0 comments on commit 2a7561a

Please sign in to comment.