diff --git a/src/bun.js/bindings/SQLClient.cpp b/src/bun.js/bindings/SQLClient.cpp index 012bd68a77..c98a2b5ef8 100644 --- a/src/bun.js/bindings/SQLClient.cpp +++ b/src/bun.js/bindings/SQLClient.cpp @@ -147,7 +147,7 @@ static JSC::JSValue toJS(JSC::VM& vm, JSC::JSGlobalObject* globalObject, DataCel } case DataCellTag::String: { if (cell.value.string) { - return jsString(vm, WTF::String(cell.value.string)); + return jsString(vm, WTF::String(std::exchange(cell.value.string, nullptr))); } return jsEmptyString(vm); } @@ -379,22 +379,16 @@ static JSC::JSValue toJS(JSC::Structure* structure, DataCell* cells, uint32_t co case BunResultMode::Raw: // raw is just array mode with raw values case BunResultMode::Values: // values { - auto* array = JSC::constructEmptyArray(globalObject, static_cast(nullptr), count); - RETURN_IF_EXCEPTION(scope, {}); - + MarkedArgumentBuffer args; for (uint32_t i = 0; i < count; i++) { auto& cell = cells[i]; JSValue value = toJS(vm, globalObject, cell); RETURN_IF_EXCEPTION(scope, {}); - array->putDirectIndex(globalObject, i, value); + args.append(value); } - return array; - } - default: - // not a valid result mode - ASSERT_NOT_REACHED(); - return jsUndefined(); + return JSC::constructArray(globalObject, static_cast(nullptr), args); + } } } static JSC::JSValue toJS(JSC::JSArray* array, JSC::Structure* structure, DataCell* cells, uint32_t count, JSC::JSGlobalObject* globalObject, Bun::BunStructureFlags flags, BunResultMode result_mode, ExternColumnIdentifier* namesPtr, uint32_t namesCount) diff --git a/src/sql/mysql/protocol/ResultSet.zig b/src/sql/mysql/protocol/ResultSet.zig index 8e02c95141..17d70204ca 100644 --- a/src/sql/mysql/protocol/ResultSet.zig +++ b/src/sql/mysql/protocol/ResultSet.zig @@ -129,7 +129,7 @@ pub const Row = struct { fn decodeText(this: *Row, allocator: std.mem.Allocator, comptime Context: type, reader: NewReader(Context)) AnyMySQLError.Error!void { const cells = try allocator.alloc(SQLDataCell, this.columns.len); - @memset(cells, SQLDataCell{ .tag = .null, .value = .{ .null = 0 } }); + // @memset(cells, SQLDataCell{ .tag = .null, .value = .{ .null = 0 } }); errdefer { for (cells) |*value| { value.deinit();