Ver código fonte

Merge pull request #663 from Zariel/batch-errors

fix batch error propogation
Chris Bannister 9 anos atrás
pai
commit
1a3b806af5
2 arquivos alterados com 27 adições e 2 exclusões
  1. 26 0
      batch_test.go
  2. 1 2
      conn.go

+ 26 - 0
batch_test.go

@@ -0,0 +1,26 @@
+// +build all integration
+
+package gocql
+
+import (
+	"testing"
+)
+
+func TestBatch_Errors(t *testing.T) {
+	if *flagProto == 1 {
+		t.Skip("atomic batches not supported. Please use Cassandra >= 2.0")
+	}
+
+	session := createSession(t)
+	defer session.Close()
+
+	if err := createTable(session, `CREATE TABLE gocql_test.batch_errors (id int primary key, val inet)`); err != nil {
+		t.Fatal(err)
+	}
+
+	b := session.NewBatch(LoggedBatch)
+	b.Query("SELECT * FROM batch_errors WHERE id=2 AND val=?", nil)
+	if err := session.ExecuteBatch(b); err == nil {
+		t.Fatal("expected to get error for invalid query in batch")
+	}
+}

+ 1 - 2
conn.go

@@ -976,8 +976,7 @@ func (c *Conn) executeBatch(batch *Batch) *Iter {
 
 		return iter
 	case error:
-
-		return &Iter{err: err, framer: framer}
+		return &Iter{err: x, framer: framer}
 	default:
 		return &Iter{err: NewErrProtocol("Unknown type in response to batch statement: %s", x), framer: framer}
 	}