Skip to content

Commit 157183b

Browse files
authored
Merge pull request #55 from Paulanerus/dev
Dev
2 parents 5c88e3d + bcd1008 commit 157183b

3 files changed

Lines changed: 17 additions & 8 deletions

File tree

core/src/main/kotlin/dev/paulee/core/Utility.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,12 @@ fun normalizeSourceName(str: String): String {
3030
return (if (needsUnderscore) "_$replaced" else replaced).trim()
3131
}
3232

33-
fun splitStr(str: String, delimiter: Char, quoteCharacters: Array<Char> = arrayOf('"')): List<String> {
33+
fun splitStr(
34+
str: String,
35+
delimiter: Char,
36+
quoteCharacters: Array<Char> = arrayOf('"'),
37+
includeQuotation: Boolean = false,
38+
): List<String> {
3439
val result = ArrayList<String>()
3540
val sb = StringBuilder(str.length)
3641

@@ -40,7 +45,12 @@ fun splitStr(str: String, delimiter: Char, quoteCharacters: Array<Char> = arrayO
4045

4146
for (c in str) {
4247
when (c) {
43-
quote -> inside = !inside
48+
quote -> {
49+
inside = !inside
50+
51+
if (includeQuotation) sb.append(c)
52+
}
53+
4454
delimiter if !inside -> {
4555
result.add(sb.toString())
4656
sb.setLength(0)
@@ -55,6 +65,7 @@ fun splitStr(str: String, delimiter: Char, quoteCharacters: Array<Char> = arrayO
5565
for (c in str) {
5666
if (quoteCharacters.contains(c)) {
5767
inside = !inside
68+
if (includeQuotation) sb.append(c)
5869
} else if (c == delimiter && !inside) {
5970
result.add(sb.toString())
6071
sb.setLength(0)

core/src/main/kotlin/dev/paulee/core/data/model/DataPool.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,17 @@ internal class DataPool(val indexer: Indexer?, val dataInfo: DataInfo, val stora
111111

112112
val queryToken = mutableListOf<String>()
113113

114-
splitStr(query, delimiter = ' ').forEach { str ->
114+
splitStr(query, delimiter = ' ', includeQuotation = true).forEach { str ->
115115

116116
var colon = -1
117-
var hasSpace = false
118117

119118
for (i in str.indices) {
120119
val ch = str[i]
121120
if (ch == ':') { colon = i; break }
122-
if (ch == ' ') hasSpace = true
123121
}
124122

125123
if (colon == -1) {
126-
queryToken.add(if (hasSpace) "\"$str\"" else str)
124+
queryToken.add(str)
127125
return@forEach
128126
}
129127

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ duckdb.version=1.4.1.0
1515
caffeine.version=3.2.2
1616

1717
api.version=1.16.4
18-
core.version=1.18.12
18+
core.version=1.18.13
1919
ui.version=1.19.5
20-
app.version=1.6.5
20+
app.version=1.6.6

0 commit comments

Comments
 (0)