diff --git a/module/ldbc-connector/shared/src/main/scala/ldbc/connector/ResultSetImpl.scala b/module/ldbc-connector/shared/src/main/scala/ldbc/connector/ResultSetImpl.scala index 2fd0253c3..24881772a 100644 --- a/module/ldbc-connector/shared/src/main/scala/ldbc/connector/ResultSetImpl.scala +++ b/module/ldbc-connector/shared/src/main/scala/ldbc/connector/ResultSetImpl.scala @@ -387,7 +387,9 @@ private[ldbc] case class ResultSetImpl( for row <- currentRow value <- row.values(index - 1) - yield decode(value) + decoded <- try { Option(decode(value)) } + catch case _ => None + yield decoded private def findByName(columnLabel: String): Int = columns.zipWithIndex diff --git a/module/ldbc-connector/shared/src/main/scala/ldbc/connector/net/packet/response/EOFPacket.scala b/module/ldbc-connector/shared/src/main/scala/ldbc/connector/net/packet/response/EOFPacket.scala index f83d04bca..52aca830d 100644 --- a/module/ldbc-connector/shared/src/main/scala/ldbc/connector/net/packet/response/EOFPacket.scala +++ b/module/ldbc-connector/shared/src/main/scala/ldbc/connector/net/packet/response/EOFPacket.scala @@ -53,16 +53,15 @@ object EOFPacket: * Values for the capabilities flag bitmask used by the MySQL protocol. */ def decoder(capabilityFlags: Set[CapabilitiesFlags]): Decoder[EOFPacket] = - new Decoder[EOFPacket]: - override def decode(bits: BitVector): Attempt[DecodeResult[EOFPacket]] = - val hasClientProtocol41Flag = capabilityFlags.contains(CapabilitiesFlags.CLIENT_PROTOCOL_41) - val (statusBits, postStatusBits) = bits.splitAt(4) - val status = statusBits.toInt(false) - val packet = if hasClientProtocol41Flag then - val (warningsBits, postWorningsBits) = postStatusBits.splitAt(4) - val statusFlagsBits = postWorningsBits.take(4) - val warnings = warningsBits.toInt(false) - val statusFlags = statusFlagsBits.toInt(false) - EOFPacket(status, warnings, statusFlags) - else EOFPacket(status, 0, 0) - Attempt.successful(DecodeResult(packet, bits)) + (bits: BitVector) => + val hasClientProtocol41Flag = capabilityFlags.contains(CapabilitiesFlags.CLIENT_PROTOCOL_41) + val (statusBits, postStatusBits) = bits.splitAt(4) + val status = statusBits.toInt(false) + val packet = if hasClientProtocol41Flag then + val (warningsBits, postWarningsBits) = postStatusBits.splitAt(4) + val statusFlagsBits = postWarningsBits.take(4) + val warnings = warningsBits.toInt(false) + val statusFlags = statusFlagsBits.toInt(false) + EOFPacket(status, warnings, statusFlags) + else EOFPacket(status, 0, 0) + Attempt.successful(DecodeResult(packet, bits))