@@ -46,15 +46,6 @@ struct D1RawResults: Decodable {
4646 }
4747}
4848
49- struct D1QueryResultPayload : Decodable {
50- let results : [ [ String : D1Value ] ] ?
51- let meta : D1QueryMeta ?
52- let success : Bool
53-
54- private enum CodingKeys : String , CodingKey {
55- case results, meta, success
56- }
57- }
5849
5950struct D1QueryMeta : Decodable {
6051 let duration : Double ?
@@ -90,6 +81,8 @@ struct D1ListResponse: Decodable {
9081 }
9182}
9283
84+ // No .bool case: D1/SQLite stores booleans as integers (0/1),
85+ // and Foundation's JSONDecoder decodes JSON true/false as Int when Int is tried first.
9386enum D1Value : Decodable {
9487 case string( String )
9588 case int( Int )
@@ -207,22 +200,6 @@ final class D1HttpClient: @unchecked Sendable {
207200 return first
208201 }
209202
210- func executeQuery( sql: String , params: [ Any ? ] ? = nil ) async throws -> D1QueryResultPayload {
211- let dbId = databaseId
212- let url = try baseURL ( databaseId: dbId) . appendingPathComponent ( " query " )
213- let body = try buildQueryBody ( sql: sql, params: params)
214- let data = try await performRequest ( url: url, method: " POST " , body: body)
215-
216- let envelope = try JSONDecoder ( ) . decode ( D1ApiResponse< [ D1QueryResultPayload] > . self , from: data)
217- try checkApiSuccess ( envelope)
218-
219- guard let results = envelope. result, let first = results. first else {
220- throw D1HttpError ( message: String ( localized: " Empty response from Cloudflare D1 " ) )
221- }
222-
223- return first
224- }
225-
226203 func getDatabaseDetails( ) async throws -> D1DatabaseInfo {
227204 let dbId = databaseId
228205 let url = try baseURL ( databaseId: dbId)
0 commit comments