Complete query migration

This commit is contained in:
2025-02-22 20:13:26 -05:00
parent 50de4fbf94
commit 448a9646d6
4 changed files with 235 additions and 15 deletions

View File

@@ -73,23 +73,26 @@ object Parameters {
when (param.type) {
ParameterType.NUMBER -> {
when (param.value) {
null -> stmt.setNull(idx, Types.NULL)
is Byte -> stmt.setByte(idx, param.value)
null -> stmt.setNull(idx, Types.NULL)
is Byte -> stmt.setByte(idx, param.value)
is Short -> stmt.setShort(idx, param.value)
is Int -> stmt.setInt(idx, param.value)
is Long -> stmt.setLong(idx, param.value)
else -> throw DocumentException(
is Int -> stmt.setInt(idx, param.value)
is Long -> stmt.setLong(idx, param.value)
else -> throw DocumentException(
"Number parameter must be Byte, Short, Int, or Long " +
"(${param.value::class.simpleName})")
"(${param.value::class.simpleName})"
)
}
}
ParameterType.STRING -> {
when (param.value) {
null -> stmt.setNull(idx, Types.NULL)
null -> stmt.setNull(idx, Types.NULL)
is String -> stmt.setString(idx, param.value)
else -> stmt.setString(idx, param.value.toString())
else -> stmt.setString(idx, param.value.toString())
}
}
ParameterType.JSON -> stmt.setString(idx, Configuration.json.encodeToString(param.value))
}
}
@@ -108,11 +111,10 @@ object Parameters {
*/
fun fieldNames(names: Collection<String>, parameterName: String = ":name") =
when (Configuration.dialect("generate field name parameters")) {
Dialect.POSTGRESQL -> listOf(Parameter(parameterName, ParameterType.STRING, if (names.size == 1) {
names.elementAt(0)
} else {
names.joinToString(",").let { "{$it}" }
}))
Dialect.POSTGRESQL -> listOf(
Parameter(parameterName, ParameterType.STRING, names.joinToString(",").let { "{$it}" })
)
Dialect.SQLITE -> names.mapIndexed { index, name ->
Parameter("$parameterName$index", ParameterType.STRING, name)
}