Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -56,17 +56,9 @@ delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from music_extra where extra='abc'
----------------------------------------------------------------------
delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from `ks_sharded[-]`.music_extra where extra='abc' LIMIT 10

1 ks_sharded/-40: begin
1 ks_sharded/-40: delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from music_extra where extra = 'abc' limit 10
1 ks_sharded/-40: commit
1 ks_sharded/40-80: begin
1 ks_sharded/40-80: delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from music_extra where extra = 'abc' limit 10
1 ks_sharded/40-80: commit
1 ks_sharded/80-c0: begin
1 ks_sharded/80-c0: delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from music_extra where extra = 'abc' limit 10
1 ks_sharded/80-c0: commit
1 ks_sharded/c0-: begin
1 ks_sharded/c0-: delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from music_extra where extra = 'abc' limit 10
1 ks_sharded/c0-: commit

----------------------------------------------------------------------
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,7 @@ insert into user (id, name, nickname, address) values(2, 'bob', 'bobby', '123 ma
----------------------------------------------------------------------
insert /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ into music_extra (id, extra) values (1, 'a'), (2, 'b'), (3, 'c')

1 ks_sharded/-40: begin
1 ks_sharded/-40: insert /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ into music_extra(id, extra) values (1, 'a'), (2, 'b')
1 ks_sharded/-40: commit
1 ks_sharded/40-80: begin
1 ks_sharded/40-80: insert /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ into music_extra(id, extra) values (3, 'c')
1 ks_sharded/40-80: commit

----------------------------------------------------------------------
2 changes: 0 additions & 2 deletions go/vt/vtexplain/testdata/multi-output/target-output.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ select * from user where id in (1,2,3,4,5,6,7,8)
----------------------------------------------------------------------
insert into user (id, name) values (2, 'bob')

1 ks_sharded/40-80: begin
1 ks_sharded/40-80: insert into user(id, name) values (2, 'bob')
1 ks_sharded/40-80: commit

----------------------------------------------------------------------
4 changes: 0 additions & 4 deletions go/vt/vtexplain/testdata/multi-output/unsharded-output.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ select * from t1
----------------------------------------------------------------------
insert into t1 (id,intval,floatval) values (1,2,3.14)

1 ks_unsharded/-: begin
1 ks_unsharded/-: insert into t1(id, intval, floatval) values (1, 2, 3.14)
1 ks_unsharded/-: commit

----------------------------------------------------------------------
update t1 set intval = 10
Expand All @@ -34,9 +32,7 @@ delete from t1 where id = 100
----------------------------------------------------------------------
insert into t1 (id,intval,floatval) values (1,2,3.14) on duplicate key update intval=3, floatval=3.14

1 ks_unsharded/-: begin
1 ks_unsharded/-: insert into t1(id, intval, floatval) values (1, 2, 3.14) on duplicate key update intval = 3, floatval = 3.14
1 ks_unsharded/-: commit

----------------------------------------------------------------------
select ID from t1
Expand Down
89 changes: 27 additions & 62 deletions go/vt/vtgate/autocommit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import (

"github.com/stretchr/testify/require"

"golang.org/x/net/context"
"context"

"vitess.io/vitess/go/sqltypes"

Expand All @@ -41,15 +41,13 @@ func TestAutocommitUpdateSharded(t *testing.T) {
_, err := autocommitExec(executor, "update user set a=2 where id = 1")
require.NoError(t, err)

testBatchQuery(t, "sbc1", sbc1, &querypb.BoundQuery{
testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Sql: "update user set a = 2 where id = 1",
BindVariables: map[string]*querypb.BindVariable{},
})
testAsTransactionCount(t, "sbc1", sbc1, 1)
}})
testCommitCount(t, "sbc1", sbc1, 0)

testBatchQuery(t, "sbc2", sbc2, nil)
testAsTransactionCount(t, "sbc2", sbc2, 0)
testQueries(t, "sbc2", sbc2, nil)
testCommitCount(t, "sbc1", sbc1, 0)
}

Expand All @@ -73,14 +71,12 @@ func TestAutocommitUpdateLookup(t *testing.T) {
"music_id": vars,
},
}})
testAsTransactionCount(t, "sbclookup", sbclookup, 0)
testCommitCount(t, "sbclookup", sbclookup, 1)

testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Sql: "update music set a = 2 where id = 2",
BindVariables: map[string]*querypb.BindVariable{},
}})
testAsTransactionCount(t, "sbc1", sbc1, 0)
testCommitCount(t, "sbc1", sbc1, 1)
}

Expand Down Expand Up @@ -111,7 +107,6 @@ func TestAutocommitUpdateVindexChange(t *testing.T) {
"keyspace_id_0": sqltypes.BytesBindVariable([]byte("\026k@\264J\272K\326")),
},
}})
testAsTransactionCount(t, "sbclookup", sbclookup, 0)
testCommitCount(t, "sbclookup", sbclookup, 1)

testQueries(t, "sbc", sbc, []*querypb.BoundQuery{{
Expand All @@ -121,7 +116,6 @@ func TestAutocommitUpdateVindexChange(t *testing.T) {
Sql: "update user2 set name = 'myname', lastname = 'mylastname' where id = 1",
BindVariables: map[string]*querypb.BindVariable{},
}})
testAsTransactionCount(t, "sbc", sbc, 0)
testCommitCount(t, "sbc", sbc, 1)
}

Expand All @@ -132,15 +126,13 @@ func TestAutocommitDeleteSharded(t *testing.T) {
_, err := autocommitExec(executor, "delete from user_extra where user_id = 1")
require.NoError(t, err)

testBatchQuery(t, "sbc1", sbc1, &querypb.BoundQuery{
testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Sql: "delete from user_extra where user_id = 1",
BindVariables: map[string]*querypb.BindVariable{},
})
testAsTransactionCount(t, "sbc1", sbc1, 1)
}})
testCommitCount(t, "sbc1", sbc1, 0)

testBatchQuery(t, "sbc2", sbc2, nil)
testAsTransactionCount(t, "sbc2", sbc2, 0)
testQueries(t, "sbc2", sbc2, nil)
testCommitCount(t, "sbc1", sbc1, 0)
}

Expand Down Expand Up @@ -174,7 +166,6 @@ func TestAutocommitDeleteLookup(t *testing.T) {
"user_id": sqltypes.Uint64BindVariable(1),
},
}})
testAsTransactionCount(t, "sbclookup", sbclookup, 0)
testCommitCount(t, "sbclookup", sbclookup, 1)

testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Expand All @@ -184,7 +175,6 @@ func TestAutocommitDeleteLookup(t *testing.T) {
Sql: "delete from music where id = 1",
BindVariables: map[string]*querypb.BindVariable{},
}})
testAsTransactionCount(t, "sbc1", sbc1, 0)
testCommitCount(t, "sbc1", sbc1, 1)
}

Expand All @@ -195,15 +185,13 @@ func TestAutocommitDeleteIn(t *testing.T) {
_, err := autocommitExec(executor, "delete from user_extra where user_id in (1, 2)")
require.NoError(t, err)

testBatchQuery(t, "sbc1", sbc1, &querypb.BoundQuery{
testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Sql: "delete from user_extra where user_id in (1, 2)",
BindVariables: map[string]*querypb.BindVariable{},
})
testAsTransactionCount(t, "sbc1", sbc1, 1)
}})
testCommitCount(t, "sbc1", sbc1, 0)

testBatchQuery(t, "sbc2", sbc2, nil)
testAsTransactionCount(t, "sbc2", sbc2, 0)
testQueries(t, "sbc2", sbc2, nil)
testCommitCount(t, "sbc2", sbc2, 0)
}

Expand All @@ -218,16 +206,12 @@ func TestAutocommitDeleteMultiShard(t *testing.T) {
Sql: "delete from user_extra where user_id = user_id + 1",
BindVariables: map[string]*querypb.BindVariable{},
}})
testBatchQuery(t, "sbc1", sbc1, nil)
testAsTransactionCount(t, "sbc1", sbc1, 0)
testCommitCount(t, "sbc1", sbc1, 1)

testQueries(t, "sbc2", sbc2, []*querypb.BoundQuery{{
Sql: "delete from user_extra where user_id = user_id + 1",
BindVariables: map[string]*querypb.BindVariable{},
}})
testBatchQuery(t, "sbc2", sbc2, nil)
testAsTransactionCount(t, "sbc2", sbc2, 0)
testCommitCount(t, "sbc2", sbc2, 1)
}

Expand All @@ -238,18 +222,16 @@ func TestAutocommitDeleteMultiShardAutoCommit(t *testing.T) {
_, err := autocommitExec(executor, "delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from user_extra where user_id = user_id + 1")
require.NoError(t, err)

testBatchQuery(t, "sbc1", sbc1, &querypb.BoundQuery{
testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Sql: "delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from user_extra where user_id = user_id + 1",
BindVariables: map[string]*querypb.BindVariable{},
})
testAsTransactionCount(t, "sbc1", sbc1, 1)
}})
testCommitCount(t, "sbc1", sbc1, 0)

testBatchQuery(t, "sbc2", sbc2, &querypb.BoundQuery{
testQueries(t, "sbc2", sbc2, []*querypb.BoundQuery{{
Sql: "delete /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ from user_extra where user_id = user_id + 1",
BindVariables: map[string]*querypb.BindVariable{},
})
testAsTransactionCount(t, "sbc2", sbc2, 1)
}})
testCommitCount(t, "sbc1", sbc1, 0)
}

Expand All @@ -260,17 +242,15 @@ func TestAutocommitInsertSharded(t *testing.T) {
_, err := autocommitExec(executor, "insert into user_extra(user_id, v) values (1, 2)")
require.NoError(t, err)

testBatchQuery(t, "sbc1", sbc1, &querypb.BoundQuery{
testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Sql: "insert into user_extra(user_id, v) values (:_user_id_0, 2)",
BindVariables: map[string]*querypb.BindVariable{
"_user_id_0": sqltypes.Int64BindVariable(1),
},
})
testAsTransactionCount(t, "sbc1", sbc1, 1)
}})
testCommitCount(t, "sbc1", sbc1, 0)

testBatchQuery(t, "sbc2", sbc2, nil)
testAsTransactionCount(t, "sbc2", sbc2, 0)
testQueries(t, "sbc2", sbc2, nil)
testCommitCount(t, "sbc1", sbc1, 0)
}

Expand All @@ -288,7 +268,6 @@ func TestAutocommitInsertLookup(t *testing.T) {
"user_id_0": sqltypes.Uint64BindVariable(1),
},
}})
testAsTransactionCount(t, "sbclookup", sbclookup, 0)
testCommitCount(t, "sbclookup", sbclookup, 1)

testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Expand All @@ -299,7 +278,6 @@ func TestAutocommitInsertLookup(t *testing.T) {
"__seq0": sqltypes.Int64BindVariable(1),
},
}})
testAsTransactionCount(t, "sbc1", sbc1, 0)
testCommitCount(t, "sbc1", sbc1, 1)
}

Expand All @@ -310,24 +288,22 @@ func TestAutocommitInsertMultishardAutoCommit(t *testing.T) {
_, err := autocommitExec(executor, "insert /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ into user_extra(user_id, v) values (1, 2), (3, 4)")
require.NoError(t, err)

testBatchQuery(t, "sbc1", sbc1, &querypb.BoundQuery{
testQueries(t, "sbc1", sbc1, []*querypb.BoundQuery{{
Sql: "insert /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ into user_extra(user_id, v) values (:_user_id_0, 2)",
BindVariables: map[string]*querypb.BindVariable{
"_user_id_0": sqltypes.Int64BindVariable(1),
"_user_id_1": sqltypes.Int64BindVariable(3),
},
})
testAsTransactionCount(t, "sbc1", sbc1, 1)
}})
testCommitCount(t, "sbc1", sbc1, 0)

testBatchQuery(t, "sbc2", sbc2, &querypb.BoundQuery{
testQueries(t, "sbc2", sbc2, []*querypb.BoundQuery{{
Sql: "insert /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ into user_extra(user_id, v) values (:_user_id_1, 4)",
BindVariables: map[string]*querypb.BindVariable{
"_user_id_0": sqltypes.Int64BindVariable(1),
"_user_id_1": sqltypes.Int64BindVariable(3),
},
})
testAsTransactionCount(t, "sbc2", sbc2, 1)
}})
testCommitCount(t, "sbc2", sbc2, 0)

executor, sbc1, sbc2, _ = createExecutorEnv()
Expand All @@ -336,20 +312,16 @@ func TestAutocommitInsertMultishardAutoCommit(t *testing.T) {
_, err = autocommitExec(executor, "insert /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ into user_extra(user_id, v) values (1, 2), (3, 4)")
require.Error(t, err)
require.Contains(t, err.Error(), "INVALID_ARGUMENT", "expected invalid argument error")
require.Empty(t, sbc1.Queries)
require.Empty(t, sbc1.BatchQueries)

testAsTransactionCount(t, "sbc1", sbc1, 1)
testCommitCount(t, "sbc1", sbc1, 0)

testBatchQuery(t, "sbc2", sbc2, &querypb.BoundQuery{
testQueries(t, "sbc2", sbc2, []*querypb.BoundQuery{{
Sql: "insert /*vt+ MULTI_SHARD_AUTOCOMMIT=1 */ into user_extra(user_id, v) values (:_user_id_1, 4)",
BindVariables: map[string]*querypb.BindVariable{
"_user_id_0": sqltypes.Int64BindVariable(1),
"_user_id_1": sqltypes.Int64BindVariable(3),
},
})
testAsTransactionCount(t, "sbc2", sbc2, 1)
}})
testCommitCount(t, "sbc2", sbc2, 0)

}
Expand All @@ -367,7 +339,6 @@ func TestAutocommitInsertMultishard(t *testing.T) {
"_user_id_1": sqltypes.Int64BindVariable(3),
},
}})
testAsTransactionCount(t, "sbc1", sbc1, 0)
testCommitCount(t, "sbc1", sbc1, 1)

testQueries(t, "sbc2", sbc2, []*querypb.BoundQuery{{
Expand All @@ -377,7 +348,6 @@ func TestAutocommitInsertMultishard(t *testing.T) {
"_user_id_1": sqltypes.Int64BindVariable(3),
},
}})
testAsTransactionCount(t, "sbc2", sbc2, 0)
testCommitCount(t, "sbc2", sbc2, 1)
}

Expand All @@ -391,14 +361,12 @@ func TestAutocommitInsertAutoinc(t *testing.T) {
testQueries(t, "sbclookup", sbclookup, []*querypb.BoundQuery{{
Sql: "select next :n values from user_seq",
BindVariables: map[string]*querypb.BindVariable{"n": sqltypes.Int64BindVariable(1)},
}})
testBatchQuery(t, "sbclookup", sbclookup, &querypb.BoundQuery{
}, {
Sql: "insert into main1(id, name) values (:__seq0, 'myname')",
BindVariables: map[string]*querypb.BindVariable{
"__seq0": sqltypes.Int64BindVariable(1),
},
})
testAsTransactionCount(t, "sbclookup", sbclookup, 1)
}})
testCommitCount(t, "sbclookup", sbclookup, 0)
}

Expand All @@ -421,7 +389,6 @@ func TestAutocommitTransactionStarted(t *testing.T) {
Sql: "update user set a = 2 where id = 1",
BindVariables: map[string]*querypb.BindVariable{},
}})
testAsTransactionCount(t, "sbc1", sbc1, 0)
testCommitCount(t, "sbc1", sbc1, 0)
}

Expand All @@ -439,11 +406,10 @@ func TestAutocommitDirectTarget(t *testing.T) {
_, err := executor.Execute(context.Background(), "TestExecute", NewSafeSession(session), sql, map[string]*querypb.BindVariable{})
require.NoError(t, err)

testBatchQuery(t, "sbclookup", sbclookup, &querypb.BoundQuery{
testQueries(t, "sbclookup", sbclookup, []*querypb.BoundQuery{{
Sql: sql,
BindVariables: map[string]*querypb.BindVariable{},
})
testAsTransactionCount(t, "sbclookup", sbclookup, 1)
}})
testCommitCount(t, "sbclookup", sbclookup, 0)
}

Expand All @@ -465,7 +431,6 @@ func TestAutocommitDirectRangeTarget(t *testing.T) {
Sql: sql,
BindVariables: map[string]*querypb.BindVariable{},
}})
testAsTransactionCount(t, "sbc1", sbc1, 0)
testCommitCount(t, "sbc1", sbc1, 1)
}

Expand Down
2 changes: 1 addition & 1 deletion go/vt/vtgate/executor_dml_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -712,7 +712,7 @@ func TestInsertShardedAutocommitLookup(t *testing.T) {
},
}}
// autocommit should go as ExecuteBatch
if !reflect.DeepEqual(sbclookup.BatchQueries[0], wantQueries) {
if !reflect.DeepEqual(sbclookup.Queries, wantQueries) {
t.Errorf("sbclookup.BatchQueries[0]: \n%+v, want \n%+v", sbclookup.BatchQueries[0], wantQueries)
}
}
Expand Down
20 changes: 0 additions & 20 deletions go/vt/vtgate/executor_framework_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -437,26 +437,6 @@ func executorStream(executor *Executor, sql string) (qr *sqltypes.Result, err er
return qr, nil
}

// testBatchQuery verifies that a single (or no) query ExecuteBatch was performed on the SandboxConn.
func testBatchQuery(t *testing.T, sbcName string, sbc *sandboxconn.SandboxConn, boundQuery *querypb.BoundQuery) {
t.Helper()

var wantQueries [][]*querypb.BoundQuery
if boundQuery != nil {
wantQueries = [][]*querypb.BoundQuery{{boundQuery}}
}
if !reflect.DeepEqual(sbc.BatchQueries, wantQueries) {
t.Errorf("%s.BatchQueries:\n%+v, want\n%+v\n", sbcName, sbc.BatchQueries, wantQueries)
}
}

func testAsTransactionCount(t *testing.T, sbcName string, sbc *sandboxconn.SandboxConn, want int) {
t.Helper()
if got, want := sbc.AsTransactionCount.Get(), int64(want); got != want {
t.Errorf("%s.AsTransactionCount: %d, want %d\n", sbcName, got, want)
}
}

func testQueries(t *testing.T, sbcName string, sbc *sandboxconn.SandboxConn, wantQueries []*querypb.BoundQuery) {
t.Helper()
if !reflect.DeepEqual(sbc.Queries, wantQueries) {
Expand Down
Loading