Skip to content

Commit caeaa5d

Browse files
committed
fix: strip trailing semicolons from query before wrapping, remove extra blank line
1 parent 63b8873 commit caeaa5d

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,6 @@ private actor DuckDBConnectionActor {
282282
columnTypeNames.append(Self.typeName(for: colType))
283283
}
284284

285-
286285
var rows: [[String?]] = []
287286
var truncated = false
288287

@@ -295,15 +294,13 @@ private actor DuckDBConnectionActor {
295294
var rowData: [String?] = []
296295

297296
for col in 0..<colCount {
298-
let colIdx = Int(col)
299-
300297
if duckdb_value_is_null(&result, col, row) {
301298
rowData.append(nil)
302299
} else if let valPtr = duckdb_value_varchar(&result, col, row) {
303300
rowData.append(String(cString: valPtr))
304301
duckdb_free(valPtr)
305302
} else {
306-
rowData.append(Self.extractFallbackValue(&result, col: col, row: row, type: columnTypes[colIdx]))
303+
rowData.append(Self.extractFallbackValue(&result, col: col, row: row, type: columnTypes[Int(col)]))
307304
}
308305
}
309306

@@ -440,7 +437,9 @@ private actor DuckDBConnectionActor {
440437
}
441438
}
442439

443-
let wrappedQuery = "SELECT \(castExprs.joined(separator: ", ")) FROM (\(query)) AS _tz_cast"
440+
let trimmedQuery = query.trimmingCharacters(in: .whitespacesAndNewlines)
441+
.hasSuffix(";") ? String(query.dropLast()) : query
442+
let wrappedQuery = "SELECT \(castExprs.joined(separator: ", ")) FROM (\(trimmedQuery)) AS _tz_cast"
444443
var patchResult = duckdb_result()
445444
guard duckdb_query(connection, wrappedQuery, &patchResult) == DuckDBSuccess else { return }
446445
defer { duckdb_destroy_result(&patchResult) }

0 commit comments

Comments
 (0)