optimise regex

This commit is contained in:
2022-10-15 00:35:18 +02:00
parent 927eff7172
commit 4392f1ff8f

View File

@@ -220,7 +220,7 @@ class Connection(
} }
private fun <T> replaceArgs(sql: String, values: Map<String, Any?>, block: ParametersQuery.() -> T): T { private fun <T> replaceArgs(sql: String, values: Map<String, Any?>, block: ParametersQuery.() -> T): T {
val paramRegex = "(?<!:):([a-zA-Z0-9_-]+)".toRegex(RegexOption.IGNORE_CASE) val paramRegex = "(?<!:):([a-z0-9_-]+)".toRegex(RegexOption.IGNORE_CASE)
val orderedArgs = paramRegex.findAll(sql).map { match -> val orderedArgs = paramRegex.findAll(sql).map { match ->
val name = match.groups[1]!!.value val name = match.groups[1]!!.value
values[name] ?: values[name.trimStart('_')] ?: queryError("""Parameter "$name" missing""", sql, values) values[name] ?: values[name.trimStart('_')] ?: queryError("""Parameter "$name" missing""", sql, values)
@@ -230,7 +230,7 @@ class Connection(
} }
private fun replaceNamedArgByQuestionMark(sql: String): String = private fun replaceNamedArgByQuestionMark(sql: String): String =
"(?<!:):([a-zA-Z0-9_-]+)" "(?<!:):([a-z0-9_-]+)"
.toRegex(RegexOption.IGNORE_CASE) .toRegex(RegexOption.IGNORE_CASE)
.replace(sql, "?") .replace(sql, "?")