Преглед на файлове

Fix handling of queries without columns and rows

Arne Hormann преди 11 години
родител
ревизия
72f69004a9
променени са 2 файла, в които са добавени 16 реда и са изтрити 0 реда
  1. 2 0
      connection.go
  2. 14 0
      rows.go

+ 2 - 0
connection.go

@@ -225,6 +225,8 @@ func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, erro
 				if resLen > 0 {
 					// Columns
 					rows.columns, err = mc.readColumns(resLen)
+				} else {
+					return emptyRows{}, nil
 				}
 				return rows, err
 			}

+ 14 - 0
rows.go

@@ -32,6 +32,8 @@ type textRows struct {
 	mysqlRows
 }
 
+type emptyRows struct{}
+
 func (rows *mysqlRows) Columns() []string {
 	columns := make([]string, len(rows.columns))
 	for i := range columns {
@@ -84,3 +86,15 @@ func (rows *textRows) Next(dest []driver.Value) error {
 	}
 	return io.EOF
 }
+
+func (rows emptyRows) Columns() []string {
+	return nil
+}
+
+func (rows emptyRows) Close() error {
+	return nil
+}
+
+func (rows emptyRows) Next(dest []driver.Value) error {
+	return io.EOF
+}