@@ -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