diff --git a/qb/cmp_test.go b/qb/cmp_test.go
index 28654a6..d39bc29 100644
--- a/qb/cmp_test.go
+++ b/qb/cmp_test.go
@@ -31,7 +31,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: NeTuple("ne", 3),
 			S: "ne!=(?,?,?)",
-			N: []string{"ne_0", "ne_1", "ne_2"},
+			N: []string{"ne[0]", "ne[1]", "ne[2]"},
 		},
 		{
 			C: Lt("lt"),
@@ -41,7 +41,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: LtTuple("lt", 2),
 			S: "lt<(?,?)",
-			N: []string{"lt_0", "lt_1"},
+			N: []string{"lt[0]", "lt[1]"},
 		},
 		{
 			C: LtOrEq("lt"),
@@ -51,7 +51,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: LtOrEqTuple("lt", 2),
 			S: "lt<=(?,?)",
-			N: []string{"lt_0", "lt_1"},
+			N: []string{"lt[0]", "lt[1]"},
 		},
 		{
 			C: Gt("gt"),
@@ -61,7 +61,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: GtTuple("gt", 2),
 			S: "gt>(?,?)",
-			N: []string{"gt_0", "gt_1"},
+			N: []string{"gt[0]", "gt[1]"},
 		},
 		{
 			C: GtOrEq("gt"),
@@ -71,7 +71,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: GtOrEqTuple("gt", 2),
 			S: "gt>=(?,?)",
-			N: []string{"gt_0", "gt_1"},
+			N: []string{"gt[0]", "gt[1]"},
 		},
 		{
 			C: In("in"),
@@ -81,7 +81,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: InTuple("in", 2),
 			S: "in IN (?,?)",
-			N: []string{"in_0", "in_1"},
+			N: []string{"in[0]", "in[1]"},
 		},
 		{
 			C: Contains("cnt"),
@@ -91,7 +91,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: ContainsTuple("cnt", 2),
 			S: "cnt CONTAINS (?,?)",
-			N: []string{"cnt_0", "cnt_1"},
+			N: []string{"cnt[0]", "cnt[1]"},
 		},
 		{
 			C: ContainsKey("cntKey"),
@@ -101,7 +101,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: ContainsKeyTuple("cntKey", 2),
 			S: "cntKey CONTAINS KEY (?,?)",
-			N: []string{"cntKey_0", "cntKey_1"},
+			N: []string{"cntKey[0]", "cntKey[1]"},
 		},
 		{
 			C: Like("like"),
@@ -111,7 +111,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: LikeTuple("like", 2),
 			S: "like LIKE (?,?)",
-			N: []string{"like_0", "like_1"},
+			N: []string{"like[0]", "like[1]"},
 		},
 
 		// Custom bind names
@@ -163,7 +163,7 @@ func TestCmp(t *testing.T) {
 		{
 			C: LikeTupleNamed("like", 2, "name"),
 			S: "like LIKE (?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 
 
@@ -171,47 +171,47 @@ func TestCmp(t *testing.T) {
 		{
 			C: EqTupleNamed("eq", 2, "name"),
 			S: "eq=(?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 		{
 			C: NeTupleNamed("ne", 3, "name"),
 			S: "ne!=(?,?,?)",
-			N: []string{"name_0", "name_1", "name_2"},
+			N: []string{"name[0]", "name[1]", "name[2]"},
 		},
 		{
 			C: LtTupleNamed("lt", 2, "name"),
 			S: "lt<(?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 		{
 			C: LtOrEqTupleNamed("lt", 2, "name"),
 			S: "lt<=(?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 		{
 			C: GtTupleNamed("gt", 2, "name"),
 			S: "gt>(?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 		{
 			C: GtOrEqTupleNamed("gt", 2, "name"),
 			S: "gt>=(?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 		{
 			C: InTupleNamed("in", 2, "name"),
 			S: "in IN (?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 		{
 			C: ContainsTupleNamed("cnt", 2, "name"),
 			S: "cnt CONTAINS (?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 		{
 			C: ContainsKeyTupleNamed("cntKey", 2, "name"),
 			S: "cntKey CONTAINS KEY (?,?)",
-			N: []string{"name_0", "name_1"},
+			N: []string{"name[0]", "name[1]"},
 		},
 
 		// Literals
diff --git a/qb/delete_test.go b/qb/delete_test.go
index a95f59e..fd99b8a 100644
--- a/qb/delete_test.go
+++ b/qb/delete_test.go
@@ -47,19 +47,19 @@ func TestDeleteBuilder(t *testing.T) {
 		{
 			B: Delete("cycling.cyclist_name").Where(EqTuple("id", 2)).Columns("stars"),
 			S: "DELETE stars FROM cycling.cyclist_name WHERE id=(?,?) ",
-			N: []string{"id_0", "id_1"},
+			N: []string{"id[0]", "id[1]"},
 		},
 		// Add WHERE for tuple column
 		{
 			B: Delete("cycling.cyclist_name").Where(w, GtTuple("firstname", 2)),
 			S: "DELETE FROM cycling.cyclist_name WHERE id=? AND firstname>(?,?) ",
-			N: []string{"expr", "firstname_0", "firstname_1"},
+			N: []string{"expr", "firstname[0]", "firstname[1]"},
 		},
 		// Add WHERE for all tuple columns
 		{
 			B: Delete("cycling.cyclist_name").Where(EqTuple("id", 2), GtTuple("firstname", 2)),
 			S: "DELETE FROM cycling.cyclist_name WHERE id=(?,?) AND firstname>(?,?) ",
-			N: []string{"id_0", "id_1", "firstname_0", "firstname_1"},
+			N: []string{"id[0]", "id[1]", "firstname[0]", "firstname[1]"},
 		},
 		// Add IF
 		{
diff --git a/qb/insert_test.go b/qb/insert_test.go
index 86d4132..5ea3b4e 100644
--- a/qb/insert_test.go
+++ b/qb/insert_test.go
@@ -113,12 +113,12 @@ func TestInsertBuilder(t *testing.T) {
 		{
 			B: Insert("cycling.cyclist_name").TupleColumn("id", 2),
 			S: "INSERT INTO cycling.cyclist_name (id) VALUES ((?,?)) ",
-			N: []string{"id_0", "id_1"},
+			N: []string{"id[0]", "id[1]"},
 		},
 		{
 			B: Insert("cycling.cyclist_name").TupleColumn("id", 2).Columns("user_uuid"),
 			S: "INSERT INTO cycling.cyclist_name (id,user_uuid) VALUES ((?,?),?) ",
-			N: []string{"id_0", "id_1", "user_uuid"},
+			N: []string{"id[0]", "id[1]", "user_uuid"},
 		},
 		// Add IF NOT EXISTS
 		{
diff --git a/qb/select_test.go b/qb/select_test.go
index 85d66ac..3afedea 100644
--- a/qb/select_test.go
+++ b/qb/select_test.go
@@ -70,13 +70,13 @@ func TestSelectBuilder(t *testing.T) {
 		{
 			B: Select("cycling.cyclist_name").Where(EqTuple("id", 2), Gt("firstname")),
 			S: "SELECT * FROM cycling.cyclist_name WHERE id=(?,?) AND firstname>? ",
-			N: []string{"id_0", "id_1", "firstname"},
+			N: []string{"id[0]", "id[1]", "firstname"},
 		},
 		// Add WHERE with only tuples
 		{
 			B: Select("cycling.cyclist_name").Where(EqTuple("id", 2), GtTuple("firstname", 2)),
 			S: "SELECT * FROM cycling.cyclist_name WHERE id=(?,?) AND firstname>(?,?) ",
-			N: []string{"id_0", "id_1", "firstname_0", "firstname_1"},
+			N: []string{"id[0]", "id[1]", "firstname[0]", "firstname[1]"},
 		},
 		// Add TIMEOUT
 		{
diff --git a/qb/update_test.go b/qb/update_test.go
index 2ff61e5..0a9160b 100644
--- a/qb/update_test.go
+++ b/qb/update_test.go
@@ -48,7 +48,7 @@ func TestUpdateBuilder(t *testing.T) {
 		{
 			B: Update("cycling.cyclist_name").SetTuple("id", 2).Set("user_uuid", "firstname").Where(EqTuple("id", 2)),
 			S: "UPDATE cycling.cyclist_name SET id=(?,?),user_uuid=?,firstname=? WHERE id=(?,?) ",
-			N: []string{"id_0", "id_1", "user_uuid", "firstname", "id_0", "id_1"},
+			N: []string{"id[0]", "id[1]", "user_uuid", "firstname", "id[0]", "id[1]"},
 		},
 		// Add SET SetFunc
 		{
diff --git a/qb/value.go b/qb/value.go
index 518ec3e..50947fc 100644
--- a/qb/value.go
+++ b/qb/value.go
@@ -32,16 +32,16 @@ type tupleParam struct {
 }
 
 func (t tupleParam) writeCql(cql *bytes.Buffer) (names []string) {
-	baseName := string(t.param) + "_"
+	baseName := string(t.param)
 	cql.WriteByte('(')
 	for i := 0; i < t.count-1; i++ {
 		cql.WriteByte('?')
 		cql.WriteByte(',')
-		names = append(names, baseName+strconv.Itoa(i))
+		names = append(names, baseName+"["+strconv.Itoa(i)+"]")
 	}
 	cql.WriteByte('?')
 	cql.WriteByte(')')
-	names = append(names, baseName+strconv.Itoa(t.count-1))
+	names = append(names, baseName+"["+strconv.Itoa(t.count-1)+"]")
 
 	return
 }