Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Relate.sublime-workspace
.history
.idea*
lib_managed/*
.DS_Store

#built files
target/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package com.lucidchart.open.relate.interp
import com.lucidchart.open.relate.Sql
import java.sql.PreparedStatement

import scala.collection.mutable.ListBuffer

class InterpolatedQuery(protected val parsedQuery: String, protected val params: Seq[Parameter]) extends Sql with MultipleParameter {

def +(query: InterpolatedQuery) = new InterpolatedQuery(parsedQuery + query.parsedQuery, params ++ query.params)
Expand All @@ -17,12 +19,20 @@ object InterpolatedQuery {

def fromParts(parts: Seq[String], params: Seq[Parameter]) = {
val stringBuilder = new StringBuilder()
val listBuf = new ListBuffer[Parameter]()

parts.zip(params).foreach { case (part, param) =>
stringBuilder ++= part
param.appendPlaceholders(stringBuilder)
if (part.length > 0 && part.takeRight(1) == "#") {
stringBuilder ++= part.dropRight(1)
stringBuilder ++= param.toString
} else {
stringBuilder ++= part
param.appendPlaceholders(stringBuilder)
listBuf += param
}
}
stringBuilder ++= parts.last
new InterpolatedQuery(stringBuilder.toString(), params)
new InterpolatedQuery(stringBuilder.toString(), listBuf)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ class SqlXmlParameter(value: SQLXML) extends SingleParameter {

class StringParameter(value: String) extends SingleParameter {
protected def set(statement: PreparedStatement, i: Int) = statement.setString(i, value)
override def toString(): String = value
}

class TimeParameter(value: Time) extends SingleParameter {
Expand Down