Explorar o código

Fixed Issue #5

Julien Schmidt %!s(int64=13) %!d(string=hai) anos
pai
achega
cad8c13b36
Modificáronse 1 ficheiros con 11 adicións e 2 borrados
  1. 11 2
      packets.go

+ 11 - 2
packets.go

@@ -986,9 +986,18 @@ func (mc *mysqlConn) readBinaryRows(rc *rowsContent) (e error) {
 				}
 				pos += n
 
-				if num == 0 {
+				switch num {
+				case 0:
 					row[i] = []byte("0000-00-00 00:00:00")
-				} else {
+				case 4:
+					row[i] = []byte(fmt.Sprintf("%04d-%02d-%02d 00:00:00",
+						bytesToUint16(data[pos:pos+2]),
+						data[pos+2],
+						data[pos+3]))
+				default:
+					if num < 7 {
+						return fmt.Errorf("Invalid datetime-packet length %d", num)
+					}
 					row[i] = []byte(fmt.Sprintf("%04d-%02d-%02d %02d:%02d:%02d",
 						bytesToUint16(data[pos:pos+2]),
 						data[pos+2],